Software Engineer - Distributed Systems
Cupertino, California, United States
Software and Services
Our team is on a mission to build innovative infrastructure and tools to help other engineers be more productive and make software easier to create, build and distribute. We believe that streamlining software engineering is an important part of unlocking developer creativity and innovation, and we love it when Apple customers see that in the products we ship. We are looking for distributed systems engineers to join our efforts. You'll be developing novel distributed architectures, products and services to accelerate software build, test and deployment. If you enjoy working on distributed systems, then we have many exciting problems for you to work on! We believe that every engineer brings unique skills and perspectives. Far more than any specific experience or skill, we are looking for engineers who want to build great reliable software and services, learn and develop their skills, and ultimately enable others to develop amazing applications. You would join a small, tight-knit group of engineers who build exciting new technology, and have fun while doing so.
Description
Our team works on evolving a set of innovative distributed backend services and tools. You’ll find ways to combine our unique problem domain with established distributed system techniques in order to achieve high performance, reliability and long-term maintainability. You'll analyze problem requirements, existing solutions, and available systems and make high-level architectural decisions about how to design the backend, considering both medium 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 judgement 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. In your role as an engineer on our team you will:
- Spend the majority of your time working on distributed services engineering, tooling, and contributing to operational standards used across the organization.
- Collaborate with your teammates to help refine problem requirements and work with teams to implement long-lasting solutions.
- Engage with other teams to help identify issues and establish long-term relationships that include knowledge sharing.
- Provide valuable feedback loops to engineering teams backed by application metrics and log data. - Drive areas of service scalability (resiliency, redundancy, performance) by collaborating in planning meetings.
- Develop expertise and be given ownership over components critical to Apple’s success.
- Contribute to engineering a high-performance system through algorithm design, optimization, and performance testing.
- Design new ways to scale Apple’s distributed services to ever-increasing problem sizes.
- Analyze and improve the operability of our services and tools.
- Have access to the engineers who create Apple’s full technology, tools, and operating systems stack.
Here you’ll find that we:
- Have a wide range of experience, from new engineers to Apple veterans.
- Provide a relaxed work environment where you can choose when to socialize and when to dig into your projects.
- Have an encouraging and growth-focused workplace culture.
- Encourage you to use accrued vacation time and maintain a healthy work-life balance!
Minimum Qualifications
- Experience with building and operating distributed storage and/or distributed compute systems.
- Understanding of distributed systems’ space concerns and algorithms.
- Familiarity with some large infrastructure systems like Kubernetes.
- Experience with high-performance, strongly typed languages such as Swift, Rust, C++, Scala, or others.
- Strong interest in distributed systems, reliability, and cloud services.
- Ability to efficiently develop, debug, and support new technologies in a changing environment.
Key Qualifications
Preferred Qualifications
- Familiarity with application and service monitoring tools and techniques
- Experience with incident management and response
- Familiarity with virtualization technology
Education & Experience
Additional Requirements
Pay & Benefits
Apple is an equal opportunity employer that is committed to inclusion and diversity. We take affirmative action to ensure equal opportunity for all applicants without regard to race, color, religion, sex, sexual orientation, gender identity, national origin, disability, Veteran status, or other legally protected characteristics. Learn more about your EEO rights as an applicant.