Notable Internal Systems at Amazon

Amazon has a large number of internal systems. Here are ones worth knowing about as a software engineer and engineering manager.

When joining as a SDE (Software Development Engineer) or SDM (Software Development Manager), you will have to learn to use the custom Amazon stack, which is still surprisingly different from the stack AWS customers would use. Below are systems you'd likely come across.

Internal systems highly relevant for SDEs

Code: code search and VCS (Git).

Crux: Amazon’s code review system.

Brazil: Amazon’s build system. See a writeup of Brazil which although dated, is still relevant.

Sage: Amazon’s “internal Stack Overflow”.

Amazon internal wiki system: This has a few neat features, like making it very easy to embed graphs from AWS Cloudwatch or the prior system (PMET - Performance Metrics) on the page.

NAWS: Native AWS. The “modern” stack using current AWS.

MAWS: “Move to AWS” (old, legacy AWS systems).

  • Many system are migrating off of this, especially on the Retail side.
  • MAWS requires services to be spun up on EC2 machines via a system called Apollo, but this is basically obsolete with native AWS (for which you're expected to use Lambda, or ECS, or raw EC2 if absolutely necessary).

Isengard/Conduit - AWS Account management (all systems are isolated so that each region, service and stage has a unique AWS account.

Last Week in AWS author Corey Quinn, calls this service The AWS Service I Hate The Most. He writes:

“The fact it’s the internal service used to provision AWS accounts means that AWS engineers building AWS are insulated from the way that the rest of the world manages AWS accounts. They don’t have to deal in the same way with AWS Organizations or Landing Zones or Control Tower or AWS SSO. And that’s the crux of my beef with the service.”

Pipelines: CI/CD system with support for multi-stage deployments of up to 4 stages: beta, gamma, prod, local. An AWS engineer described it like this:

“Pipelines is one of the best examples of 'making easy things difficult to make hard things possible' at Amazon. Services deploying to 3-4 stages (beta, gamma, and prod across different locales) are probably going to be apathetic about pipelines. However, services like much of AWS with hundreds of deployable units in pipelines, are pleased with it.”

LPT: Live Pipeline Templates. Ruby libraries that generate CloudFormation or CodeDeploy templates, along with defining the pipeline, Isengard accounts and other scaffolding. Each service often has an LPT package to create the needed resources.

AWS CDK: there’s a push to use this instead of LPT, but as of early 2022 it’s still a less mature system to LPT. Most teams are moving and some teams say they are especially fond of the TypeScript support it offers.

2PR: second person approval system for sensitive operations like Isengard and SSH access to systems. Accessing systems without this required approval leads to a team ticket created automatically, which can escalate to management.

Organizational systems

AWS Chime: used to be the chat and video calling application. Amazon now uses Slack for chat, but AWS Chime is still used for video calls, including interview calls.

Kingpin: goal tracking system for team, organization and Amazon-wide goals.

Accolades: a tool to give out kudos to employees with comments, with a way to easily “cc” in managers and others.

Connections: pre-installed on company laptops. It asks a simple question at the start of your day like "how do you feel about your manager" or "how much focus does your team have on Operational Excellence (OE)" and asks for a rating out of 5. Everyone across the company is asked the same question each day.

Forte: the Amazon-wide performance feedback process, running from late December until the end of January. Employees use the Forte tool to ask peers and people with whom they work for feedback. This is short, at 60 words or fewer.

Aggregated and anonymised results go up the chain to management, whose goal is to improve their connection scores over time. They are shared with the team and the team gives feedback that their manager acts upon.

Programming languages

The majority of services are written in Java. However, teams are autonomous and can choose whichever language and framework they want. While Java is dominant, there is a wide variety of other languages in use across services.

Want to know more about Amazon's engineering culture? This article is an excerpt from my article Inside Amazon's Engineering Culture. It's my longest article so far, containing more information on this topic than any one publication has attempted before. The article is available to subscribers of The Pragmatic Engineer Newsletter.

Featured Pragmatic Engineer Jobs

The above jobs score at least 9/12 on The Pragmatic Engineer Test. Browse more senior engineer and engineering leadership roles with great engineering cultures, or add your own on The Pragmatic Engineer Job board and apply to join The Pragmatic Engineer Talent Collective.

Want to get interesting opportunities from vetted tech companies? Sign up to The Pragmatic Engineer Talent Collective and get sent great opportunities - similar to the ones below without any obligation. You can be public or anonymous, and I’ll be curating the list of companies and people.

Are you hiring senior+ engineers or engineering managers? Apply to join The Pragmatic Engineer Talent Collective to contact world-class senior and above engineers and engineering managers/directors. Get vetted drops twice a month, from software engineers - full-stack, backend, mobile, frontend, data, ML - and managers currently working at Big Tech, high-growth startups, and places with strong engineering cultures. Apply here.