As a staff-level Software Engineer, you will architect, design, develop, test, document, improve, and maintain code mostly in Java (and other languages as needed). 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 designing solutions, and leading software projects. The ideal candidate is self-motivated, proactive and results-driven. Attention to detail, dedication to providing high-quality solutions modeling engineering excellence, and ability to work towards timely delivery of projects are all crucial qualities needed to work at Apple as a Software Engineer. The ideal candidate will also possess excellent communication and collaboration skills to work with various internal and external partners, and senior leaders.
Minimum Qualifications:
- B.S. in Computer Science, Computer Engineering, or a related technical field, or equivalent professional work experience.
- 8+ years proven experience developing software in a professional capacity. Longer experience strongly preferred.
- 5+ years proven experience designing, implementing, and shipping high-scale, high-performance, highly available, fault-tolerant, and secure cloud-based distributed systems, including mastery in API design and implementation (e.g. REST, RPC, GraphQL, etc.).
- 5+ years proven experience using relational (e.g. Postgres, MySQL, etc.) and NoSQL (e.g. Cassandra, MongoDB, etc.) databases, including mastery in schema design, query optimization, and managing sophisticated data interactions between relational/NoSQL systems.
- 4+ years proven experience with Java, including mastery in concurrency, memory management, and performance optimization techniques.
- Mastery in OOP principles, data structures, algorithms, and software design patterns (e.g. GoF), with a proven focus on implementing testable, maintainable, and extensible backend code.
Preferred Qualifications:
- Track record of leading software projects that span multiple, distributed teams as a tech lead (TL), while mentoring senior-level software engineers.
- Comfortable using CI/CD tools to build, test, deploy, and release containerized software applications on cloud-based Kubernetes (e.g. AWS EKS, GCP GKE, Azure AKS, etc.).
- Expertise in Java web (e.g. ServiceTalk, Spring, Dropwizard, Quarkus, Micronaut, etc.) and unit testing frameworks (e.g. JUnit, Mockito, etc.).
- Experience with tooling languages (e.g. Go, Python, Ruby, etc.) and distributed orchestration&computing systems (e.g. Airflow, Spark, Flink, etc.).
- Strong understanding of advanced JVM internals (e.g. garbage collection, memory allocation, JIT, JNI, etc.).
- Extensive knowledge of networking concepts&protocols (e.g. HTTP/HTTPS, CDN, edge computing, load balancing, OSI model, etc.).
Be the first to know aboutnew jobs every week
Get 8 new jobs with salaries, once per week! Sign up here so you don't miss a single newsletter.