Apple
Software Engineer - Distributed Systems
Apple, Cupertino, CA
SummaryPosted: Role Number:200566128Our 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.DescriptionOur 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 QualificationsExperience 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.Preferred QualificationsFamiliarity with application and service monitoring tools and techniquesExperience with incident management and responseFamiliarity with virtualization technologyPay & BenefitsAt Apple, base pay is one part of our total compensation package and is determined within a range. This provides the opportunity to progress as you grow and develop within a role. The base pay range for this role is between $175,800 and $312,200, and your base pay will depend on your skills, qualifications, experience, and location.Apple employees also have the opportunity to become an Apple shareholder through participation in Apple’s discretionary employee stock programs. Apple employees are eligible for discretionary restricted stock unit awards, and can purchase Apple stock at a discount if voluntarily participating in Apple’s Employee Stock Purchase Plan. You’ll also receive benefits including: Comprehensive medical and dental coverage, retirement benefits, a range of discounted products and free services, and for formal education related to advancing your career at Apple, reimbursement for certain educational expenses — including tuition. Additionally, this role might be eligible for discretionary bonuses or commission payments as well as relocation. Learn more about Apple Benefits.Note: Apple benefit, compensation and employee stock programs are subject to eligibility requirements and other terms of the applicable plan or program.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.