DEV Community

Cover image for What It Was Like To Code For Amazon (Conclusion)
Adam Nathaniel Davis
Adam Nathaniel Davis

Posted on • Edited on

What It Was Like To Code For Amazon (Conclusion)

(You can read Part 1 of this article here: https://dev.to/bytebodger/what-it-was-like-to-code-for-amazon-part-1-5034. And Part 2 here: https://dev.to/bytebodger/what-it-was-like-to-code-for-amazon-part-2-5aon)

If you've read any of the first two articles from this series, you already know that my Amazon experience was... suboptimal. But the first thing I have to acknowledge is that I don't actually know what it's like to code for Amazon in general. In fact, even if you've coded for Amazon in the past, or even if you're coding for them now, you don't know what it's like to code for them in general. The company's far too big and there are far too many devs strewn across myriad teams and locations for any single person to say, with authority, exactly what the overall dev experience is like.

In a company that large, all you can really do is assess your own experience. Some people may have had experiences similar to mine - or worse, even. But I'm also certain that some Amazon coders are perfectly happy there. It all depends, to some extent, on exactly which team/group you worked within, who exactly you worked for/with, and of course, what you brought to the experience.

But while I can't paint a broad, definitive picture of exactly what it's like for anyone, in any Amazon team/group, I did see enough to draw some curious conclusions.


Image description

Lip Service To "Principles"

Amazon constantly touts their "Leadership Principles". They ask you about them when you're interviewing. They talk about them in company meetings. On the surface, at least, they pour a lot of effort into these principles. (If you're curious, you can see them all here: https://www.amazon.jobs/content/en/our-workplace/leadership-principles)

Unfortunately, a lot of this emphasis is empty talk. (I know, I know. A megacorporation that doesn't always live up to its own stated ideals. SHOCKING!!!) I could go through them one-by-one and nitpick them based upon my short tenure there. And my perspective is, undoubtedly, biased by my own negative experiences and my own (admittedly brief) tenure. But in my experience, the most glaring example of a completely-failed "principle" is this:

Have Backbone; Disagree and Commit
Leaders are obligated to respectfully challenge decisions when they disagree, even when doing so is uncomfortable or exhausting. Leaders have conviction and are tenacious. They do not compromise for the sake of social cohesion. Once a decision is determined, they commit wholly.


I saw so many examples that made this principle an outright joke that I can't even list them all here. And I'm not just talking about my experience. I'm talking about things I witnessed in other areas of the organization, and things I was told directly by other employees.

I witnessed so many instances where people were simply afraid to speak up. I sat in meetings where no one but the "talking head" dared utter any kind of objection. And when they did bother to raise concerns, I also saw where those concerns were bulldozed because there was no alternative that pleased management.


Image description

A Telling Observation

When I wrote this article about working at Amazon (https://dev.to/bytebodger/what-its-like-to-code-for-amazon-4nke) a senior dev from an entirely different part of the company reached out to me on Slack. He praised the article, thanked me for writing it, and said he was glad to see that I was getting along nicely.

I thanked him for his feedback. But I also told him that, in the time since I wrote the article, I'd run into some very difficult situations. (I didn't deluge him with the full, insanely-long story of everything that had happened. I just gave him the high-level bullet points.) His response was very telling.

He was Australian. He told me that, in his previous job, there were many times when the dev team would be discussing some particular bit of an application that had already been built. And frequently they would find themselves saying to each other, "Yeah... this is all a bit crap, isn't it?"

But he also told me that, when he came onboard at Amazon, he had very similar problems. Because, for a good bit after he was hired, no one wanted to hear any kinda dissenting opinions - even if they were only "dissenting" as a means to talk out the problem and to (hopefully) come to a better solution.

His specific advice was to lay low for a good while. Don't say much. Just kinda "go along" with whatever was being dictated to you. And then, only after you've been onboard for a good bit, maybe possibly speak up about a few targeted things.

To be clear, I get this. I'd be the first one to tell you that no one wants the Brand New Guy to show up, on Day 1, and immediately tell everyone that they've been doing crappy work. And that the legacy app is shite. And that all of their current practices should be thrown out the window.

But there's a difference between being an arrogant know-it-all versus just being... a humble - but confident - member of the team. Sometimes some of the best suggestions come from the new guys. Because everyone else has grown accustomed to everything as "the way it's always been done". As long as the New Guy isn't a cocky jerk, there's a lot of value in seeing how someone views the situation with a fresh set of eyes.

That's what Have Backbone; Disagree and Commit is supposed to be about. If you see something that seems "off"... say something. Talk about it with your colleagues. Or your manager. Or your stakeholders.

Sometimes, when you raise those concerns, you'll be "voted down". And that's fine. Other times, you may find that people actually agree with you - but there are other practical reasons why it will continue to be done that way. And again - that's fine. But it's far healthier to at least have those conversations, rather than being afraid that you'll be labeled as a malcontent merely because you raised reasonable concerns.


Image description

A Big Brother Mentality

Here's something that I encountered multiple times at Amazon. And I found it to be a bit... disturbing.

I'd be chatting with someone on Slack about something that seemed "off". Maybe it was about a project. Or about a particular person. Or even about the company in general. And in these scenarios, with multiple different people, the Slack conversation would end when the other person typed this:

Maybe we should delete this Slack conversation?


Now to be clear, we weren't talking about bombing the CEO's house. We weren't calling anyone an asshole. In fact, we weren't discussing anything in those Slack threads that I woulda been afraid to say to anyone else, directly to their face. We were just discussing problems that we'd run into, and potentially how to fix them.

And yet, on numerous occasions, my Slack counterpart would close the conversation by suggesting that we delete the thread. Think about that... Honestly, every time I encountered it, it felt rather chilling.


Image description

Blatant Backstabbing

After coding for a quarter century, I've lost track of the number of coworkers who simply didn't like me. Work at enough companies, with enough colleagues, and it's inevitable that some people simply won't "take" to you. But that's not what I'm talking about here.

Despite all the interpersonal conflicts I've navigated throughout my career, there is only one company where I've experienced open backstabbing. And, yes, that company was Amazon.

When I say "backstabbing", I'm not referring to someone saying that I'm a jerk (take a number - it's a long line). Nor am I referring to someone badmouthing my code, or my deliverables, or anything about my work effort. I'm specifically talking about someone saying, to my face, that I'm doing great work. Then turning around, whenever a project suffers from any kinda setback, and telling everyone else that I've screwed everything up.

Throughout my career I've had people tell me, to my face, that they thought I really screwed something up. To be honest, once you get past the raw emotions of those moments, sometimes those interactions can end on an extremely positive note. But I've never been anywhere else where someone told me one (extremely supportive) thing to my face, and then told someone else (in senior management) the exact opposite when I wasn't there.


Image description

Frontend Myopia

The vast majority of Amazon's software engineers specialize in backend development. (Specifically, Java.) And there's nothing wrong with that. But the company's overall view on frontend development seems to be mired in 2015.

As a frequent Amazon customer, I'd noticed long before I ever worked there, that their UX was pretty, well... lacking. Now I know why.

To be fair, they successfully drive billions in revenue through their website. So I'm not gonna claim that their frontend interfaces are somehow "broken". And whenever you're operating a site that runs on that kinda epic scale, there are bound to be many considerations that simply don't apply to 99.99% of the other websites that are out there.

I'll also acknowledge that there are some teams in Amazon doing frontend work that utilizes modern standards. But it's kinda disturbing to see how many teams are oblivious to modern frontend capabilities. Heck, I even witnessed teams that were hostile toward any kinda modern frontend approaches.

In Amazon's internal knowledgebase, some lifelong Java coder wrote a long screed talking about how frontend apps (and modern frameworks - like React) were simply unmanageable and unscalable. It's quite a long read. Shortly after I came onboard, I was asking one of our Java devs why we were doing things a certain way. His response was... to send me that internal article.

Nevermind the fact that the article in question was written in 2017. And nevermind the fact that, on the article itself, there's long been a disclaimer, right at the top of the article, stating that most of its contentions are now in doubt. None of that mattered. All that mattered was that JS frameworks were "bad" (mmmkay...) and old-skool client-server architecture was "good".


Image description

A Silver Lining

My last observation comes with a bit of a silver lining (for me, at least). We all know that Amazon is just one of many Big Tech companies that's jettisoned scores of people in the last six months. While I understand that layoffs are, in a macro sense, a sad reality of corporate life, Amazon did everything they could to ensure that their internal and external communications around the matter were absolutely clumsy and, quite frankly, unprofessional. I'm not gonna go through all of that in detail here. I'm sure you've read the articles in the tech/business news.

Last month, a new bit of ugliness came from Andy Jassy. Effective May 1st, they're requiring everyone to be in the office at least three days per week. I'm sure that, in the final analysis, there will be some people who manage to get excused from this edict. But every indication so far is that there will be few exceptions.

In a sick sort of way, this actually made me feel kinda... relieved. You see, I live in Florida. I'm a remote worker. When I was hired, my offer specifically stated that I would be a remote worker. There were others on my team working under the same pretenses. And even if all the crap of the last year hadn't happened to me, and even if I was never laid off in January, I'd now be stressed and infuriated by the whole situation.

So I guess that, in the final analysis, the last year of "hell" wasn't gonna turn out any better for me, even if I never had any problems on my team and even if I was never booted under any of their layoffs. As odd as it sounds, that actually makes me feel somewhat "better" about the whole experience.

I'm not gonna make any attempt to sugarcoat this: What Amazon's doing now is an outright betrayal to the scores of people they hired over the last couple of years with the express understanding that they would be remote. It's also a betrayal to so many of their Seattle workers who made significant life changes (like... moving away from Seattle to other parts of the country) because they were given repeated assurances that they would not be forced to come back to the office.


Image description

Moving On...

I've put 112 articles on this site (so far). I wrote all of the others to, hopefully, spread knowledge, learn from the Dev.to community, and foster discussion. This little series of my-life-at-Amazon articles was the first time that I ever wrote anything here that was not for those purposes. I wrote these last three articles for me. As I stated in Part 1, this has basically been my self-administered therapy - a way for me to yell into the void about crap that I experienced over the last year.

That being said, this (not so) little tale is not a tragedy. Far from it. I'm currently evaluating one very-solid offer from a potential employer. I expect to receive a few other solid offers in the next coupla days.

The simple fact is that, regardless of where I'm working next month, and regardless of what anyone on here thinks about my Amazon tale - I'll be fine. Beyond fine, in fact.

As you've no-doubt surmised from these three articles, there are absolutely some aspects of my Amazon experience that still feel crappy as hell. And there was a period, mostly from November 2022 through January 2023, that all of this took a serious toll on my mental and physical health.

But you know what? That passes. Life goes on. And I'll be pissing people off at some new company before you know it.

Take care!

Top comments (10)

Collapse
 
panditapan profile image
Pandita

I send you hugs, I've been in backstabbing environments and it's not fun. What your ex-colleague recommended is what I would've recommended as well. Just be dull, boring and make your quirks the most whatever thing ever, for example: be a foodie, or like hiking, or something minor like that. (Hookah is not boring, sadly ;w;)

Having said that, I sometimes try to measure other people by saying one small thing (that is not harmful but is a small drop of truth) to see their reaction and see if anything happens in the environment. People say they hate gossip but they sure thrive in it.

I'd also recommend keeping your ideas to yourself. Don't tell others (unless it's someone important) because I'm pretty sure that your manager was receiving a ton of gossip from your "friends" about what you thought about him and if you gave your "friends" any good ideas, they probably used it to improve their image. That's why your manager was never going to like any of your work.

But anyway, good luck on your new job! I know it's really hard to not feel the ripples of a toxic job, but I hope that you're able to persevere and see this experience as a small little interesting blip in your life and continue to be who you are :3

Collapse
 
bytebodger profile image
Adam Nathaniel Davis

Sincere thanks for your awesome feedback! It contains many cogent points. FWIW, I've actually gotten much better over the last coupla decades at knowing when to speak up and when to just shut my mouth. But sometimes it's still difficult to read the political notes in the room.

Three years ago I wrote this article: dev.to/bytebodger/dev-is-not-const... The synopsis is that people try to treat devs like construction workers. Just hand them the blueprints and tell them to build the thing that you want. But even when someone's crafted finely-detailed specs, they're still trying to solve a problem. And typically, you're gonna get a much crappier deliverable from the developer if you only want to throw specs at him - without giving him any insight into the problem that you're trying to solve.

At this stage of my career, I'm making more money than nearly anyone I know. And of course, that's great! But it can also be difficult when you're this highly-paid, extremely-experienced, subject matter expert - but no one wants to hear the slightest objection from you when you see that something they've requested is not going to solve their problem.

Imagine that you're a highly-paid, sought-after brain surgeon. And you've just come onboard at a brand new hospital. In your first surgical procedure, you see that another surgeon is advocating for something that will hurt the patient. Should you shut up? Should you sit idly by and watch as the other surgeon endangers the patient's health?

All that being said, I'm definitely not arguing against you. Or arguing with you at all. You're right. But it can still be difficult to figure out when to keep your mouth shut as you see ridiculous things happening around you.

<sigh>...

Collapse
 
panditapan profile image
Pandita

ah no, just because I recommended those actions doesn't mean I agree with them! I'm incredibly honest, blunt and a blabbermouth, so I tend to overshare and point things out... which is why I have so many issues at work, no matter how much advice I give about not doing what I do πŸ˜‚

But I do try to keep a low profile, especially since I'm a consultant/contractor DX It's better to be agreeable than rebellious... I am very much expendable.

I've been trying to find ways in saying things more diplomatically but it's definitely a challenge, in the end, we're all just humans and that makes everything very hard. I do wish we were able to say things and be taken seriously rather than be considered an enemy. In the end we're trying to make things better and we have good intentions but it doesn't seem to come across that way.

Also, I didn't feel like you were arguing with me! More like, giving more depth to the conversation :3

Collapse
 
tyagiankit128 profile image
Ankit Tyagi

Looks like I will also have to write something similar to your writing once I am out of this rat hole.

Collapse
 
miketalbot profile image
Mike Talbot ⭐

Having been a long time reader of yours and share a fair number of your opinions, I'm not surprised that Amazon wasn't the place for you - I can't quite see you as a small cog in a vast machine. I think those machines say that they want "challenge and debate" because at the top there are people who expect that of themselves, but it doesnt translate through many layers of middle management - after a couple of levels it's just words.

I've never gone anywhere near an organisation the size of Amazon as an employer, but even growing medium sized businesses can lose their purpose and start festering ass-covering and political games. I've had a fair share of waiting for the sword of Damocles to fall (usually my own fault, I never was good at choosing a hill to die on) and I empathise with those physical and mental challenges, they are shockingly real when they happen and, for me at least, unexpected in intensity.

Of course you're going to be fine; pragmatic, eloquent developers that care about the "problem to solve" are like gold dust to organisations that know how to use them. We both know this; I'm excited to hear what happens next.

Being a Brit, I was reminded of Kipling's famous poem "If" when I was in a similar boat and perhaps I'll leave a couple of the lines here that resonated most with me:

If you can keep your head when all about you
Are losing theirs and blaming it on you.
If you can trust yourself, when all men doubt you;
But make allowance for their doubting too.

And perhaps most importantly:

If you can meet with Triumph and Disaster,
And treat those two impostors just the same.

Good luck with the job hunt, I'm selfishly glad that you've had time to write again.

Collapse
 
bytebodger profile image
Adam Nathaniel Davis

Of course, I agree with everything you've said. (And wonderful Kipling excerpt!)

If I'm being really honest with myself, I had my own doubts, even from the day that they first contacted me for an interview. But I really wanted it to work. Why? Well, for two very selfish reasons.

  1. The money's phenomenal. There's just no way around it. Of course, I haven't been "poorly" compensated in many years. But my total comp at Amazon represented nearly a 70% increase from my previous gig. And while it's almost never a good idea to chase money for money's sake, sometimes the pile of cash is just so big that it's nearly impossible to say no.

  2. At this point in my career, there are very few entries I could place on my resume that would "mean" anything. Like, if I now moved on to, say, Citibank, no one's gonna look at my resume and say, "Oooooh, you worked at Citibank." But there are a lotta people out there who'd give you more credence in your next job search if you were coming from a FAANG company.

Nevertheless... it all ended pretty much exactly the way it probably shoulda ended. LOL.

Thanks for your thoughtful reply!

Collapse
 
mmayboy_ profile image
O ji nwayo e je • Edited

Nevermind the fact that the article in question was written in 2017. And nevermind the fact that, on the article itself, there's long been a disclaimer, right at the top of the article, stating that most of its contentions are now in doubt. None of that mattered. All that mattered was that JS frameworks were "bad" (mmmkay...) and old-skool client-server architecture was "good"

This paragraph was a comic relief for me amidst your woes. Did you need a soothsayer to reveal it to you? I mean, you of all people should know that, considering your experience wrangling amazon build pipelines, bundling stuff etc. It's incredibly convoluted and should be done away with, as the mistake it is.

If you are so inclined toward fidelity of SPAs, get htmx/hotwire or similar libraries

Collapse
 
corners2wall profile image
Corners 2 Wall

Great work! You're doing a fantastic job. Keep up the good work and don't be afraid to take risks and try new things. You have the skills and knowledge to achieve your goals, so stay motivated and don't give up. You can do it! It's natural to feel down, but don't let it get to you! You can try positive thinking, writing down your worries, or talking to someone you trust who can help. Just remember, in the big picture, things will get better. Stay strong, and soon you'll be happy again.
Live each day with intention. Try new things, take risks, and don't be afraid of failure. Make sure to enjoy the small moments, practice being present in each one, and appreciate what you have. Stay connected to the people you care about and share your stories. Spend time in nature and allow yourself to be creative. Most of all, be kind to yourself and find joy in the journey.Working on yourself is an essential part of self-improvement. It means taking time to reflect on yourself and identify weak areas needing improvement. From there, you can set goals, develop strategies and create action plans to improve these areas. As you work and make progress, you can feel more confident and find increased success in all areas of your life.

Collapse
 
shubhamb profile image
Shubham_Baghel

It’s inspiring and motivational @bytebodger

Collapse
 
bytebodger profile image
Adam Nathaniel Davis

Thank you!