Job Directory Senior Software Engineer - Data Oriented Technology Stack

Senior Software Engineer - Data Oriented Technology Stack
San Francisco, CA

Companies like
are looking for tech talent like you.

On Hired, employers apply to you with up-front salaries.
Sign up to start matching for free.

About

Job Description

Unity reaches the world on the next billion devices, from entry-level mobile phones to the highest-end AAA games and runtimes need to be highly performance and scalable. The Unity Data-Oriented Design team builds the tools to give developers the capability to create those experiences and tools to enable others to do so. Our goals are to enable best in class hardware usage and optimizations that can scale from tiny games running on smart watches, to large scale experiences in a way that's fully accessible to our audience.

You will be working on a brand-new, highly modularized architecture based around data-oriented design principles where scalability lives alongside performance. Areas of focus would include core runtime features, asset optimization, editor UI and workflows. Your game design experience might influence our engine functionality design. And you will have an opportunity to work on compression technology, compiler optimizations, data design and other technology innovations to drive game experiences and tools development at Unity.

Rebuilding Unity's core

We're rebuilding the core foundation of Unity with the high-performance multithreaded Data-Oriented Technology Stack. DOTS makes it possible for your game to fully utilize the latest multicore processors without the heavy programming headache. DOTS includes the following features:

* The C# Job System for running multithreaded code efficiently.
* The Entity Component System (ECS) for writing high-performance code by default.
* The Burst Compiler for producing highly optimized native code.

These DOTS features provide programmers with a convenient sandbox to write multithreaded code with massive performance gains. DOTS is currently available in Preview.

DOTS' multithreaded systems enable you to create games that run on a variety of hardware, build richer game worlds with more elements and more complex simulations, and even optimize thermal control and battery lifetime on players' mobile devices. By moving from object-oriented to data-oriented design, it will be easier for you to reuse your code and for others to understand and work on it

* The C# Job System
* Entity Component System (ECS)
* Burst compiler

The C# Job System

The new C# Job System takes advantage of the multiple cores in today's computers. It's designed to open this approach up to C# user scripts and allows users to write safe, fast, jobified code while protecting against some of the pitfalls of multithreading such as race conditions.

Take advantage of multiple cores

The C# Job System exposes the Native C++ Job System allowing C# scripts to be jobified alongside Unity internal components.

A safe environment

Provides protection from some of the pitfalls of multithreading such as race conditions.

Entity Component System (ECS) A better approach to game design

ECS is a way of writing code that focuses on the actual problems you are solving: the data and behavior that make up your game.

In addition to being a better way of approaching game programming for design reasons, using ECS puts you in an ideal position to leverage Unity's C# Job System and Burst Compiler, letting you take full advantage of today's multicore processors.

With ECS, we are moving from object-oriented to a data-oriented design, which means it's easier to reuse code and easier for others to grasp and contribute to it.

Burst compiler Optimized code

A new LLVM-based backend compiler technology takes C# jobs and produces highly-optimized machine code.

The best of every platform

Optimized for the particular capabilities of the platform you're compiling for.

Less hand-coding

Get many of the advantages of hand-tuned assembler code, across multiple platforms, without all the hard work.

You have experienced the practical challenges of developing and shipping games. You have ideas and opinions on how features such as rendering, physics, UI, multiplayer networking, or animation should be designed and implemented, but you're willing to work with others to build consensus around your designs. You want the opportunity to experiment and implement these ideas and guide the development of Unity's new data-oriented runtime and tools. The Software Engineer will be an integral part of our Core Engine team in Los Angeles.

You will collaborate with the core Unity engineering team in our global offices. You will write C++ in the Unity engine, C# in the scripting layer, and use a handful of additional technologies that come with the platforms that we support - such as PC, Mac, iOS, Android, Web, and Consoles.

Responsibilities

* Democratize data oriented programming in the Unity game engine
* Develop tools, real time editing and perform engine programming
* Write code in C++ in the Unity Engine and C# in Scripting layer
* Organize cross department/group teams to successfully solve internal and customer problems
* Provide Technical direction including tools, rendering, and infrastructure

Requirements

* BS/MS Computer Science with strengths in both C++ and C# with three plus years engineering experience
* Experience supporting multiple platforms such as iOS, Android, and Mac etc.
* Excellent verbal and written communication skills with the ability to build relationships with global stakeholders

Bonus points

* Experience working with remote/international teams
* Prior experience with the Unity engine

Who we are

Unity is the creator of the world's most widely-used real-time 3D (RT3D) development platform, providing content creators around the world with the tools they need to build rich, interactive 2D, 3D, VR and AR experiences. In fact, apps made with Unity reach 2.7 billion devices worldwide, and were installed more than 24 billion times in the last 12 months.

The global engineering team keeps Unity at the forefront of technology and - working alongside partners like Magic Leap, Google, Facebook, Oculus and Microsoft - ensures optimized support for the latest technology and platforms. Unity is powering the real-time revolution, expanding beyond games and breaking into other industries including automotive, film, architecture, engineering, construction and more.

Unity is an equal opportunity employer committed to fostering an inclusive, innovative environment with the best employees. Therefore, we provide employment opportunities without regard to age, race, color, ancestry, national origin, religion, disability, sex, gender identity or expression, sexual orientation, or any other protected status in accordance with applicable law. If there are preparations we can make to help ensure you have a comfortable and positive interview experience, please let us know.

Headhunters and recruitment agencies may not submit resumes/CVs through this Web site or directly to managers. Unity does not accept unsolicited headhunter and agency resumes. Unity will not pay fees to any third-party agency or company that does not have a signed agreement with Unity.

#LI-MH1 #SEN

Let your dream job find you.

Sign up to start matching with top companies. It’s fast and free.