Asking “What’s it like to be a software engineer at Amazon?” is like asking what it’s like to visit New York City. The answer depends on how you spend your time. Did you eat homemade linguini in Little Italy or soak in the neon lights of Times Square? Did you clink glasses at a happy hour in Brooklyn or lounge around in a Hilton, not exploring at all?
With dozens of buildings and thousands of engineers, the Amazon campus near Downtown Seattle is a city unto itself. I’ve had a blast in my four years here because I discovered the right activities. I’m a developer, not a spokesperson, and the opinions I express here may not represent those of the company. That said, I’ll share a few suggestions for maximizing your time as a software engineer.
1. Go to the Principal Community’s tech talks
Amazon Distinguished Engineer James Gosling, the creator of Java, spoke last year about his experience building autonomous vehicles for deep-sea exploration. The tech talk was part of the Principals of Amazon (PoA) series. Several times per month senior engineers like Gosling present about their projects. The specific topics are confidential. Suffice it to say they represent all of Amazon’s businesses — from Game Studios to Prime Air to Alexa. Each talk you attend will make you a better engineer.
2. Become a Working Backwards scholar
A customer should be able to grab snacks from a grocery store and walk away without checking out; the store should sense what she took and charge her automatically. This premise sounds like science fiction. If you start thinking about what tech exists to solve it, you’ll hit a million roadblocks. Yet the experience — Amazon Go — exists today in Seattle and a few other cities. Amazon made it happen through working backwards: a process focused on letting customers’ wants and needs drive technical design. Register for the official course on working backwards. Also consider sitting in on a user-experience (UX) research session where customers voice their opinions. If you’re an engineer who jumps head-first into setting up a tech stack, working backwards will rewire your brain for the better.
3. Present at internal conferences
Many people fear public speaking more than death, according to a few famous surveys, and I think that’s especially true of software engineers. We tend to do our best work with Bose noise-canceling headphones — not bright lights and a microphone. Nevertheless, consider presenting at an internal conference. First, it lets you travel and swap ideas with Amazonians in other offices. I’ll never forget visiting Germany and Scotland as part of Amazon’s Web Dev Con. Second, public speaking lets you evangelize certain tools, architectures and ways of working. As Jeff Bezos said, “Technology isn’t disruptive; customer adoption is disruptive.” If you design a library that cuts build times by 30% and 0% of your peers implement it, you improved the build by 0%.
4. Seek out formal mentors and feedback
As part of working backwards, I wanted to bone up on UX design in addition to engineering. Amazon has a nifty website that made it easy to search for mentors in both disciplines. I jokingly call it “Match.com for engineers” because it shows a percentage match representing the overlap of professional interests. Having two mentors from different teams has been invaluable. During one coffee meet-up, my UX mentor studied a mockup with fresh eyes and shared advice that shaved a week’s work off my sprint. Speaking of feedback, some of the best advice I’ve heard is to ask your manager how you’re doing during regular check-ins; don’t wait until your official performance review. This applies to most companies — not just Amazon.
5. Become an expert on developer tools
Some tools are so complex that proficiency amounts to learning 10% of their features. Take Git for example. You can get by for years without
git bisect, but it might save you a sleepless night of debugging. I won’t dive into Amazon’s developer tools out of respect for confidentiality, but I will say they’re powerful and expansive. I recommend devoting at least a few hours per month to continuing education in their advanced features.
6. Switch teams
This opinion is somewhat controversial, but I recommend switching teams at least once in your Amazon career. Consider moving to an entirely different business unit. I worked on web apps for advertising for almost 3 years and later switched to Lab126, the research and development team for devices. Some people view switching teams as a sign of unhappiness. For me it was about gaining a new perspective. Advertising presented challenges in scaling and internationalization with billions in revenue at stake. Problems in R&D tend to be more experimental and open-ended. Juxtaposing these mindsets made me feel more well rounded as an engineer. That said, apply good judgement in deciding when, where and how to switch. If you move so often that you can’t grow roots and meaningfully contribute, it’ll hinder your career.
7. Explore the campus
Just a few of the things you can discover at HQ: a giant bio-dome (“The Spheres”) with sandwiches and donuts inside, big statues of videogame characters such as Lara Croft, indoor mini-golf, panoramic views of Downtown Seattle. Most — if not all — teams won’t mind it if you work remotely from other parts of the campus. Take some time to explore just for fun.
Addressing common concerns
Now that I’ve shared a few suggestions for enjoying your time at Amazon, allow me to address two comments that tend to pop up when I discuss the company.
Q: Aren’t you glossing over [some negative piece of news]?
A: By highlighting positive aspects of my experience, I’m not implying that Amazon is perfect. I agree that it’s healthy to question and criticize all companies’ business practices.
Q: Why should I trust what you’re saying? You wouldn’t be honest if you had concerns about your job.
A: It's true that if I had concerns about my job, I wouldn’t blog about them. That would be underhanded. I would instead raise the issue to my manager. At the same time, no one incentivized me to say positive things about Amazon. If I didn’t believe these 7 tips, I wouldn’t bother to share them.
To make the most of your time as a software engineer at Amazon, think of the Seattle HQ as its own city. When you visit any city that’s sprawling with people and activities, your experience will vary depending on how you spend your time. Listening to senior engineers, finding mentors, trying different teams and physically exploring the campus are a few of the figurative pitstops I recommend.