This job might no longer be available.
Senior Software Engineer - Desktop Application
1 month ago
Who We Are
Take-Two develops and publishes some of the world's biggest games, such as Grand Theft Auto, Red Dead Redemption, NBA 2K, and Sid Meier's Civilization. The Direct to Consumer team is a (well-funded) startup within Take-Two. We have offices in San Francisco and Vancouver and have built a culture that enables remote work. We're building a commerce and distribution platform for our game labels, working directly with our studios to bring value company-wide. Our team is small and agile – we release to our users quickly, and constantly iterate to elevate our product’s quality. We seek regular feedback from our users and labels to make sure we are delivering at and above expectations. We believe in giving our studios the flexibility they need to build the world's greatest games, so we plan to offer a variety of interfaces using modern technology and standard methodologies. Our success is measured by our impact on gamers and developers, not presentations or promises!
The Role Defined:
A Senior Software Engineer – Desktop Application on the D2C team will develop our desktop launcher application and build easily integrated, efficient libraries to support game studios across Take-Two’s labels and around the world. You will be working with system level code, mostly in C++, to help craft systems that will reach millions of gamers on multiple platforms.
As a member of the D2C Client team, you will work directly with top-notch engineers, product managers, and development partners at game studios to ensure the flexibility and efficacy of our desktop application and client libraries. You will participate in ambitious projects involving graphics APIs, console and operating system SDKs, and launcher application features such as in-game overlay and digital rights management.
As a Senior Engineer on the team, you must set a high bar for performance, code quality, and operational awareness. You will be expected to collaborate on technical system design and help set the technical direction of projects. You will also have the opportunity to mentor junior team members, and may have the opportunity to participate in technical leadership or management.
- Write and maintain well documented, high quality C++ code for multiple projects
- Build tests and integration tooling to ensure high quality code in an agile environment
- Collaborate on technical designs to meet product team, technical partner, and end user needs
- Research and propose solutions to problems across a broad range of topics, such as UI rendering, client-server communication, performance optimization, and more
- Work closely with fellow engineers and team members, and maintain a strong professional relationship based on communication, respect, and trust
- Mentor junior engineers, share knowledge with your peers, and contribute to the team’s culture of excellence and openness
- 8+ years of professional experience, focused in commercial desktop applications
- Strong expertise in modern C++, especially relating to desktop applications, multithreading, API/SDK design, and client-server applications
- Experience with unit, integration, and functional test design and implementation
- Strong debugging skills, and the ability to quickly chart a path from bug report to viable solutions
- Ability to analyze and optimize code to meet strict performance requirements
- Drive to proactively find opportunities for improvement in our systems and take action on them
- Ability to work with minimal direction, prioritizing and adapting to the needs of the team and leadership adeptly
- Ability to skill-share and mentor junior members of the team, helping to grow the overall capabilities of the team
- Strong written and verbal communication skills
- Experience working with game engines and/or gaming console SDKs
- Experience with frameworks that employ web technology in application design, such as CEF and Electron
- Experience with DirectX 9+, OpenGL, Vulkan and other graphics rendering technologies
- Experience in game and desktop video and audio capture, encoding, and/or streaming technologies
- Experience in Win32, MacOS, and Linux application development
- Proven understanding of Git, CI/CD, and build automation
- A passion for performance and providing phenomenal end user experience
- A history of self-motivation and self-improvement throughout your career