- 5–10 years of programming experience, primarily in AAA games and systems/engine-level development using C++
- Deep expertise in networking game features and understanding of networked gameplay complexities (replication of state, behaviors, physics, client/server breakdown of features and game systems)
- Experience with large-scale client/server systems (preferably in AAA games)
- Expert in programming in an asynchronous environment (threaded, across frames, or across processes via a network)
- Significant experience with service-based games
- Previously written or owned a major part of a client/server architecture
- Experience with persistence systems backed by different database types
- Significant experience working in a Linux based environment including basic system administration and performance management
- Familiarity with Cloud Architecture in AWS and Azure and DevOps principles
- B.S. (or higher) in Computer Science, or equivalent work experience
- Expert computer science fundamentals including design patterns, algorithms, memory management, and asynchronous processing in C++
- Expert understanding of OO principles including composition vs inheritance and SOLID principles as applied to game systems in C++
- Expertise in async programming principles and networked applications
- Expertise in memory management systems
- Expertise with one or more scripting-oriented languages like Python, Lua, Bash, Golang, or C#
- Expertise in UDP and TCP based synchronization systems
- Expertise with monitoring and logging systems
- Expertise in how to ‘hide the latency’ and produce smooth seamless gameplay in a networked environment
- Expertise in game state validation techniques that still maintain seamless gameplay
- Experience with major cloud platforms such as AWS, Azure, and Google Cloud
- Database knowledge of basics for different database types (MySQL and variants and Mongo and variants) to optimize and tune
- Knowledge of database schema and scaling methodologies
- Proficiency in database query languages
- Ability to diagnose performance and connectivity Linux and Windows related issues
- Expertise in profiling across platforms with tools suited to each platform
- Expertise in debugging across multiple platforms
- Experience with Continuous Integration/Continuous Delivery (CI/CD) pipelines and tools like Jenkins, Git, Perforce, and Team City
- Expertise in branch management