Youβll get further by understanding what a company values and what makes its employees tick.
August 27, 2021, was my last day at Amazon Web Services (AWS). I spent two years there, most of it running the companyβs open source marketing and strategy team. While ostensibly helping the world better understand the open source work AWS does, we actually spent most of our time inside AWS, helping product teams understand why and how to contribute to the relevant open source upstreams upon which their services might depend. The rest was spent outside the company, working with open source companies such as Confluent and Databricks to improve AWS partnerships with those companies.
Oh, and along the way, I helped put out dumpster fires that erupted when AWS was perceived to be doing βbad thingsβ to open source companies and communities.
In my experience, much of the ire directed at AWS over open source is misplaced. No, itβs not that AWS is perfect, though the company remains one of the worldβs biggest contributors to open source projects. (Whether you measure by number of active contributors or code, you can see the data for yourself by running this code.) Rather, itβs mostly an error in thinking of AWS as a monolithic entity with a common approach to open source. This is one of the primary myths about AWS that leads to misunderstanding, but there are more, as Iβll try to tackle here.Β Nothing Iβll write here is secret, though itβs almost as if Amazon hides it all in plain sight.
Two-pizza teams
Β Amazon Founder and former CEO Jeff Bezos instituted the βtwo-pizza ruleβΒ early in the companyβs history: βWe try to create teams that are no larger than can be fed by two pizzas.β This is a bit of an exaggeration, but the principle is religiously adhered to across AWS. Teams tend to be relatively small and, just as important, they are almost wholly autonomous.
What does this mean? Well, it means that you might be right that service team X isnβt currently contributing back to an open source project, but that doesnβt mean the same is true of the other service teams (more than 200 of them). The ElastiCache team, for example, employs one of the five maintainers of Redis. Other teams make significant contributions to Rust, Apache Lucene, Kubernetes, OpenTelemetry, etcd, Apache Iceberg, OpenJDK, GraphQL, and more.
Are there service teams who donβt yet work with open source upstreams? Of course, just as there are at Microsoft, Google, Alibaba, etc. But while I worked for AWS, I saw this shifting. Itβs a slow process precisely because Amazon almost never works by top-down fiat. If you want Amazon to contribute more, you need to focus on individual teams and, just as importantly, you need to speak Amazonian.
Yes, those LPs are real
By βspeak Amazonianβ Iβm referring to the language and thought process embedded in theΒ companyβs 16 Leadership PrinciplesΒ (LPs). Before joining AWS I thought the LPs must be cheesy sloganeering at best, jingoism at worst, but it turns out they provide a common framework for more than one million Amazon employees to talk to each other and work together. They permeate virtually every discussion at AWS, including the famous β6-pagersβ that are used to raise ideas and decide operational plans.
When I joined AWS, I initially avoided using the LPs in discussions. It didnβt go well. Iβd say, βWe should contribute to project X because itβs the right thing to do!β Blank stares. βWe need to give engineers more time to contribute to project Y so we can influence the projectβs direction.β Raised eyebrows. I was getting nowhere.
But then I tried framing my arguments with the LPs and things got much better. I started saying things like, βItβs hard to βObsess over Customersβ and deliver innovation with βFrugalityβ if we donβt βEarn Trustβ with the communities we depend on by making code contributions. This also allows us to βInsist on the Highest Standardsβ because our contributions put us in a better position to βDeliver Resultsβ and support customers.β
Suddenly, people understood what I meant. Itβs not that they were dense before; rather, I needed to speak the language that calls out the principles that govern everything that is done at AWS (and, indeed, all of Amazon). If you want to change behavior at AWS, you must frame the desired outcome using the LPs. My team became increasingly adept at doing this, and itβs paying off in ever-greater service team involvement in the projects upon which they depend.Β This is not to say there isnβt room for improvement.
The spirit is willing
In my time at AWS, I never heard a single person disparage the importance of open source. Quite the contrary. I know itβs fun to caricature AWS as a bunch of evil henchmen intent on strip-mining open source, but I never encountered anyone that fit that description. Rather, when Iβd have disagreements with service team general managers or others about the relative importance of open source to their business, our disagreements invariably came down to which LPs we weighed heaviest in a particular situation.
For example, βCustomer Obsessionβ comes first for all Amazonians, but it can be read in different ways. I might view open source contributions as critical to obsessing over customers in the medium to long-term, but a service team general manager also must consider the near term, which might mean creating a private branch of code to ensure a company could rapidly fix bugs or deliver features customers were demanding. Itβs also the case that although customers all seem to like and want open source, many value the operationalization of that code even more (something thatΒ Tim Bray pointed out years ago).
This means that ensuring a seamless customer experience in the short term can sometimes consume the engineers who might otherwise be contributing to the longer-term success of a given project. Iβve seen this changing for the better at AWS but, again, there is no one-size-fits-all approach to open source in a company filled with two-pizza teams.
It also means that LPs such as βOwnership,β βInvent and Simplify,β βInsist on the Highest Standards,β and βDeliver Resultsβ can seemingly conflict with the desire to partner well with commercial stewards of open source projects. If a customer wants Apache Kafka made easier for them, the immediate response is to build a service that you can manage on their behalf, with as few moving parts or opportunities for failure as possible. Another response is to partner to ensure that seamless customer experience. Though AWS has perhaps historically found the first option easier to deliver, Iβm encouraged by all the success I saw with Confluent (in the Kafka case), as well as other open source companies.
In this area and others, AWS still has a ways to goβbut then we all do. One of the things Iβve loved most for more than 20 years in open source is just how much more we, as an industry (and as individual people and companies), have to learn despite years of trial and error. No one has cracked the code on the perfect way to build and run an open source project or business. Weβre all still learning.
So letβs be patient with each other, and seek to understand why a person or company operates as it does, as Iβve tried to do here for AWS.


