Software Engineer
Role details
Job location
Tech stack
Requirements
As a Software Engineer, you will 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. \n\nThe 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. \n\nThe ideal candidate will also possess excellent communication and collaboration skills to work with various members of their immediate and extended team.
B.S. in Computer Science, Computer Engineering, or a related technical field, or equivalent professional work experience.\n2+ years proven experience developing software in a professional capacity.\n1+ years proven experience implementing cloud-based distributed systems, including familiarity with API implementation (e.g. REST, RPC, GraphQL, etc).\n1+ years proven experience using relational (e.g. Postgres, MySQL, etc.) and NoSQL (e.g. Cassandra, MongoDB, etc) databases. \n1+ years proven experience with Java \nFamiliarity with OOP principles, data structures, algorithms, and software design patterns (e.g. GoF), with a focus on implementing testable, maintainable, and extensible backend code.
Exposure to using CI/CD tools to build, test, deploy, and release containerized software applications on cloud-based Kubernetes (e.g. AWS EKS, Google Cloud Platform GKE, Azure AKS, etc).\nFamiliarity with Java web (e.g. ServiceTalk, Spring, Dropwizard, Quarkus, Micronaut, etc.) and unit testing frameworks (e.g. JUnit, Mockito, etc). \nFamiliarity with tooling languages (e.g. Go, Python, Ruby, etc.) and distributed orchestration & computing systems (e.g. Airflow, Spark, Flink, etc). \nBasic understanding of JVM internals (e.g. garbage collection, memory allocation, JIT, JNI, etc).\nBasic knowledge of networking concepts & protocols (e.g. HTTP/HTTPS, CDN, edge computing, load balancing, OSI model, etc).