Senior API Software Developer - Apple Maps
Santa Clara Valley (Cupertino), California, United States
Software and Services
We are building the next generation of rich, dynamic, interactive services that will power today’s Apple Mapping products as well as those yet to be invented. We are tasked with developing robust, intuitive and scalable APIs to Maps data and services. If you are a strong developer who wants to work with large and distributed systems which empower millions of people to operate more efficiently. We're looking for a talented and passionate person to join this amazing team, if you feel this is you, we'd love to hear from you.
- You have experience designing, building and deploying large-scale distributed systems.
- You possess excellent communication skills – you'll be working across different teams and organizations, as well as with external vendors.
- You are versed in one or more object-oriented and / or functional languages (e.g. C++, Java, Clojure) and one or more scripting languages (e.g. Python, Ruby).
- You have a mind for building web services and reusable software components: how they're used, how they scale, how they fit together and how they break.
- Your knowledge of common web service protocols (HTTP, JSON, Protobuf, REST) will be beneficial.
- You've got significant experieince diagnosing and debugging complex systems.
- You have a focus on quality, with experience writing unit tests, developing test plans and working with evaluation teams. The desire to mentor and utilize your past experiences to contribute to our strong team dynamic.
The Maps API team supports a wide range of clients including the Maps app on iOS and macOS, web applications as well as server backends. As a member of the team, you are a key contributor to the services underlying the most important aspects of the Maps ecosystem. API's are the face of the system and given Apple’s ecosystem. As such, designing and developing APIs at scale takes a certain mindset and a level of experience to appreciate the work involved in rolling out a well-designed piece of critical software. We develop our services primarily in Java and C++, though we also build tools in Groovy, Gradle, Ruby/Chef, CMake, Bash, etc. We're not looking for particular experience with technologies, nor years in industry – we're looking for great developers who will be a complement to the rest of the team. Starting with the ingestion of data from disparate data sources, our continuous deployment process detects new data, triggers data builds and replication, reconciles data versions with code versions, and shepherds both code and data through test and into a deployment environment. We have big plans and want engineers and leaders that can design and build clean, scalable, and performant data services, as well as help trace, monitor, and debug data as it proceeds through a complex pipeline. We’re overhauling things front-to-back and we want your passion of living and breathing data and distributed services.
Education & Experience
Technical BS/MS or relevant industry experience.
- This is a senior level role for someone who has built distributed systems in the past and is comfortable leading projects and mentoring team members.