As a senior-level Software Engineer, you will 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.
The ideal candidate is self-motivated, pro-active and results-driven. Attention to detail, dedication to providing high-quality solutions modeling engineering excellence, and ability to work towards on-time 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.
Minimum Qualifications:
- B.S. in Computer Science, Computer Engineering, or a related technical field, or equivalent professional work experience.
- 5+ years proven experience developing software in a professional capacity. Longer experience preferred.
- 3+ years proven experience implementing, and shipping high-scale, high-performance, highly available, fault-tolerant, and secure cloud-based distributed systems, including proficiency in API implementation (e.g. REST, RPC, GraphQL, etc.).
- 3+ years proven experience using relational (e.g. Postgres, MySQL, etc.) and NoSQL (e.g. Cassandra, MongoDB, etc.) databases, including proficiency in schema design and query optimization.
- 2+ years proven experience with Java, including proficiency in concurrency, memory management, and performance optimization techniques.
- Proficiency 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 within a team as a tech lead (TL), while mentoring 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.).
- Understanding of advanced JVM internals (e.g. garbage collection, memory allocation, JIT, JNI, etc.).
- 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.