Software Engineer - Distributed Systems & Platform Engineering

Apple Inc.
Beaverton, United States of America
2 days ago

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English
Experience level
Intermediate

Job location

Beaverton, United States of America

Tech stack

Java
Computer-Aided Design
Adobe InDesign
Cloud Computing
Software Quality
Code Review
Software Debugging
DevOps
Distributed Systems
Python
Enterprise Messaging Systems
RabbitMQ
Regression Testing
Service Discovery
Software Engineering
Pulumi
Reliability of Systems
Backend
GIT
Event Driven Architecture
Containerization
Kubernetes
Infrastructure Automation Frameworks
Kafka
Api Design
Terraform
Software Version Control
Jenkins
Microservices

Job description

Are you passionate about building systems that are resilient, scalable, and thoughtfully designed? Do you light up in technical discussions and bring fresh ideas to the table? As part of our CAD Infrastructure Development group, you'll help build and evolve the distributed systems that power our products at scale. You'll ensure our services can seamlessly and efficiently handle large-scale demands. Joining this group means you'll be responsible for contributing to the platform infrastructure that fuels our products. Together, you and your team will build the foundation that enables our engineering organization to deliver reliable, performant experiences to our customers. In this role, you will get to work on distributed systems and cloud-native technologies that enable other engineers to build better products, faster., In this highly visible and cross-functional role as a member of our CAD Infrastructure Development team, you will be responsible for contributing to the development of distributed systems and microservices architectures. You will collaborate with multiple product and engineering teams to implement and maintain scalable, event-driven platforms. Your work will enable us to increase system reliability, improve development velocity, and deliver high-quality services at scale.

Requirements

  • Experience in software development with a focus on backend or distributed systems
  • Experience in backend or systems-level languages, such as Go, Java, or Python
  • Experience in using version control systems, such as Git
  • Experience in operating within containerized and cloud-native environments
  • Experience debugging complex distributed workflows and service interactions
  • Experience of software quality methodologies, including code review, regression testing, and coverage analysis
  • Minimum requirement of BS + 3 years of relevant industry experience, * Experience working with Kubernetes and container orchestration in a production environment
  • Experience with event-driven architectures and messaging systems, such as Kafka, RabbitMQ, or NATS
  • Experience in DevOps and CI/CD methodologies, platforms, and tools, such as ArgoCD, Jenkins, or similar
  • Strong understanding of distributed systems concepts: service communication patterns, consistency trade-offs, and failure modes
  • Strong problem-solving abilities and an architectural mindset
  • Familiar with infrastructure-as-code tools, such as Terraform or Pulumi
  • Familiar with API design principles across REST and gRPC
  • Knowledgeable in microservices patterns, including service discovery, circuit breakers, and contract testing
  • Demonstrated ability to collaborate effectively in design discussions and contribute ideas that improve the team's technical direction

Apply for this position