Systems Software Engineer
Santa Clara Valley (Cupertino), California, United States
Software and Services
The Apple Cloud Infrastructure (ACI) team is building the next generation cloud compute services empowering Apple’s software developers to build the products our customers love. We're a fast moving, highly skilled team designing, developing and supporting the operation of a virtual machine and container-based compute platform that Apple’s server-side developers use to build, test and deploy their products. Our web-scale system hosts Apple’s core cloud services and has to stay highly available, secure and "just work”. That's a tall order, and we're looking to add more talented and passionate engineers who love challenges. If you feel like you'd love to join this amazing team, we'd love to hear from you.
- At least 5+ years of software design and development experience in infrastructure engineering (compute, storage and network virtualization) with an emphasis on micro-services architectures and containerization.
- Advanced programming language proficiency in C, C++ or Go, with a track record of designing and developing high performance, secured, scalable and reliable systems
- Experience with Linux system programming
- Hands-on experience with some or all of the following topics : Linux containerization, Linux filesystems, Image distribution, Content storage, Kernel and container security
- Development experience in one or more of: Cloud security, Container / Linux Kernel security and API security
- Experience troubleshooting and diving into metrics to identify resource contention and bottlenecks
- Experience designing benchmarks and load tests to characterize performance and establish scalability models
- Love open source and collaboration.
- Development experience with container orchestration systems such as Docker, Kubernetes or Mesos is a plus
- Development experience in combination of virtualization and container technologies to build a cloud native hypervisor (KubeVirt, Kata, Firecracker, etc) is a plus
- Programming Linux system virtualization based on Libvirt, QEMU, KVM Understanding of various shared networked storage solutions (iSCSI, NFS, cluster file systems) is a plus
Do you enjoy working on reliability, scalability, resilience, security, and performance limits of web-services? You should be curious about how systems work and, more importantly, how they fail. A domain expert with expertise in multiple technical areas, used to designing major features and able to resolve highly complex issues creatively and effectively taking ownership of major features and technologies to demonstrate a significant impact within the organization. Approach complex issues with creativity, ready to take risks and course-correct effectively to produce an impact on the organization through broad implementation of new ideas. Drive ideas from inception to implementation establishing a reputation sought out throughout the organization for advice and consultation through setting standards, process and technical direction. Ready to actively mentor engineers at all levels.
Education & Experience
BS or MS in Computer Science or equivalent