
Amazon to Uber: From the lens of a software engineer - elixirofhope
https://medium.com/@divijvaidya/amazon-to-uber-from-the-lens-of-a-software-engineer-e5bd1c38caba
======
aminadude
I’m at Amazon now. None of the teams I’ve been on have had an absurd on call
burden but I do know of teams that do (not in my org) and therefore struggle
with high turnover (people don’t really leave Amazon burn just switch teams in
my experience).

Overall, it’s made me better leaps and bound as an engineer prior to when I
joined. Over the years when I’ve picked up a book on scalable systems or
design, I easily identify the patterns of failure or whatever topics mentioned
because I’ve had to deal with them on the job.

Amazon isn’t for everyone. My stress and anxiety level is generally pretty
high.

I work with really really really bright people (compared to my previous
companies) but being extremely intelligent doesn’t speak to your character. As
a matter of fact, really intelligent people with bad character are 100x worse
than Todd from my previous company who did very little work and was merely
collecting salary.

If you have an opportunity to work for Amazon, at least as an SDE I say
definitely go for it. But, if you want a relaxed 8-5 job, it may not be the
place for you. The teams I’ve been on are full of overachievers but too many
of those people in one room isn’t always a good thing.

~~~
xxxpupugo
> My stress and anxiety level is generally pretty high

Yep. Amazon is not subtle and demands its ROI on you to be HIGH.

~~~
theturtletalks
More people need to realize that a company is employing you so you can out
earn your salary. If you think you are making more than you make for the
company, you’re expendable.

~~~
xxxpupugo
Well, there is nothing I would dispute about this claim, this is a
capitalistic world after all.

But as regards to the comment about being 'expendable', I am certain to get a
job out side of Amazon pretty easily depending on my own skill. In other
words, this is a market that both companies and employees can play.

Amazon's strategy isn't focused on retention of long term employees, then it
is its own choice, there is always a trade-off.

~~~
guitarbill
It's also a short-sighted approach. What can end up happening is hiring a lot
of college grads to fill head count and get stuff done. And while they try
their best, they lack experience or aren't mentored/trained because of a
shortage of senior engineers.

So now your product needs a bigger team to handle it and the ops load
increases or feature work slows. So now your senior engineers get frustrated
and leave/switch teams. So then you hire more college grads and throw them
into the meat grinder... meanwhile your products suffer [0] and the
competition is catching up.

BTW, checking that sub-reddit is a good idea before joining an established
team.

[0]
[https://www.reddit.com/r/aws/search?q=sucks&restrict_sr=on](https://www.reddit.com/r/aws/search?q=sucks&restrict_sr=on)

------
random42
I like the post, but would like the OP to do a recap after working 12/18
months or 2-3 teams in Uber. 1 month is too short of a time to have meaningful
outlook of the current situation.

~~~
jumbopapa
How often do you typically switch teams at a Big N company? I recently
graduated and started working at a large engineering company and it seems that
most of my team members were hired on to my team and have stayed there since.

~~~
random42
It depends, In my last big company (>2000 tech + product), engineers would
switch teams every 15 to 18 months on average. Ofcourse there were more
desirable part of the organization, where switches would be much less.

------
googlemike
My Amazon interview was the most ridiculous experience I have ever had
interviewing anywhere. That round I got offers from Facebook (insta), Google
(team matching said maps), Uber (eats) and a few others but not Amazon. At
Amazon, I pulled out and declined with an email to my recruiter from the lobby
of the building at the end of the day. My interviewers were broken up into two
categories: Engineers who didn't want to be there, and terrible mid level
managers that quizzed me on memorization of their company competencies. One of
the managers was clearly reading his questions from a list, and did not care
at all about what I had to say. That, combined with the sad office (manager's
share a tiny office, everyone else sits in grey cubicles without sunlight),
and no food or snacks (it matters) really broke it for me.

All that aside (I am willing to chalk it up to luck, god knows my first
(failed) round at trying to get into Google went terribly), Amazon clearly
does not compete by hiring the best engineers. Rather, they compete by
throwing money at the problem and undercutting everyone else, getting by with
mediocre engineering.

~~~
austincheney
It could be worse.

I recently had an interview with a 5 day code assignment to build services,
perform data transform against several competing requirements, and some other
things. I provided lots of code comments, interactive documentation, test data
samples, and a detailed readme file about as long as the code to explain how I
went about things and how to reproduce my results

The feedback was only that the code was disorganized because all 750 lines
were in one file and there was no test automation. I really got the impression
they didn’t even look at the code or execute it to see if I achieved success
or followed instructions. Felt like they were just wasting my time.

All my big GitHub projects are on my resume. They could have given me nearly
identical feedback by looking over my GitHub projects and not waste either of
our time with this ridiculous assignment.

On the upside I view this as a somewhat positive thing because if their
developers can’t read code then I probably be miserable there.

~~~
onion2k
_The feedback was only that the code was disorganized because all 750 lines
were in one file and there was no test automation._

These days a coding test has a pretty standard minimum set of features to get
a pass, and they include reasonably well organized code and having some tests.
If you're working alone those are less important but as soon as you join a
team they're critical.

 _I really got the impression they didn’t even look at the code or execute it
to see if I achieved success or followed instructions._

When I do technical interviews I assume the candidates code works (and it
often doesn't, but that's not the point). I review it first, then I see if it
meets the acceptance criteria. If your code isn't the sort of code that would
be acceptable in the organization it doesn't matter if it works.

I would rather reject a candidate on quality than failing the test. Also,
occasionally, if the candidate has made an obvious error that stops their code
working but it's clear they write _great_ code I might still recommend making
them an offer.

~~~
was_boring
I don't want to be argumentative at all. I find what passes at one company
doesn't at another and it's generally an interpretation of style that can be
conformed to. For example, I am of the leaning that one line should do one
thing only, and should be explicit -- which is different then many modern
practices. Another example is array manipulation which, depending on the
operation modifies in place and I reassign for clarity.

Does that make me a bad engineer? No. It makes me experienced. If any of those
things aren't wanted at a future employer I can change to match the style.

To reject based upon that when the style isn't defined by tooling is weeding
out great people who may not confirm but have the ability to.

~~~
austhrow743
As long as they weed out a high percentage of not very good people, companies
accept weeding out some great people as a cost worth paying.

~~~
was_boring
Very true. I have been working at startups for a while as a hiring manager and
one of the skill sets I've had to develop is finding good people who have been
passed on by FAANG or who come from a non traditional background and never
would make it past there filters. Simply because we can't afford the salaries,
but still pay six figures to non bay area employees. It's been interesting
watching the "I should work for a startup" to "I should work for FAANG" over
the past decade.

~~~
mooreds
> It's been interesting watching the "I should work for a startup" to "I
> should work for FAANG" over the past decade.

I would be interested in your thoughts on this. Is it because of salary,
opportunity or security?

I am outside the Bay area.

~~~
was_boring
I think it's do to two reasons: 1) salary at FAANG can be 2-3x what a startup
can offer, granted that's in the Bay Area; and 2) there's been more then a few
examples of equity not being structured in a way that is beneficial to early
employees. Sam Altman even has a blog post that says startup equity needs a
revamp.

------
jxramos
> If you identify an engineering problem that you want to tackle and it would
> benefit Uber, the management is very likely to allow you to spend time in
> solving that problem even if that problem scope if outside the team’s
> ownership.

The above sounds very refreshing and open minded.

------
sriram_iyengar
Good post from Divij. I worked at amazon a decade back and my 2 biggest
learning there were from (1) building large scale infrastructure components
(2) DevOps is an inherent responsibility of Dev.

------
codeisawesome
Remarkably well enunciated into an arguably mysterious world for devs on the
“outside”.

------
sgt101
How do you manage devops systems over long term? What happens when the team
get sick of their pagers and leave?

~~~
wikibob
Build a culture of fixing the alerts and pages. Having the people who write
the software answer the pages builds in a closed feedback loop, incentivizing
reducing the operational burden.

If an external Ops group takes the burden of responding to pages, there is no
feedback loop nor incentive for those writing the software to reduce the
burden!

~~~
m0zg
>> Having the people who write the software answer the pages builds

This is the Stockholm syndrome you often see in ex-AMZN people. Having devs
burn themselves out within 2 years in insane oncall rotations is just not very
smart. Nor is it the only way to do it.

>> there is no feedback loop

Not if "external Ops group" can refuse to support your shit if it sucks.
That's how Google works: your service has to pass PRR (production readiness
review) by SRE before SREs will agree to support it. If your service begins to
deteriorate over time, SREs can dump it right back in your lap to fix, and
require another PRR before they'll support it again.

And you don't hand the service over to SREs, there are still devs oncall, but
the load is much ligher, and dare I say, SREs are much better at running
infrastructure (and building tools to help run it reliably) because it's their
job. They're also in multiple geographic zones, so at night an SRE in e.g.
Zurich can take care of simple issues (or escalate to a SWE if it's something
gnarly).

And I don't know how it is now, but SWEs used to get extra pay while they are
oncall.

~~~
muttled
When they dump it back in your lap, does that mean you're now on-call for your
own service again? I was just curious how that looks, do you get an email
saying you're back on the hook for a service because it's broken too many
times?

------
jaiahshs
Regarding the Amazon social side (which often gets a bad rep), in our org we
have office happy hours twice a week with beer, occasional games and good
food. People are friendly, get to know each other across teams and the culture
is fairly relaxed. No team ceremonies or implied obligations.

~~~
vkou
The problem with workplace bonding over drug use is that it either causes
people with substance abuse problems to either self-select out of
participating, or abusing substances, or being stressed out by them being
consumed in the workplace.

I say this, as a drinker, who does not have a substance problem.

It's one thing if the team occasionally goes out for an activity, which
culminates in drinks. It's another thing when the thing people do every Friday
afternoon is drink.

~~~
jumbopapa
I'll drink beer, but it's not my favorite activity to just go do. I hate how
so many of today's social functions revolve around alcohol.

------
catacombs
> No matter how I try to justify that this difference doesn’t matter in the
> grand scheme of things, the truth is that, having the option to eat lunch at
> office & availability of on-demand snacks throughout the day has boosted my
> productivity.

Must be nice. My company hasn't provided free breakfast, lunch or dinner in
years.

~~~
jandeboevrie
Why don't you make bread (lunch) in the morning and take it with you? Just
like 99% of other people in the developed world.

~~~
navigatesol
Right? Some of the comments here make it seem like we're on different planets.
"Can't work without on-demand snacks!" Silicon Valley has definitely "branded"
their employment, and millennial are buying in.

Meanwhile, young people are burning themselves out at unprecedented rates.

~~~
catacombs
> Meanwhile, young people are burning themselves out at unprecedented rates.

Indeed. And they aren't making enough money to buy a home. Then, people,
mostly boomers, will wonder, "Oh, gee. When I was their age, I could afford
college, land a high-paying job right after school and buy my first house
before I was 25. How are they not doing the same?"

