You'll work on solving build system problems by leveraging a strong distributed backend. You'll find ways to combine our unique problem domain with established distributed system techniques to achieve both high performance and reliability. You'll analyze problem requirements, existing solutions, and available systems and make high-level architectural decisions about how to architect the backend, considering both short- and long-term goals. Once solutions are identified, you will work alongside our team to implement them while developing appropriate testing and operational mechanisms.
You will be most successful here as a flexible and proactive engineer who thrives in a supportive, respectful, and balanced work environment with interesting and challenging problems to tackle. You have excellent judgment and integrity with the ability to make timely and sound decisions. You know how to drive constructive discussion of design points, learn from your team, and use your experience to advocate and teach others.
We welcome all applicants, but familiarity in one the following areas will help you come up to speed fastest on our project:
* Experience or interest in traditional and/or distributed build systems such as Make, CMake, Bazel, Buck, etc.
* Experience with high-performance strongly typed languages such as Swift, Rust, C++, Scala, or others.
* Experience in systems programming (e.g., operating systems, kernel development, compilers or package managers).
* Experience with SDK or framework development used by other developers.
* Experience with writing performance-critical components such as game engines.
* Experience with reliable, scalable, distributed systems
In your role as an engineer on our team:
* Spend the majority of your time programming in Swift.
* Collaborate with your teammates through git pull requests, in-person conversations, and Slack.
* Engage with other teams to help identify issues and establish long-term relationships that include knowledge sharing.
* Develop expertise and be given ownership over components critical to Apple’s success.
* Provide technical guidance, software architectural review, and mentorship.
* Make customer-focused product design decisions with your teammates and drive what really matters.
* Prioritize and schedule issues, estimate scope of work, and investigate new issue reports in your areas of responsibility.
* Have access to the engineers who create Apple’s full technology, tools, and operating systems stack.