Join our Build Engineering team supporting all application engineers in the company in delivering fast reliable distributed builds for console desktop mobile and VR.
As a Senior Software Engineer - Android Build System you will work on developing a brand new next-gen build system for Mobile and C development at Roblox that is optimized for building in the cloud.
Distributed builds for C have been around for some time and have grown in popularity in recent years but Roblox faces novel challenges. We support consoles desktops mobile and VR platforms at least some of which are closed and unsupported by any open source or publicly available build system. We are also aiming for distributed and hermetic builds by construction even for these platforms that dont make this easy.
You Will:
- Help migrate Robloxs existing build system to the new next-gen build system
- Work with other teams of engineers internally at the company to understand their workflows and design and develop solutions that meet their needs.
- Find diagnose and fix issues related to the efficiency and correctness of our Android builds from top to bottom.
- Find and fix bugs and add features to the core runtime of our chosen build system.
- Work to leverage our distributed build farm for tasks beyond just compilation (e.g. test execution).
You Have:
- Experience: You have worked in both Java and C using gradle and other build systems such as CMake Bazel Meson MSBuild or others.
- Domain Knowledge: You have deep knowledge of Android development using NDK Java and Android Studio. You have some experience with C compilers linkers libraries and toolchains. You understand the concept of reproducible builds and the kinds of issues that can arise in achieving them.
- Versatility: You can work on multiple platforms (MacOS Windows Linux) and can apply your knowledge and experience to platforms and toolchains you may never have worked with before (for example Consoles or VR Devices)
- Creativity: You take a creative and strategic approach to solving hard problems. Supporting hundreds (if not thousands) of engineers who all have different ideas about how things ought to work should get you thinking about new ways to scale your solutions.
- Pragmatism: You understand the balance between complexity and simplicity and can choose solutions that enable the impossible while still being simple enough that the solutions are bulletproof.
Bonus Points:
- Familiarity with functional programming paradigms
- Experience building distributed systems
- Knowledge of the Bazel Remote Execution API
- Experiencing contributing to Open Source projects
Required Experience:
Senior IC