Game developers repeatedly say that multiplayer game creation remains one of their hardest challenges; balancing ease-of-use with performance and flexibility remains unsolved. As a result, we’ve seen far too little innovation in multiplayer games over the last decade, while creativity in single-player games has flourished.
We are looking for a Senior Software Developer to help define and build the foundation Unity developers use to make multiplayer experiences. You will be given the freedom to drive large initiatives in this area aimed at improving everything from performance to client/server developer iteration. Help us build a foundation and core in a modern development experience tailored to multiplayer games.
- Design and implement foundational server technologies and key components that Unity Developers will use and build upon.
- Solve large scale distributed systems problems so future engine users can focus on making awesome games
- Improve the developer experience for building and debugging client/server game architectures
- Write code in C++ in the Unity Engine and C# in Scripting layer
- Experience with C++ and software development methodology.
- Familiarity with implementing client/server architecture.
- A mind towards scalability and performance.
- High comfort level working within (and analyzing and improving) an established codebase.
- Familiarity with OS, networking and server design concepts.
- Strong collaboration and communication skills
- Experience with high performance programming, multi-threading, and memory management
- Prior experience with the Unity engine
- Linux development experience.
- Networking experience (knowledge of low-level protocols and high-level protocols).
- Low-level network knowledge and diagnosis including packet capture (e.g., tcpdump, wireshark), routing, firewalls, DHCP, DNS, and NAT busting.