Epic Games, Inc. seeks a Senior Tools Programmer in Bellevue, WA
Design and implement low-level systems and graphical user interfaces in the Unreal Editor. Collaborate with content creator, design, and engineering teams to identify areas for improvement for workflows and performance in the Unreal Editor. Design, implement, and deliver those solutions. Responsible for Unreal Engine technology, from serialization of the object model to displaying real-time 3D simulations from multiple views to support creating content using the Unreal Editor. Design and implement low-level systems for the Unreal Editor, including UI frameworks, data inspectors, debuggers, asset management systems, serialization systems, reflection systems and code generation systems. Collaborate with engineers to develop new or improved application programming interfaces (APIs) that improve Unreal's frameworks, reduce the incidence of bugs and increase developer productivity. Collaborate with designers to identify problematic workflows in game engine editors that are tedious, error prone or broken. The candidate must be able to design and implement optimal solutions to these problems. Identify bugs in editor code and behavior, analyze misbehaving code and data in order to determine the root cause of the problem, develop a solution to the problem and propose improved processes to prevent similar issues from arising in the future. Provide technical support to external customers, this includes answering questions and helping them adapt Unreal Engine for their specific needs. This also involves providing feedback and working with customers to merge pull requests that are beneficial to Epic and other customers. Optimize engine and editor performance by implementing new workflows, improving frameworks and creating new systems that better utilize developer time and computer resources. Develop and maintain automated testing frameworks, create new unit and system tests to ensure ongoing quality assurance of the editor. Some telecommuting is permitted.
Requirements: Bachelor's degree in Computer Science, Electrical Engineering, Computer Engineering, or related technical fields, plus 4 years of work experience in job offered, or in a computer-related occupation.
Position requires 4 years of experience in the following:
- Worked in at least two shipped titles as a programmer or developer.
- Maintaining and optimizing UI frameworks, including experience with efficiently rendering UI elements.
- Maintaining and optimizing using at least 2 other core game engine systems: animation, serialization, reflection, audio, rendering, physics, VFX.
- Collaborating with game developers in other disciplines.
- Demonstrating building in-game or in-editor tools.
- Optimizing CPU and GPU processing and memory utilization of a C++ based game.
- Using sampling, instrumentation and GPU profilers including: VTune, Superluminal, PIX, RAD Telemetry, NSights or Razor.
- Optimizing, fixing and extending render pipelines for real-time 3D simulation applications.
- Writing shaders and experience with modern rendering APIs (DirectX 12, Vulkan, or Metal).
- C++ programming experience with demonstrated ability to use modern C++ concepts including: smart pointers, move semantics, constexpr and template programming.
- Professional C++ programming experience with demonstrated ability to write and debug multithreaded and asynchronous code.
Salary: $250,400 to $297,682 per year. Medical/Vision, Dental, & Retirement benefits available. To apply, go to http://www.jobpostingtoday.com (Ref #39746).