Software Development Manager
Santa Clara Valley (Cupertino), California, United States
Software and Services
Come help us build the next generation cloud platform to build and deploy services across Apple. Our platform server engineering team develops and deploys software which forms the foundation for some of our most exciting products & services. Our software ensures that Apple's services are reliable, scalable, fast, and secure. In this role you will have the unique opportunity to own and deliver key components in Apple's growing suite of infrastructure services. We are looking for a world-class engineering leader with experience leading high-performing engineering teams and operating large-scale distributed systems. We balance our time across automating operations for our growing footprint of products and services, building self-service products to empower internal customers, and increasing the reliability of our services with application and systems-level improvements. You'll be responsible for crafting the product vision for the team, managing scope and timelines for project deliverables, and providing technical leadership in all phases of development. You'll also work with cross-functional teams and customers to influence the direction and strategy for platform services at Apple. You’ll be familiar with the broader field of distributed queues, search, storage, and data streaming and excited by the prospect of working collaboratively with other groups to deliver truly amazing services to our users. You will be able to demonstrate a strong practical understanding of how to develop and operate practical, fault-tolerant high-performance distributed systems. You're also excited about applying practical systems-level knowledge to understand and solve problems under and over the hood.
- 2+ years leading and managing technical teams and projects.
- 5+ years building and operating large-scale stateful systems in mission and business-critical environments.
- Familiarity with distributed queues, databases, networking protocols, and stream processing.
- Experience in designing, implementing, and managing systems that offer self-service and self-healing capabilities.
- Curiosity for learning how things work and fail, and strong problem-solving skills to diagnose and remediate multi-faceted problems.
- Knowledge of Linux, operating systems, networking protocols, security, and file systems.
- Passion for high-quality code, tests, CI/CD, documentation, and addressing recurring problems with software solutions.
- Fluency in Java, Python, or other modern programming languages with strength in design patterns and OO design.
- Great communication and analytical skills and a deep sense of ownership for small tasks and large projects alike.
Lead a team of backend engineers to design, build, and operate services. Define, prioritize, and deliver on an inspiring product strategy and roadmap. Provide technical leadership and mentorship to engineers, with an emphasis on coaching and career development. Design, implement, and ship features that enable internal customers to do more on our platform. Propose and contribute to the methodology for how the team prioritizes projects and measures success. Build tools, systems, and processes that enable effective monitoring, debugging, and capacity planning. Develop and evolve the team's processes, values, and culture, with a focus on efficiency and simplicity. Work closely with other software and systems engineers to improve the availability, reliability, utilization, and scalability of our services.
Education & Experience
BS, MS or PhD in Computer Science, or equivalent experience