Software Engineering Manager
Role details
Job location
Tech stack
Job description
As a hands-on Software Engineering Manager, operate as a strong technical lead with a manager's hat - writing code, reviewing designs, and remaining directly engaged in the day-to-day engineering work of your team, while also guiding a small team of engineers early in their careers through architecting, designing, testing, documenting, improving, and maintaining code, primarily in Java (and other languages as needed). The focus will be on foundational systems, frameworks, and platforms for Retail Engineering. You will partake in every aspect of your projects, from planning to design to implementation and future iterations, and you will be encouraged to play an extended role in collaboratively planning and designing solutions that address the requirements of many Retail Engineering teams. The ideal candidate is self-motivated, proactive, and results-driven with a servant-leader mindset. Attention to detail, dedication to providing high-quality solutions, modeling engineering excellence, and the ability to guide their team towards the timely delivery of cross-functional projects are all crucial qualities for working at Apple as a Software Engineering Manager. The ideal candidate will also possess excellent communication and collaboration skills to work with all Retail Engineering teams, various internal and external partners, and senior leaders of Apple.
Requirements
B.S. in Computer Science, Computer Engineering, or a related technical field, or equivalent professional work experience.
5+ years of proven experience developing software in a professional capacity.
2+ years of direct people management experience leading 3+ software engineers.
3+ years of experience designing, implementing, and shipping distributed systems, with working knowledge of secure cloud API/RPC design.
3+ years of experience with relational, NewSQL, and NoSQL databases, including schema design and query optimization
Proficiency in OOP principles, data structures, algorithms, and software design patterns (e.g., GoF), with a proven focus on leading teams implementing testable, maintainable, and extensible distributed systems.
Experience with Java and one of Rust, C++, or Go, including mastery of concurrency, memory management, and performance optimization techniques.
Preferred Qualifications
Strong written and verbal communication skills, mastery of long-form writing, and leadership presentations.
Track record of delivering distributed systems projects with multiple, globally distributed stakeholders, while actively hiring, growing, and mentoring junior and senior software engineer team members.
Comfortable using CI/CD tools to build, test, deploy, and release containerized software applications on cloud-based Kubernetes platforms (e.g., AWS EKS, Google Cloud Platform GKE, Azure AKS).
Extensive knowledge of networking concepts & protocols (e.g., HTTP/HTTPS, CDN, edge computing, load balancing, OSI model, etc.).