Full Stack Software Engineer

Summary

Full-stack engineer on Apple's Solutions Platforms and Architecture team building internal platforms for Apple Services Engineering. Work spans React/TypeScript front-ends, Java back-end services, distributed systems, CI/CD, and testing — with agentic AI coding assistants used as a primary development tool throughout the SDLC.

Imagine what you could do here! At Apple, new ideas have a way of becoming extraordinary products, services, and experiences very quickly — and that is as true of the tools we build for engineers inside Apple as it is of the products the world sees. Our team builds platforms that engineering teams across Apple Services Engineering depend on. When we get it right, complicated work becomes simpler and faster, and the platform itself gets out of the way. With the advent of artificial intelligence, the way software gets built has changed, and this role is written for this new era of AI-assisted engineering. We are looking for an engineer who is, at heart, a builder who works fluently with agentic AI coding assistants. Someone who is equally at home crafting a refined React user interface and designing the distributed Java services and data flows behind it. AI tools have made producing code far faster; they have not made it any more trustworthy. Driving generated code to the point where it can be trusted to meet the requirements is the part of the job we weigh most heavily. If you care about elegant systems as much as elegant code, and you have already reorganized your own software development workflows around AI tools, we would like to hear from you.

You will design, build, and evolve software products, services, and tools in the Solutions Platforms and Architecture team. The work spans the full stack: the user interfaces engineers use, the services and API contracts behind them, and the pipelines that carry all of it into production. You will own features from problem definition and technical design through implementation, deployment, adoption, and continuous improvement. We care deeply about the experience of the people who use what we build. We think in systems: how components fit together, where the right abstractions belong, and how today's decisions shape tomorrow's roadmap. You will bring that same user-first instinct to interfaces and APIs that are a delight to use and to integrate with. The systems underneath are large-scale and distributed, and one of the real challenges of this role lives there. Services fail partially, writes arrive out of order, and state is often eventually consistent — and every one of those facts surfaces at the edge, whether that edge is a person watching a browser or another system calling our API. You will handle that complexity end to end: designing services that stay correct under concurrency, and deciding what a caller sees in the meantime — how the interface behaves when an optimistic update has to be reconciled or rolled back, and what guarantees the API contract provides to a client that retries. Working with AI runs through all of that, and using agentic AI well is a fundamental expectation of this role. We expect you to use the latest frontier models and AI best practices so that you can leverage AI to amplify the entire software development lifecycle, including interactive planning, architecture, design, product requirements, product user stories, test plans, TDD code generation, iterative code review and refinement, pull request reviews, diagnostics, and performance analysis. You will seek out review of your own work and give candid feedback on your colleagues' work — including when the honest answer is that something is not yet good enough. You will discuss implementation proposals with the team, argue for the approach you believe in, and commit fully to the decision that gets made. Testing is a primary engineering activity here, not a step at the end. You will design unit, integration, and end-to-end coverage that gives the team genuine confidence to release, and build the CI/CD pipelines and scripting that run it continuously. You will gather requirements from stakeholders and turn them into a plan, including when the requirements arrive incomplete. Naming what is still unknown and moving forward anyway is part of the job, and you will correct course as things become clear rather than wait for certainty. You will participate in production releases, coordinate deployments, communicate with customers and stakeholders, support users of our team's software, and act on reliability improvements when you spot the opportunity. This work depends on close collaboration within our team and with the teams we support, so the role asks for curiosity, communication, and ownership alongside strong engineering judgment.

Minimum Qualifications

  • Experience in using agentic AI coding assistants, Claude Code or equivalent, as a primary development tool: engineering the LLM context, structuring effective prompts, building reusable agents and agent skills, planning through interactive discussion with the model, and carrying a feature from intent through to reviewed, tested, and deployed code.
  • Strong software architecture and design fundamentals: decomposing systems into services with clear boundaries, applying design patterns deliberately, designing REST API contracts, and reasoning about failure modes, data flow, and how a design will age.
  • Proven experience designing and building automated tests at every level (unit, integration, and end-to-end) including end-to-end test suites reliable enough to gate a release, and the judgment to say what a passing suite does and does not prove about meeting the requirements.
  • Front-end development with TypeScript and JavaScript, building user interfaces in React and working with the Node.js tooling around them.
  • Back-end service development in Java, implementing and consuming REST APIs.

Preferred Qualifications

  • Fluency in reading, reviewing, and critically evaluating code you did not write, including code a model generated.
  • Experience building on large-scale distributed systems, and handling the asynchronous complexity they create end to end: concurrency and race conditions in services, eventual consistency across regional and system boundaries, optimistic updates in the interface, and idempotent, retry-safe API contracts.
  • Hands-on experience building and maintaining CI/CD pipelines, with the bash scripting that holds them together — code you generate, review, and qualify comfortably.
  • Experience defining testing or CI/CD standards for a team, rather than only working within standards someone else set.
  • Event-driven architecture using messaging queues or platforms.
  • Containerized deployment with Docker and Kubernetes.
  • Observability practice: instrumenting services and using logs, metrics, and traces to understand real production behavior.
  • Comfortable working in a macOS or Linux terminal as a primary environment.

See also

要針對這個職缺調整履歷嗎?

目前無法檢查您與這個職缺的符合程度;請先將履歷加入個人檔案,下次即可查看。

A new version of freehire is available