Luna is Amazon's cloud gaming service where it's easy to play great games on devices you already own. No waiting for lengthy downloads or updates — just play.
The Luna core streaming team is responsible for making sure that games run efficiently to delight our customers. Broadly, this role involves working with graphics libraries and GPUs, A/V encoding and decoding, custom network protocol and network congestion algorithms. Specifically, this role involves working with Proton - a compatibility layer to run Windows games on Linux using Wine. Luna is committed to working with the open source community around Proton. This role will commit code to open source projects such as Proton and Wine in pursuit of running games in a stable and performant manner.
The ideal candidate will have a strong background in Linux - both with systems level programming and the ability to diagnose performance bottlenecks and resolve them. Equally important is a strong background in C/C++. Wine exclusively uses C, so a bias towards expertise in C is preferred. Finally, expertise with the Windows operating system and game engines is a bonus.
If you’re passionate about creating delightful gaming experiences, love open source, and love to fix performance bottlenecks, we would love to hear from you. The Proton community values passion for gaming over specific technical skills and Luna is no different. Even if you only know some of the technologies listed, if you're passionate about gaming, please apply.
Buzzwords for the role: OpenGL, Vulkan, Direct3D, Mesa, Proton, DXVK, Wine, C, C++, Linux kernel, Windows kernel.
A day in the life
You will solve hard technical problems in Linux graphics stack, starting from Linux Kernel to graphics libraries. You will work in graphics technologies like DirectX, Vulkan, DXVK, and OpenGL. You will dive deep into graphics performance issues and provide solutions that enable Windows games run on Linux, and make contributions to open source Wine/Proton. You will have the chance to invent your way out of novel challenges in game streaming paradigm.
About the hiring group
You will be a key contributor to the streaming technology for Luna. The team's mission is to deliver the best game streaming product to customers. We are working on the frontier of cloud gaming technology.
The Amazon Luna team is leveraging the power of the cloud to enable customers to experience the rich and immersive world of gaming on all of their existing devices. Luna represents an exciting and truly new product and business, with a high degree of innovation, and an opportunity to reach a large volume of passionate customers.
As a Software Development Engineer working on the infrastructure for Luna, you will get to combine your passion for gaming, graphics programming, Linux, and building scalable tech for the next generation of cloud gaming.
- 1+ years of experience contributing to the system design or architecture (architecture, design patterns, reliability and scaling) of new and current systems.
- 2+ years of non-internship professional software development experience
- Programming experience with at least one software programming language.
- BS in Computer Science, Electrical Engineering, or related field
- 2+ years C and C++ experience solving low-level performance issues
- Experience in Graphics/GPU programming
- Knowledge of open source development methodologies and relevant open source communities
- MS in Computer Science, Electrical Engineering, or related field
- 4+ years of programming experience in C and C++; in Linux and/or, Windows environment.
- Experience with Linux, OpenGL, Vulkan and DXVK
- Experience in open source Wine/Proton and code contributions to the same
- Experience with audio/video codecs and debugging compression and decompression problems.
- Design/development skills including experience driving projects from concept to prototype to production
- Experience creating advanced architectures and sustainable solutions.
- Experience defining system architectures and exploring technical feasibility trade-offs
- Demonstrated ability to mentor other software developers to maintain architectural vision and software quality
- Excellence in technical communications with both technical and non-technical peers