Distributed Systems Software Engineer (Golang)
Role details
Job location
Tech stack
Job description
Apple is looking for a Senior Software Engineer with distributed systems and orchestration experience to join the Satellite Communications Group. Our team builds, monitors, and maintains large scale, highly resilient systems that enable our customers to access communications services via satellite. You'll be contributing to distributed systems, architecture design, and cloud infrastructure (as code!) for critical and unique customer-facing Apple services. This is a rare opportunity to build and control the entire end to end infrastructure, along with all supporting components such as provisioning, monitoring, deployment, and software platforms, from the beginning within a team with a no-ops culture.
Requirements
5+ years Software engineering or DevOps experience\nProficient in at least one of these languages: Python, Go, Rust, C++\nStrong experience with large-scale distributed systems (replication, high availability, data processing/streaming)\nStrong experience with Linux/UNIX administration, configuration, and monitoring\nHave written or contributed to a batch or realtime processing system\nExperience with cloud environments (AWS, Google Cloud Platform, Azure): identity & credential management, pub/sub, message queuing.\nExperience with infrastructure-as-code tools (e.g., Terraform, CloudFormation, Puppet, Flux, Ansible, etc)\nExperience with containerization and orchestration technologies (e.g., Docker, Kubernetes)\nExperience with zero-downtime deployments, job scheduling systems, event-based messaging systems\nAble to quickly learn and adapt to new technologies\nStrong operational and troubleshooting skills.
Deep understanding of distributed systems principles, including consistency, fault tolerance, and scalability.\nStrong familiarity with consensus algorithms (e.g., Raft, Paxos, Zab, etc)\nExperience building and operating multi-clustered and highly-available services\nExperience with Temporal/Cadence/Windmill or other durable execution platforms\nUnderstanding of zero-trust application architecture\nProven experience building and optimizing real-time and batch data processing pipelines using technologies such as Kafka, Spark, Flink, Beam, etc.\nKubernetes experience, including cluster management as well as application deployment and configuration\nExperience with IoT/Edge device compute and infrastructure\nExperience or interest in RF, Cellular, Satellite communications (Bluetooth, GPS, WiFi, LTE/5G)\nExperience with modern web-scale services including servers, vips, load balancers, proxies\nExperience working with monitoring and metrics platforms like Splunk and Prometheus\nEducation: Engineering or technical BS is a positive but not required.