DEV Community

Cover image for What It's Like To Code For Amazon

What It's Like To Code For Amazon

Adam Nathaniel Davis on July 12, 2022

I haven't blogged in four months. I've been really busy because... I started working for Amazon. (You can read about my hiring process here: http...
Collapse
 
val_baca profile image
Valentin Baca

I'm an Amazon Sr. SDE of nearly 10 YOE.

First, you're absolutely right that Amazon is HUGE so there's no such thing as "never" or "always" Individual teams can be remarkably different.

That said, here's my responses:

They're all devs.

This is quite rare. Each team I've been on works closely with business, data engineers, product managers, and marketing.

Amazon doesn't just re-invent the wheel.

A lot of the times, we were inventing the wheel. Apollo/Pipelines simply didn't exist in the world when they were first written.

That said, Amazon is absolutely obsessed with writing their own version of everything or putting wrappers around everything. You're spot on there.

However, you still need to know the fundamentals. CRUX still relies on you knowing how to use git

Why they can't simply send everyone the link before the call, I'll never understand.

Ironically enough, it's meant to respect everyone's time. By doing the reading within the meeting, it ensures that everyone is on the same page (quite literally lol). If they sent out the doc ahead, there would be maybe 20% of people that would actually read it and most wouldn't. Speaking from experience. At the beginning of COVID we tried not doing reading within the meeting and it never worked.

My trick is to just leave the meeting and come back in 15 mins. I cannot stand just being on a muted call. Someone always wants to talk and it interrupts my reading.

Specifically, they're incredibly Java-driven.

Yep. 100%

because the build engine is configured to only allow code that's ES5 (or earlier) compliant.

We do have access to and can use babel. It's easy to setup.

Collapse
 
bytebodger profile image
Adam Nathaniel Davis

Thank you for providing this context!!

Collapse
 
namita2310 profile image
namita2310

I have heard that the work load is very high there. Is it true?

Collapse
 
val_baca profile image
Valentin Baca

It's very true. It takes quite the toll and Amazon certainly gets their money's worth (which makes sense, given what Amazon SDE salaries are). It's certainly on the individual to set their professional boundaries and to determine what "work-life balance" looks like for you.

On the one hand, I find myself doing interviews, going on-call, reviewing system designs, doing code reviews for six different programming languages, while writing in three different on my own project, etc. etc.

On the other hand, if I need to leave in the middle of the day to run an important errand or if I need to just log off a bit early every now and then, that's totally fine too.

You also get the work experience that fulfills any job description's wish list. AWS and Docker experience? HA! of course! CD/CI and testing? Of course!! etc.

Collapse
 
bytebodger profile image
Adam Nathaniel Davis

@val_baca provided some great feedback on this already. And with the caveat that I've only worked here since March, I'll say that I agree with what he's mentioned. The workload doesn't honestly feel inordinately high - to me, at least. Yes, we have a lotta work. (And honestly, we should have a lotta work, considering how we're compensated.) But there's a tremendous amount of trust/freedom afforded to us as well. I've had to call out for a few days here-and-there, and no one's batted an eye at it yet. (Although I'm sure that would be quite different if you didn't know how to properly/professionally communicate those times off with your manager and/or your colleagues.)

I also think, given that Amazon tends to hire very "top-shelf" kinda devs, one of the expectations about being in that kinda privileged position is that you're inherently self-driven. For example, it's almost 9:30PM right now - and I'm still working. But am I working cuz someone at Amazon yelled at me or pressured me into working late?? Not at all. I'm working now because 1) this is a great time for me to work, and 2) I'm incredibly invested in finishing the coding task in front of me at the moment. If I had just shut down my laptop at 5PM, nobody woulda said a darn thing to me about it. But I want to be working on this code right now.

Ultimately, it's about whether or not you can deliver a large volume of quality solutions in an "efficient" period of time. When you're trying to get a lotta stuff done, and you feel personally invested in the work, then sometimes you find yourself working late - entirely of your own accord.

Collapse
 
goncalorodrigues profile image
Gonçalo Rodrigues

Thanks for sharing! I felt a lot of these things when I joined Google as well. What hit me the most was how much you actually owned and were accountable for. You are expected to find useful work that fulfills the business objectives. It's really cool to be empowered at that level but it can also be overwhelming at times!

Collapse
 
dougatgrafbase profile image
Doug Schwartz

You don't get stock options, you get stock grants. And yes, it's annoying as h3ll that they have their own tools that are poor versions of readily available software. However, that's true at many a large, sw-oriented company (RE: Microsoft).

So you're working at Amazon, but not at AWS? I definitely agree about the double-sided edge of autonomy one gets at Amazon. The team I used to be on gave up on hiring less than senior people as too many floundered when left alone to find their way.

Collapse
 
val_baca profile image
Valentin Baca

The team I used to be on gave up on hiring less than senior people as too many floundered when left alone to find their way.

That speaks to terrible mentoring, which is part of every Senior's job description.

Collapse
 
dougatgrafbase profile image
Doug Schwartz

Nope. As I said, too many, but not all, floundered. I would agree with you if everyone floundered. At some point, every mentor must let their protege on their own.

Collapse
 
bytebodger profile image
Adam Nathaniel Davis

Thank you for the correction on stocks-vs-grants. And no, I don't work directly for an AWS team.

Collapse
 
ronnewcomb profile image
Ron Newcomb

With the exception of the great pay, my experiences at Microsoft were exactly the same.

Why use webpack or anything else that just follows the import statements when we can use our proprietary thingy from circa 2002 that has to have all dependencies manually entered, in order, in massive .ini files.

What kills me is that neither company seem to produce actually good code. I sometimes wonder how they haven't gone under.

Collapse
 
urielbitton profile image
Uriel Bitton

Great article, very interesting.
I have to admit I am curious about the salary part, you mention it almost double and that it's very high. Everything is relative so it really doesn't mean much. But can you tell us if you are talking over 100k, 200k, 300k or more than that (salary alone, no signing bonus)? I think telling us that would really put into context the salary you describe.

Collapse
 
bytebodger profile image
Adam Nathaniel Davis

I should clarify that my total comp is more than double what I was previously making. I have a base salary that is still the highest I've ever had (in the upper $100k-$200k range). But while the salary is very good, it's def not double my previous highest salary. In fact, I had a job last year where I was making $160k. But that job did not come with the (very valuable) stock grants or the (very sizable) signing bonuses.

Collapse
 
urielbitton profile image
Uriel Bitton

Ok I see. That's really great. But I think Amazon makes you pass ridiculously complicated technical tests and interviews. Isn't it like an elitist process to be hired?

Thread Thread
 
bytebodger profile image
Adam Nathaniel Davis

I was actually shocked at how NON-elitist it was. You can read about that here: dev.to/bytebodger/how-i-got-hired-...

That being said: Are some Amazon jobs incredibly elitist to get into?? Yeah. I'm sure they are. Again, Amazon's friggin huge. And many of their teams interview in many different ways.

Thread Thread
 
urielbitton profile image
Uriel Bitton

Very interesting man! Thanks for the discussion

Collapse
 
ravavyr profile image
Ravavyr

Great write up, and the whole time reading it i'm like "This explains why AWS' interfaces and UI/UX are so terrible in so many ways"

Don't get me wrong, AWS is an amazing platform, it can do far too much in far too many ways and the interfaces are often confusing as hell.
And then there's the stupid little things that kill me. Why can't we download an S3 bucket as a zip file....sure they're not "directories"...who cares, you can write code to make em directories for a moment and then zip em up...i've had at least half a dozen clients ask me about this....

So, we wrote our own api connection to S3 that just loops through the files downloads them and then zips em up....but man it's a pain in the butt to deal with.

Just one example of many "simple" things I feel were overlooked because AWS is developer driven.

Collapse
 
bytebodger profile image
Adam Nathaniel Davis

Great points! I too had many frustrations with AWS long before I came to work for Amazon. It's an amazingly-powerful suite of tools. But I always felt that it was surprisingly obtuse/confusing and it often felt like it was missing key features. But now I realize that this is because most of the AWS tools were built to meet internal needs. And those internal needs don't always map to customer requirements when it's exposed as a public service.

Collapse
 
volker_schukai profile image
Volker Schukai

Great insights and thanks for sharing.

I've read about the silent meetings before and find the idea exciting. seems to go right back to Jeff Bezos.

qz.com/work/1422191/why-silent-mee...

Collapse
 
supportic profile image
Supportic • Edited

@bytebodger
Dang that sounds so cool but also intimidating when there is noone who provides you with tasks or does code reviews.
Speaking of which, are you doing pair programming even with backend devs at times or do you have any mentor programs there?
Is it better to learn multiple frameworks (svelte, vue, react...) or to concentrate on one you are good at? In your example it sounds like you have to decide the best outcome and therefore you need the knowledge for it even if you didn't master it yet.

Collapse
 
bytebodger profile image
Adam Nathaniel Davis

There's the occasional screenshare, but nothing I've seen that would qualify as "pair programming" IMHO. As for learning multiple frameworks, when you have the chance to influence the decision-making for a new app (which is rare - in any job), it's always nice to have knowledge of many different languages / frameworks / platforms / etc. But it's not like it's required. If you're on the team and all you know is Angular, they're not gonna expect you to offer a detailed evaluation of Svelte, Vue, React, etc.

Collapse
 
monicafidalgo profile image
The Coding Mermaid 🧜‍♀️

How did the ES5 situation ended? I'm thinking to myself, if I would feel happy working with "old code".. In the past I was in a project using jquery and I felt really sad... stuck.. since I felt that I was going backwards ... How do you feel with that situation?

And about needing help.. since you are the only frontend dev, how do you do when you need help from another person? And about the quality? Who checks your code quality? Is done by a backender?

Sorry for the questions, you got me super curious!

Collapse
 
bytebodger profile image
Adam Nathaniel Davis • Edited

To be clear, it's not as though everything is ES5. It's just on this one side project for which I've been farmed out. And that little drama hasn't been completely resolved yet (although the team lead does seem to agree with me about the need to get off an ES5 standard).

My code is checked often by backend devs. Of course, the "backend" devs aren't usually 1000% backend. Most of them have written frontend code and are at least reasonably familiar with it.

However, when I truly need help on something, it can sometimes be a little tricky trying to get useful input from the other team members who don't typically touch any of the frontend code.

Collapse
 
merri profile image
Vesa Piittinen

Will I get into danger of being an attempted target of recruitment by Amazon if I post a comment here?

Collapse
 
val_baca profile image
Valentin Baca

it's a strange position to not already be targeted lol

Collapse
 
ecyrbe profile image
ecyrbe

So you got an upgraded pay, but got back to work as a senior developper? No Lead role ?

Collapse
 
bytebodger profile image
Adam Nathaniel Davis • Edited

No. No "lead" role. But to be clear, I'm absolutely happy with that. I'm more-than-qualified now to be a "lead" - and I often have been. But typically, I'm a lead because, in many companies, a dev of my experience is almost required to be a lead. But at Amazon, they're perfectly happy with me being "just" a senior dev. And I'm just as happy when I'm "only" coding.

Collapse
 
flashblaze profile image
Neeraj Lagwankar

An extremely well written and thorough article which is I was not expecting honestly. Will be reading your other posts as well.

Collapse
 
pdomingo profile image
Pedro Domingo

But Amazon wrote their own custom version (Of course!) called Quip.

Not really, quip is a product on its own, from Salesforce.

Still, great article!!

Collapse
 
bytebodger profile image
Adam Nathaniel Davis

Ohh... Really? I never realized that it was a Salesforce product. Given the massive proliferation of custom tools, and given that I'd never heard of Quip before, I just thought it was another made-for-Amazon tool.

Thank you for the correction!

Collapse
 
prashant20nov2003 profile image
Prashant Bhardwaj

thanks for sharing

Collapse
 
ghostclonelol2000 profile image
<}:-{~ .A.K.a. DOOM

Amazing?

Collapse
 
adrvnc profile image
Adrian Carter

Thanks for sharing your experience working for a FAANG Company. Your post provided a very unique and balanced perspective.

Collapse
 
ghostclonelol2000 profile image
<}:-{~ .A.K.a. DOOM

I'm assuming it was like this..

tintinhergebrokenearillistrztednovelawardwinnerpabstribbon