It’s official, I’ve left Amazon after a crazy 4 years 2 months 18 days, or 1540 days.
What was my motivation? Why did I leave? And where am I heading?
During this blog post, I’ll reflect on my time at Amazon, in particular how the last year or two have gone, and then describe my desire to transfer to a small, but promising startup.
4 years Amazonian
I joined Amazon right after graduating from the University of Bath. Even though I was quite inexperienced, I still had one year’s experience in the Formula 1 Racing team Williams Martini Racing as part of my degree. With just some experience, I had a leg up on most university candidates in the UK; I was competent with programming but did not know what being a Software Engineer meant, especially for one that worked at the scale of Amazon.
Although I learned from the Williams experience, it was Amazon that made me.
I remember asking my manager when I first joined Amazon for a list of Prime Video API endpoints I could use to see what data we had available. In the way he looked at me, I was obviously naive about the magnitude of Prime Video and that this was not straightforward.
In particular, all the teams I’ve been on at Amazon have all been within an organisation dedicated to Prime Video commerce experiences. This being anything related to subscriptions/purchases of Prime, Channels, and TVOD (purchases and rentals of TV and movies.
The first team I was on owned and maintained microservices related to providing customers with offers for Channels and TVOD. I remember looking through the source code and thinking everything was too overcomplicated for what seemed like basic business rules. And while, many months later, I do still agree with this sentiment, this was a large oversimplification. What matters most was that the state of the system was easy enough to modify to create new business logic to fuel new customer experiences. At the end of the day, that’s what this service was created for. All software must be grounded in the business application. Tech debt and OE (operational excellence) task backlogs are both valuable items, and I do not mean that we should not be reducing tech debt and closing backlog tasks, but always make sure it’s grounded within business (and in turn customer value).
Respect what came before you.
All software needs to be grounded within business value
I learnt how to be oncall, responding to operational concerns and ensuring we have an always available service to customers; I learnt how to scale services from tens of thousands of requests a second to hundreds of thousands of requests a second; I learnt how to not just program something, but achieve consensus on large changes, influencing my team as a whole; I learnt how to design software, working backwards from the customer to create great software systems; I learnt how to maintain a high scale service.
I learnt a lot. But the longer I was in this team, and the more technical skills I learnt, it brought me yearning for more connection to the customer experience. Amazon taught me that we should all be “customer obsessed”, but working as a purely backend engineer maintaining a microservice just didn’t scratch this itch for me. For some people it does; there’s something oddly noble about wanting to just tweak and optimise backend services, and while this does have a positive net return for customers, this wasn’t going to be where I was going to be long term for my career.
Within Amazon, and Prime Video in particular, the idea of a “full stack engineer” does not really exist. The scale of the backend, and coordination required between all the teams, just makes this unfeasible. You’re either a backend engineer making changes to an isolated microservice, or you’re a frontend engineer making changes to the UI with access to the data you have already. Large projects require lots of cross-team coordination to propagate new data to the frontend teams. Amazon has many projects in which this approach works well, but there should also be a subset of teams that each focus on a cross-stack approach to make end-to-end changes effectively.
This is where my second Amazon team came in. My manager informed me that a new team was forming and asked if I would be interested as it aligned with my customer obsessed views. End-to-end, the team would own the concept of “Promotions” within Prime Video. Our team had touched on promotions previously as part of our microservices that owned the offers in general, but this new team would instead own no microservices, just the ownership of the idea of promotions. This sounds a bit vague, but strong single threaded ownership is a real driver within Amazon. This new team would primarily be making changes to other team’s services, from backend and configuration, to frontend, in pursuit of creating the best promotional experiences for our customers.
So I joined this new team. I went from maintaining microservices, to imagining and then creating new customer experiences directly. The team started off with just myself and a couple senior engineers, and coincidentally my existing manager moved to be the manager of this new team. We later grew this team from the 4 of us to 14 strong.
Here I learnt more system design, product design, how to be efficient in cross-team collaboration at scale, and onboarding and mentoring. This was where I went from being an engineer with a microservice, to instead thinking more about business context, and thinking longer term in terms of what is important to have in the team’s technical vision, and learning other more senior skills such as cross-team collaboration and mentoring.
This team is where I got a real customer obsession with the product. I also had good insight into what makes a team tick, and how to make sure we are effective. This team grew from 4 to 14. That scaling up alone caused us to have to frequently adjust how our team functioned, but we did so well, and I’m proud of what we made.
As with everything, at some point, my time at Amazon had to end. The team had grown large enough that it needed to be re-organised within the wider context of Prime Video. The team had a small shrink (with individuals leaving our team to join others within Prime Video), and then pivoted to one business area: Subscription Promotions. This made sense, and gave us more focus, but for me this is where we became too stable.
I say that like stability is a terrible thing; it’s actually exactly where we should be. It’s actually proof that we were successful in how we grew the team and the work we were doing was effective. But for me, part of what I enjoyed about that team had been lost, the growth, the mentoring, and the striving for real innovation.
The work we did became obvious and clear, rather than enjoyable ambiguity. The newer team members learnt most of what I knew and learnt more of their own unique knowledge; any advice and mentoring from me gave diminishing returns. My place within the team was the same, but shrank in applicability. This left me with little choice other than to look elsewhere for alternatives.
COVID, like for everyone, has been tough. We’re practically through the worst of it now in the UK, but that doesn’t mean things are perfect. Particularly bad was the lockdown in London before and after Christmas 2020. Without being able to enjoy life in and out of work, this balance was upset. While this didn’t initially impact my work, it waned more and more. At times when work is not enjoyable, you lean on life outside of work until work life picks up again, but here I was not able to do that. The slowly growing dissatisfaction with my work grew, but without enjoyment outside of work to help with that. While, as I said, we’re mostly out of COVID impact in the UK, this has left a long lasting residual impact on how I function at Amazon. I could just switch teams inside Amazon and try something new elsewhere, but the pressures of COVID on my life have left a salty feeling about working at Amazon.
Amazon turned me from a Programmer to a Software Engineer
I do not regret my time at Amazon one bit. I fully recommend Amazon, and particularly Prime Video to anyone. You will be surrounded by some of the best and brightest people, you will learn incredible amounts, and at times you feel so empowered that you can achieve anything. There are still some corporate politics to deal with. However, in the vast majority of my time here, it’s been an overwhelmingly positive experience for me. In some ways I wish I could have stayed.
Although I had the option of staying at Amazon, the bitter taste left by COVID and my desire to focus on a new product and build a team led me to leave.
The Next Venture!
Well, working for a large enterprise that has had millions of people passing through its employment, is one experience, I decided to try something completely new; working for a small 9 person startup.
77% of employees in the London Amazon offices joined after me. I’ve learnt so many incredible skills over the years, that I wanted to work somewhere else where I can apply this and cause direct change not only to my team but to the entire company.
The new company I’m joining is Titan Academy. In a slight return to my years at Williams, this scrappy startup is building revolutionary tools aimed at teaching gamers how to coach themselves, starting with racing games in their first brand Track Titan. They launched their initial product earlier in 2021, have a stable but growing user base, and are looking at the next steps to grow this into a great company. eSports in particular has grown huge amounts during the last few years or so, COVID being an accelerator to an already existing trend. This company takes user game telemetry data and shows insights, and actionable changes the user can do to improve their performance. Right now it’s in early pre-seed stages, but has a great platform to be built on top of.
I’m looking forward to applying all the skills I have learnt over the years to try to make this company the success I think it can be, and I hope to have many new and interesting experiences on the way.
Now is my time to start this new adventure, and I’m looking forward to seeing what I can achieve next.