Requirements
- Experience in software engineering and Bazel-focused build systems in system software
- Deep knowledge of Bazel:
- Authoring rules
- Apple platforms
- Toolchains (native + custom, especially newer rules based toolchain configuration)
- Transitions
- Configuration + Constraints
- Remote Execution APIs
- Strong understanding of Apple development ecosystems: Xcode, Swift toolchains, SDKs, mach-o formats, and universal binaries.
- Extensive experience with hermetic builds, sandboxing, deterministic builds, and debugging action-cache behavior.
- Solid foundation in C/C++, Swift, or Objective-C.
- Comfortable with Python and Bash for tooling.
- Experience with Jenkins or similar CI infrastructure.
Nice to Haves
- Migrated complex Apple codebases to and from Xcodebuild and Bazel.
- Experience with Swift toolchain hermeticity and balancing it with compilation speed or custom Clang/Swift wrapper actions.
- Experience optimizing monorepos with hundreds/thousands of targets.
- Hands-on experience with distributed caching, remote test execution, and execution platform modeling.
- Contributions to Bazel, rules_apple, rules_swift, rules_cc, or RBE-related open-source projects.
What You'll Be Doing
- Design, evolve, and maintain a Bazel based build for system-level software spanning many generations of targets.
- Own Starlark rules, custom providers, toolchain definitions, platform constraints, transitions, and configuration layering.
- Build hermetic, deterministic toolchains for macOS/iOS/watchOS/tvOS, including Clang-based C/C++/Obj-C and Swift toolchains.
- Diagnose and eliminate sources of nondeterminism: Xcode environment leakage, SDK drift, tool version skew.
- Integrate and tune remote execution systems, specifically BuildBarn. Past experience with other tools in the space like EngFlow, BuildBuddy etc will come in handy.
- Build and maintain hermetic Apple platform toolchains including SDK extraction and version pinning, Clang/Swift invocation under Bazel.
- Build IDE integrations, instrument build graph performance, and author tools to visualize dependency edges, configuration transitions, and remote execution behavior.
- Maintain Jenkins pipelines for multi-platform build, test, packaging, and artifact promotion.
- Define reproducible build and release processes across macOS, iOS, and other Apple platforms.
- Transform test results, code coverage results, static analysis results into information that helps developers focus their efforts.
Perks and Benefits
Could include perks and benefits here.