Senior Software Engineer - Java, Spring Boot and Microservices, Customer Systems

AppleApplyPublished 1 days agoFirst seen 1 days ago
Apply

Summary

\Apple is a place where extraordinary people gather to do their best work. Together we craft products and experiences people once couldn’t have imagined — and now can’t imagine living without.

Do you want to help build some of the largest and most consequential enterprise and customer technology systems in the world? Join Apple’s Information Systems and Technology (IS&T) organization. IS&T is the engine behind everything Apple does for customers and for the people who build for them. It’s Apple’s central nervous system. Supporting 2.5 billion active Apple devices, processing billions of secure transactions, and keeping the technology that defines modern life running flawlessly, IS&T makes the impossible feel effortless.

Customer Systems is part of IS&T and drives the technology behind Apple's customer support experience — from contact center operations to the software powering the iconic Genius Bar. The team also builds and operates AppleCare's online support platform, which handles 6 billion visits per year, delivering seamless, high-quality support to Apple customers around the globe

Do you love building solutions to handle global complexity and immense scale? Imagine what you could do here.

Description

We are looking for mid-career senior-level Java Software Engineers, highly motivated and dedicated to build the next generation of software services that powers several critically important applications. In this role you will be partnering with multi-functional teams across Apple. You will work closely with our business leaders and other partners to implement new solutions. The candidate must be able to work independently, understand the needs and build the solutions for sophisticated architecture and comfortable working under pressure at times.

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.

Responsibilities

  • Design, develop, test, document, improve, and maintain highly reliable, scalable, and maintainable enterprise applications mostly in Java (and other languages as needed) that can match Apple volumes
  • Understand requirements, engage with team members, multi-functional teams and project managers to define solutions, and estimate the scope of work required
  • Collaborate with, mentor, and influence members within your team and across other teams at Apple
  • Deliver solutions that can keep up with a rapidly evolving product in a timely fashion
  • Review technical designs and perform code review

Minimum Qualifications

  • Bachelor’s degree in computer science 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 REST API implementation
  • 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.
  • 3+ years proven experience with Java, Spring, SpringBoot 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.).
  • Experience in reactive programming (Spring Webflux/ Project Reactor) 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.)