Working at Amazon
tbray.org
tbray.org
One can dwell on small things like which version control does a company use, but ultimately, they are failing to deliver on the "quality of life" thing.
That's quite the opposite. Wouldn't living in a big city mean more choices? Seattle for instance has high paying job options from Microsoft, Google, FB if you decide to leave Amazon.
However, yes having more acceptance of remote work would be great.
https://www.seattletimes.com/business/technology/google-plan...
Well... that's how it was when I worked there; things could have changed a lot in the last five years, perhaps. It sounds like the new Seattle office they're planning to build will be less of a satellite.
I've worked over two years in each of the FB Menlo Park and Seattle offices, and since the move to Seattle, I haven't missed anything from the headquarters (especially once the BBQ place opened).
I guess the OP is only willing to work for one of the big-4?
Here in DC, between private sector software (where I work), public sector and defense, and consulting/contracting, there are tons of options all across the spectrum of job roles and salaries. And these are located all around the area, not just in a single part of the metro.
Seattle rents/homes are, compared to SWE salaries, not that high (Yet), and Microsoft, Facebook, Google, Tableau are all hiring.
I'm a 'deployment engineer' who travels most weeks to different fulfillment centers (warehouses) for work, and when I'm not traveling I'm usually writing code for my team.
Of course, by saying that I reveal the real flaw in my entire remote role: aren't I supposed to be working instead of posting comments on HN?
Working remotely makes you a pain in the ass to interact with.
In that culture, being home 2 days out of 5 is no problem. Being 100% remote (like some of our folks) seems to work out fine (though I will admit being 100% remote as a manager is not as feasible).
We all wear headsets and despite a somewhat "open" office layout, it manages to work out decently (thru proper usage of mute and pausing screen).
Remote work can work, but it takes effort, both on the part of the employees (to be available, have good internet connections, etc) AND the employer (to provide quality tooks to interact with remotes).
The reason this is such a big deal is that when applying to any company, you'll get placed on a team and it's really hard to get enough information on the culture, mission, management, etc. Once you're inside? Tons of information, and a lot of coworkers you can ask. This really reduces the downside risk of a new job.
I know this because I work at Amazon, and switched teams very early. I'm much happier on my second team, and probably would have quit on the first team.
Once I was inside, I found a few teams that sounded cool. At that point, I could easily meet people on those teams, read survey results on the managers, ask around about the new teams, visit the offices at 6-7 PM and see who was still around. This is somewhere between 10-100x the information I could get as an internal employee than as an external applicant. This led me to joining a team where I'm very happy. And if things went really badly -- I could have switched again! (Might look bad if you switch a ton though)
They used to be a tier2.
AFAIK they also have a brutal pager culture where you're awoken in the middle of the night.
Idea being if you're woken up at 4am because of a flaky test or some issue you'll be more inclined to fix it. And if it's a recurring issue, you'll really want to get it sorted or else your life will be hell. It also pushes emphasis on serious testing methodology and the idea that Amazon is a 24/7 business.
It actually makes a fair amount of sense, but it's also brutal and contributes to burnout and attrition. I also think this is starting to change for some teams.
The team I was on (retail-related, not AWS), shifted away from the rolling schedule with your counterparts in India taking over for the other 12 hours in order to push the "promote ownership" BS.
The only problem? Management was constantly pushing for new things to get done on extremely tight deadlines (including "emergency features" that needed to be done and in prod in days when they likely required a week of design efforts to get right, never mind actual dev time) so you have two options:
(1) Develop something stable, with good test coverage and the like, and work to fix it if it breaks... and work 20 hours to get it done.
(2) Shit something out as fast as you can and hope it breaks when someone else is on call (who likely will be too busy triaging SEV3-5's during business hours to even think about spending time fixing the root cause of the SEV1/2, rather than mitigating it and moving on...or, even worse (!) (/s) try to get the actual feature owners to fix it) in order to maintain some semblance of work-life balance.
I'll leave it as an exercise to the reader to guess at which route was generally taken.
For multinational corporations, this has never made sense to me. Why do we insist on relying groggy, "at the bottom of their performance curve" engineers to keep your system up, instead of someone in the middle of their work day?
IMO, if you're waking someone up in the middle of the night, something is horribly wrong, and it's not the issue you woke that person up for.
First, the front-line pager duty is usually hit by an ops eng team first. Each of those teams has an India group and an North America group. If they can't resolve the issue, they page in the developers. Having good Ops Eng guys supporting you is a blessing.
There's also a very strong incentive for teams to write good software and test before deploying when you know damn well that if you're deploying something that doesn't work, you're the guy who will have to deal with it at 3am. Having strong integration and system tests suddenly becomes incredibly important.
Edit: and as dsfyu404ed said, the Ops Eng guys will be smart enough to narrow down where the problem is usually. If you're being paged, it's usually your team's fault.
The other rotation is for one of my dev-team's software, and I'm hardly ever paged - like once or twice a year max. That's how it's supposed to be: by having skin in the game and being directly on the hook for the reliability of what we produce, I'm sure that we automate to a much greater degree than we might otherwise. We have a culture of strong ownership: it's not uncommon to see senior engineers elect to be engaged on all of their team's live issues, even if they aren't on-call themselves.
Some other teams make different trade-offs, and have follow-the-sun rotations or engagements that are more reliant on humans following run-books than automations. There can be a place for that, but it gets old quickly and is not scalable. Good teams will prioritize the work to get out of that above almost anything.
I'm in an on-call rotation (not at AMZ) where I hardly ever get paged, and it's cold comfort. I still have to carry my laptop with me everywhere I go, make sure I have access to the Internet, make sure I don't have one too many at the bar on Saturday night, etc.
That's a fairly normal part of Operations work and has been for decades. Most places (I assume Amazon is one of them) will have a pool of lower-tier admins on deck 24/7 who handle and investigate 99% of the issues that crop up. But for that 1% they can't deal with, then they need to be able to reach someone who CAN deal with it.
It's much cheaper to occasionally call an SME every once in a while when they're needed, than it is to hire another 3 or 4 of them to cover a 24 hour roster.
I've been called out in the middle of the night to fix someone else's mess more times than I can count, so I'm 100% behind Amazon's cultural reasons for sticking to this sort of on-call system as well.
This exact article could have been copy/pasted from any of the other big-tech companies. What makes Amazon different?
At the other companies I've worked for, you were expected to come to the meeting having read the docs sent over email.
It may be expected but large numbers of people don't do it. The 20 min. thing is a bit odd but I can see how it could be a net positive.
> ...but at the end of the day it’s just another high-tech company, nothing surprising.
"If you like being shunt into small teams to work on small projects that take too long and go nowhere, being unable to effect larger changes that actually improve things upon the sprawling mass of wasted effort and reinvented wheels, no long term organization or planning or realistic goals, no semblance of cross-group communication or organization, total enslavement to a disjointed hierarchical mess of disparate initiatives that are ignorant of one another (to say nothing of even caring to help each other), and wasting half your time supporting legacy systems that nobody has the energy or balls to finally put in the dirt, welcome to working at a big tech company."
I might be a little cynical.
Dealbreaker. "On balance" in this industry isn't good enough, and if any company can take a leadership role in promoting diversity, it's one of the Big Four.
Google cache link for the lazy: https://webcache.googleusercontent.com/search?q=cache:70Vxjs...
TL;DR - Working at Amazon AWS is just fine and pretty much what you'd expect.