thatgamecompany is building an R&D team in China. The new team will help the company with a long-term tech stack, including backend infrastructure, multi-tenant platforms and microservices, data warehouse, and data pipeline.
Location: Shanghai
On any given day at thatgamecompany, you might:
-
Design and implement large-scale, highly available backend systems that serve thousands to millions of concurrent players and aim for zero downtime.
-
Embrace modern container and cluster management technology to make our backend stack more elastic and robust.
-
Improve and maintain an agile and reliable development environment for the backend stack, so that people with different skillsets in the company can do social experiments easily, and new hires can ramp up quickly.
-
Monitor the backend health and respond to any failures or glitches to deliver a smooth online experience to players worldwide; keep improving dev-ops tools to make the job more automatic and error-proof.
We expect you to:
-
Have deep passion and thoughts for video games; be a gamer and think on behalf of players.
-
Be comfortable taking risks and accomplish engineering achievements that no one else has done.
-
Enjoy working with fast-moving and rapidly-growing small teams.
Required Skills
-
1 year or more experience in backend development and deployment in a production environment.
-
Have a thorough understanding of scalable and highly available backend systems; be familiar with open-source distributed system tech stacks, including but not limited to scalable databases, caching strategy, distributed transactions, and dev-ops tools.
-
Be able to extract useful information from different sources of logs, find correlations between multiple layers of systems and diagnose failures, suspicious behaviors, and performance bottlenecks from bottom to top.
-
Be comfortable working with the Linux ecosystem; be fluent in Linux or macOS bash CLI tools and Python scripting.
-
Have deep knowledge of at least one of Go, Erlang, or C++.
-
Have deep knowledge of at least one SQL or NoSQL database.
-
Have deep knowledge of at least one distributed message queue system.
-
Eager to learn any new technology and always open to jumping out of your comfort zone.
-
Capable to understand English documentation. Fluent in written English for technical communications in chat tools. Be able to speak English for daily life.
Preferred Skills
Any of the following would be highly preferred, but most of all, we value engineers who are eager to learn new ways to deliver value to players:
-
Deep understanding of Go or Erlang.
-
Managed and maintained production environment on AWS or GCP.
-
Deployed services in Kubernetes with CI/CD tools.
-
Experienced in schema design and performance tweaking of MongoDB and Redis.
-
Experienced in building systems that involve eventually or strongly consistent distributed transactions.
-
Fluent in spoken English for professional communications.
thatgamecompany正在组建其在中国的后端研发团队。该团队将协助公司进行长线技术储备,包括服务器端基础设施、能够用于多款游戏的平台及微服务、海量数据仓库及配套数据管线等。
岗位职责
你将在日常工作中涉及到:
-
设计并实现大规模、高可用的后端系统,承载百万级玩家同时在线,并努力接近零故障时间。
-
使用前沿的容器及集群管理技术,使我们的后台系统更加稳定并易于伸缩。
-
改善和维护我们日常的后端开发环境,以便让不同岗位的开发者都能够参与后端工作(例如快速简便地实现一些线上社交试验),并让新员工能够更快地上手工作。
-
日常监控服务器的运行情况,并对任何系统抖动和事故做出快速反应,以保证我们全球的玩家都能有平稳舒适的游戏体验。同时,不断改进我们的内部运维工具,使得这些日常维护工作能够更加安全和自动化。
我们希望你:
-
热爱电子游戏并对其有深刻理解和思考。作为一名游戏玩家,从玩家的角度考虑问题。
-
敢于挑战困难、承担风险,实现别人从未做过的工程成就。
-
能够适应快节奏、快速扩张的小团队。
基本技能要求
-
一年以上后端开发经验和生产环境部署经验。
-
对可扩展、高可用的后端系统有深刻的理解。熟悉常见的开源后端组件,包括但不限于高并发数据库、缓存、分布式事务解决方案及运维工具等。
-
善于从海量系统日志中提取有用信息,以及在后端系统各层级的数据及指标中寻找相关性,以便准确排查故障、识别可疑行为、定位性能瓶颈。
-
熟悉Linux生态系统。熟练掌握Linux或macOS的常用命令行工具,能够编写Python脚本。
-
精通至少其中一门语言:Go, Erlang或C++。
-
精通至少一个SQL或NoSQL数据库。
-
精通至少一个分布式队列系统。
-
热衷于学习新技术,对不同观点持开放态度并能跳出自己的舒适区。
-
能够阅读并理解英文文档,进行书面英文技术交流。可使用英语口语进行日常交流。
进阶技能要求
我们非常看重以下技能。但是最重要的是你愿意学习新知识并不断为玩家贡献价值。
-
同时精通Go和Erlang。
-
具有在生产环境管理AWS或GCP公有云的经验。
-
使用过自动化运维工具(CI/CD)来部署Kubernetes服务。
-
在MongoDB及Redis集群的模式设计(Schema Design)及性能调优方面有丰富的经验。
-
有处理分布式事务或数据一致性问题(强一致、最终一致等)的相关经验。
-
可熟练使用英语口语进行专业技术交流。