Software Engineer, Distributed Systems
Santa Clara Valley (Cupertino), California, United States
Software and Services
Do you love watching software unfold before your eyes? Do you dream about solving problems with code? How about the building blocks of a large scale system? If so, come help us build the next generation cloud platform to support internet services across Apple. Our server engineering team develops and deploys software which forms the foundation for some of our most exciting services, including iCloud, Maps, iTunes, and more. We are looking for a Software Engineer who cares about impeccable code, looks for bugs as a hobby and fixes them with their eyes closed.
- Experience designing, implementing and supporting highly scalable applications and web services.
- Strong experience with Object Oriented design concepts.
- Familiarity with modern server development techniques (e.g. non-blocking IO, distributed locking, threading, etcd.)
- Understanding of distributed systems and cloud based architectures.
- Experience crafting REST APIs.
- Understanding of Software Testing Life Cycle, Continuous Integration and Deployment.
- Experience developing in one or more of the following programming languages: Java, Python, Go (golang), C/C++.
- Strong attention to detail and passion for development.
The PIE Coordination Software Engineering team provides reliable distributed coordination services (distributed locking, leader election, configuration management etc.) for the Apple cloud platform. We are seeking a talented Software Engineer to join a small, fast paced team. This person should feel comfortable designing and implementing fault tolerant systems from the ground up. Strong Java knowledge is preferred; knowledge of other languages such as Python, Go, C/C++ is a plus. Experience with other distributed coordination systems such as Zookeeper, etcd, or Consul is highly desired.
Education & Experience
BS or MS in Computer Science or equivalent industry experience.