It’s been over a week since I left Amazon where I’ve worked for over three years. It seems like a right time to write out some thoughts on the journey.
First of all, a disclaimer which should be obvious but one never knows. All thoughts are mine and from personal experience. Amazon is a huge company with a total employee counter closer to a million, including a (couple) hundreds thousands software developers. Others have gone through different experiences since they interacted with different people/teams.
Another disclaimer is that I have worked in the corporate side of the company which is different from warehouses and deliveries. Although one of my teams was in transportation and we provided solutions to the yard (roughly “parking outside warehouses”) associates, I still don’t feel confident to talk for that side.
What is good about Amazon?
There are plenty of positive things I would like to say about the company. Off the bat: I would recommend working there. Not everyone, which is why I have left, but I’m guessing it will suit most people. There is a large number of teams to try out and internal relocation policies enable resettling.
A first-time corporate employee, the most impressive thing about software development at Amazon was its internal knowledge. There are plenty of resources to go through and learn. Documentations, videos, design, discussions, internal “stack overflow”… At times it can be challenging to find what you’re looking for but that’s due to ever changing environment and inherited vast amounts of information making the scaling difficult. In addition to the written information, all teams have access to principal engineers or folks who have been for ages, and these are also great to poke their brains.
Another positive is the AWS availability. One can prototype as they wish and try out new features and services. It often simplified my design processes as I could quickly verify whether something works or not instead of getting through layers of documentation. It also removes the burden of constant thinking about costs. When using AWS on my own it matters whether I’m paying $10 or $200 a month but for work projects that’s a prototype cost (threshold is usually agreed with the manager).
Some might also find beneficial the opportunity of wearing many hats. I certainly did enjoy it and it was a great learning experience. SDEs at Amazon are defined by both their scope of influence and their role. You often have to participate in scope projects/product, design solutions, create a prototype, lead the teams, communicate with stakeholder and customers. I’ve seen many opinions on the internet about having many hats as a software developer but I’m of the opinion that one needs to know what and why they are building before actually doing. Developers aren’t “coding monkeys” and they should have a say in whatever they’re constructing. The questions would be more on the balance but, since I’m talking about my experience about Amazon, that balance can be shifted as required.
Why then have I left?
The decision for leaving wasn’t sudden; it was growing in me for over a year. I came to Amazon as a software developer with a PhD and machine learning (ML) experience. I was promised that I’ll be able to utilize my skills in analytical/ML-related challenging projects. That hasn’t happened. In the first year I was in a team with the Away Team model who doesn’t have their own projects. It’s more a mercenary that helps out others with some self-interest. Long story short: others like to keep interesting bits for themselves. The second team felt like a salvation. More promises came but I somehow believed them even though they were far in the future. Then, the future came and it was disappointing. More promises. I was somehow included in and given more analytical projects but they weren’t challenging; the challenge there was managing other’s work rather than working out solutions myself. Higher hopes were related to my latest org, Economical Technologies aka EconTech, which is “reinforcement learning first” org. I was there for about 3 months and it was kind of cosy with great expectations but… everything is just too slow. Not only in the EconTech but the whole Amazon. Taking all my experiences, low faith in any promise, adjusting with the covid-19 expected actions in the, I did a mental forecast for the next year and it has shown no difference. Given no expected progress, deteriorated team inclusively due to the pandemic, slashing my salary due to super-low number of stocks after the fourth year and simple annoyance of Amazon’s stance on increasing global wealth gap while it’s getting richer, well, it’s time to go.
Before going to next thought a quick explanation on what I mean by writing that Amazon is slow. Maybe the analogy to forest fires will be suitable? On the whole it’s quickly spreading and it’s super destructive, but if you focus on a specific point on the circumference then you’ll see that it’s rather slow. It’s slow but it’s a constant steady slow pace. Always that one meter a minute further from the centre. The thing is that the circle at this point is huge. So adding tiny bit in all directions can feel like an exponential growth. Amazon as the company is super fast. There are plenty of new services and ideas each year, and it’s expanding its tentacles almost everywhere. Super impressive! However, if we focus on individual products/teams, then it’s a different story. Most teams are slow. The phrase “it’s always day 1” to me means that everyone is new to the company and they haven’t figured out how to communicate effectively. And there’s new comers syndrome where everyone wants to impress others on their first day which leads to mutually self-imposed high expectations from ill-read peer-pressure. Many will work long, unproductive and mindless hours only decreasing the quality of the product. It’s slow because this only appears as a half-baked product. Is that bad? Well, only if you want to consume that product, otherwise put it on display and it looks awesome.
What am I going to do now?
I’m taking sabbatical for the next 6+ months. In my case, sabbatical means taking the time to focus on the skills I loved to use, i.e. analytical thinking and artificial intelligence. During this time I’d like to catch up with all the advancements in the machine learning world and how this could apply to the current pandemic world. I’m especially interested in focusing more on the (Deep) Reinforcement Learning and creating environments/agents. There are a few thoughts on how I could pay back to society by creating my own product. Probably more on that will come once I have more clarity on the problem and solutions.
Having written that, I’d like to be clear that I’m not closing myself on the outside. I’m happy to listen about all opportunities but I’ll be extremely picky and will prioritise interesting challenges.
And if that doesn’t pay out?
Except for money I’m not losing anything. I don’t need much in life but I acknowledge that I come from a fortunate position. I have everything that I already wanted and there are plans for those that are missing. Everything goes into emergency funds and retirement. If not now, then when?