- Implement, guide, and review client/server/engine tech for Fallout 76
- Easily dive in and become familiar with the game systems in our client/server engine
- Monitor, fix, and improve the performance and stability of the game
- Work closely with the game team to add system/engine level tech to support new game features
- Own memory management, network, persistence, asynchronous systems, and state management systems in Fallout 76
- Drive client server communications, synchronization systems, client/server validation, and security
- Develop and maintain foundational level engine tech that gameplay systems rely on
- Solve difficult bugs, problems, architectural dilemmas, or optimization issues
- Code review and mentor more junior team members
- Manage your time effectively with little to no guidance and prioritize work based on ROI and risk
- 5–10 years of programming experience, primarily in AAA games and systems/engine-level development using C++
- Deep expertise in networking game features and awareness of the complexities of networked gameplay (replication of state, behaviors, physics, client/server breakdown of features and game systems)
- Experience on large scale client/server systems (preferably in AAA games)
- Expert in programming in an asynchronous environment whether that be 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 flavors of databases
- 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 and algorithmic complexity, memory management, state/object management, compilation, execution, and asynchronous processing and how all these apply to game systems in C++
- Expert understanding of OO principles including application of composition vs inheritance as well as SOLID principles as it applies 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 and how to use efficiently
- 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 and how to work within a cloud-based environment
- Familiarity with major services and technologies available in Azure and AWS
- Database knowledge of basics for different database types (MySQL and variants and Mongo and variants) to the degree you can optimize and tune from the developer perspective
- Knowledge of database schema and scaling methodologies to further optimization and scale
- 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