Full Job Description
Description
As a Senior Software Engineer, you will design, build, and scale enterprise back-end systems that power critical Apple products and services. You will develop, document, and maintain production code in Java - from architecture through implementation - while independently owning complex, often ambiguous technical problems and driving cross-functional solutions with minimal guidance.
You'll be hands-on across the stack: designing APIs and microservices, working with core Java internals, optimizing data layer performance, and ensuring secure, reliable deployment. You will interface directly with business leaders, application owners, other developers, and project managers to take projects from inception to completion, and you'll be responsible for delivering on commitments on time.
Beyond individual contribution, you will act as a key technical mentor on your team, shaping architectural direction and raising the technical bar for those around you - extending your influence across related disciplines and organization-wide initiatives. This role calls for someone comfortable working independently and under pressure on sophisticated, large-scale system architecture.
Minimum Qualifications
B.S. in Computer Science, Computer Engineering, or a related technical field, or equivalent work experience.
8+ years experience in designing and developing scalable enterprise level back end solutions.
4+ years 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.
Java Ecosystem - Experience building production applications with the Spring ecosystem (e.g. Spring Boot, Spring MVC,
Spring Security, Spring Data, Spring Cloud, etc.), including proficiency in dependency injection, auto-configuration, reactive programming with WebFlux, and designing microservices using Spring-based patterns.
Java Ecosystem - Solid understanding of advanced JVM internals (e.g. garbage collection, memory allocation, JIT, JNI, etc.).
Distributed Systems & Architecture - Experience in API design and implementation, including proficiency in RESTful API principles, gRPC, GraphQL, contract-first design (e.g. OpenAPI/Swagger, Protobuf, etc.), API versioning strategies, gateway patterns, rate limiting, and designing APIs for backward compatibility and long-term evolution.
Distributed Systems & Architecture - Experience with message-driven and event-driven architectures, including proficiency in messaging systems (e.g. Kafka, RabbitMQ, ActiveMQ, etc.), event sourcing, CQRS patterns, and designing reliable asynchronous communication between distributed services.
Preferred Qualifications
Track record of leading software projects within a team as a tech lead (TL), while mentoring software engineers.
Hands-on experience leveraging GenAI coding tools (e.g., Claude, Copilot, Codex) to accelerate the software development lifecycle, enhance code quality, and streamline debugging and testing processes.
Security - Experience implementing authentication and authorization systems, including proficiency in identity protocols (e.g. OAuth2, OIDC, SAML, JWT, etc.), single sign-on (SSO) architectures, role-based and attribute-based access control (RBAC/ABAC), and integration with identity providers and directory services.
AI/ML - Experience with Natural Language Processing and Generative AI systems, including Large Language Models (LLMs), Retrieval Augmented Generation (RAG) architectures, embedding pipelines, vector databases (e.g. Pinecone, Weaviate, pgvector, etc.), fine-tuning, and prompt engineering for production applications.
Distributed Systems & Architecture - Experience with caching strategies and in-memory data technologies (e.g. Redis, Memcached, Hazelcast, Ehcache, etc.), including proficiency in cache invalidation patterns, distributed caching architectures, and session management for high-throughput applications.
Databases - Experience using relational (e.g. Oracle, Postgres, MySQL, etc.) and NoSQL (e.g. Cassandra, MongoDB, etc.) databases, including proficiency in schema design, query optimization, performance tuning (e.g. execution plan analysis, indexing strategy, and query rewriting).