Thoughts
☀️🌚

2 years at Amazon

My experience of working at Amazon has been mixed with all kinds(ones that I heard about) of combinations possible in a FAANG company.

  • Small team with no goals
  • Small team with lots of deliverables and goals.
  • Small team with no governance.
  • Small team, Not so good work.
  • Big team, No governance, just make shit happen attitude.
  • Big team, Near to micro-management.
  • Big team, Not-so-significant chatter(a few slices of pie).
  • Big team, Complete pie.
  • Home Team + Away Team contributions.
  • Great boss to not-so-great boss.
  • No vision by leaders to then the complete visibility of work by org leaders.
  • Lavish spending to frugal ways.

Overall, I would say, Amazon is the best company I have worked for so far, even far better than Atlassian. I would choose Amazon over any other company just for its sheer focus on tech. Working at Amazon comes with its unique set of political drama, and mental stress but it is worth getting through them at least once in your career, and as early as possible.

My previous employers i.e. Flipkart and Atlassian, are both tech companies. Flipkart is e-commerce and Atlassian creates software for tech companies but both of these companies do not come close to being called Tech Focused companies.

Always Day 1

My 2 years of working at Amazon went away in a snap. I still remember by Day 1, it was a bit overwhelming as I have been working from home for the last 2 years and going to the office in Bengaluru requires more than just motivation.

Ads

I was full of excitement as I was joining my dream company. This enthusiasm slowly crumbled when I was greeted by the fact that I am the only Frontend engineer in fact the only Software Engineer in my team as the rest of the folks were System Dev Engineers which is one of the verticals of DevOps.

This situation mellowed down as tech companies across the globe started their firing spree as post covid recession fears started to creep in. I was wondering, how would it feel to touch and go your dream company as new hires are more susceptible to such events. Somehow, I survived the 2022 firing wave and tried to adjust myself to the new normal.

I got accustomed to Amazon’s culture of 2 pizza teams, working backward, and most important of them all - the writing at Amazon. I had a chance to create HLD and LLD for the new proposal. Although the project was scrapped later it had gone through multiple peer and senior leadership reviews which helped me improve my writing for the review audience.

While I was meaningfully contributing to the team, I kept my eye on the teams that created products for Amazon customers, unlike my current team which created tools for the internal Amazon team. There is a huge difference between creating value for the company’s customers from creating internal tools.

The tech stack was a bit obsolete and hard to maintain, the tool was using jQuery and python’s Jinja. The sad part was that the org was not ready to invest more in this tool. I tried to revisit the cold storage of my jQuery days and help with the new requirements. In an anarchic way, I did integrate Svelte.js to keep my job exciting while I was doing it.

An opportunity came from an internal opening that required React and React Native experience and cracked it.

Devices

In the new team, I have written software for the devices. It was exciting for me as I was focused on creating React Native apps for “Fire Tv Stick” and this was the first time that I wrote Apps for minimal hardware. As Amazon was moving away from Android to its own Linux based OS, It came with its own set of challenges. We were managing many OS-level bugs at the application layer which meant having to deal with code that was not at all legible(supported by tons of comments describing the stop gaps), redundant and hard to maintain. The OS is new, and so is the build system, there is a collective struggle to keep code from breaking.

For the first 6 months, there were just two folks(including me) working from the India location which meant that we sparsely went to the office, unlike the previous team where we the 2 pizza teams would meet twice a week and go out for lunch at least once. My total working hours got shifted from days hours to early morning and late night calls, and development work during the day.

Devices org culture was more frugal than the Ads org where we would get snacks every Wednesday from an outside vendor and had free snacks and fruits kept in the pantry all day long. We were given a goodies box branded with Amazon Ads which had a BT speaker, spill-proof tumbler, diary, and a BT headset. This was possible as Amazon Ads was a profitable business where as Amazon Devices is still a cash-burning business. Devices org does go out for team lunches and Dinner but in general, keeps the expenses in check.

As the team started to grow and the platform stabilized, we quickly started converting requirements into code. One of the most challenging works I have done to date came in the form of the Network Module. Keeping the spillage under check, I can say that this module included all the corner cases one can imagine while writing apps for a custom OS on a custom hardware.

As there were new requirements and a never-ending bug list in the previous implementation(half-done work), my working hours expanded beyond my control. I would sit at my desk at 8:30 AM and get up only at 9:30 PM and then there would still be work left to do at the end of the day. Post getting up from my desk, I would still be in the work hangover and keep it to myself. My wife would just see me all the time but I was not able to have a meaningful conversation with her. I would sit beside her, or go out for coffee but still be hooked to my pending tasks.

Somehow with a therapy and improving my sleep, I was able to cope with the work. I would look forward to the time of the day when I would hit my bed and sleep. During this phase, I went home to see my parents. To my surprise, all I would do during that 1 week was eat food and sleep. One day when my wife worriedly checked if I was keeping good health. Oh dear, I needed that 1 week snooze.

I wanted to switch to another team(within India timezone) as I liked working for Amazon. But it did not materialize as my skip expressed that I should take on another challenging project for the team which would get me solid reviews(Desperation of promotion hitting the roof). Somehow I convinced my self and whole heartedly started working on this new project. While I was neck deep in writing docs and getting POC done, I interviewed with ServiceNow and they liked me! Wow Wow Wow!

I finally travelled to US(Austin) in a notice period days, and as fate would have it, This trip was impacted by CrowdStrike issue. Moral: I can handle uncertainties.

All the best and bad cases happened during these two years:

  1. No appraisal for the first year. As I did not see neither my knowledge nor my money growing I decided to move teams.
  2. Saved my job by switching the team at the right time before the previous one got fired.
  3. Worked in two time zones as the manager was super polite and kept me on the hook. Made me feel wanted.
  4. Had a chance to develop React native Apps for a custom OS, and the first time for a hardware device.
  5. Again, No appraisal for the second year as the AMZN stock was touching an all-time high. This is where I decided to move out of Amazon.

I would summarize my journey in four areas which keeps a software engineer interested in their works:

Amazon is a serious tech company

  • Moving fast, Iterate quickly is not their mantra, unlike other other silicon valley companies. They build stuff which can last long and are not afraid of taking risks. Once they establish their product in market, they introduce new and familiar products to create a category. Amazon has silently focused on AI, and it is readily used across orgs.
  • DevX is big concern and is taken care by dedicated teams. Amazon uses its internal Build and Deployment pipelines which needs some time to adapt. Once I acclimatize with them, I could see the reasons why they were build. I could create a simple npm package and then deploy the app for a demo with just a few click. I could do the same thing with a few CLI commands.
  • Both engineers and managers spend a lot of their time writing documents. Doc Review is a session where everyone spend 15-20 mins reading a doc which could be about software release mechanism, High level tech design doc, Low level design or a 6 page PR FAQ. These reviews can make or break things for you. Ample amount of time is spent by engineers to compose these docs. These docs later act as an artifacts for the promo package of an individual.
  • Engineers spend dedicated time on Code Reviews and make sure that the quality is met irrespective the fact that the code is written for an internal tool or for a customer facing one. The review you get or give act as an artifacts for the promo package of an individual.

Politics: By product of all the decisions like - Hire, Fire, Appraisal, and Promote

  • People/Teams get fired in case they are not able to get through it.
  • There is always a hunt for a weak performer and as a team mate you don’t realize it until you are silently asked for a peer review. I my team, a person was asked to leave but we could see it coming. But in another case, my previous team was completely dismantled as my manager was not able to keep up with the org asks.
  • Doc review meetings are filled with such emotions where people under different managers are present. These folks are directly or indirectly impacted by delivery of the task, which could be either positive or negative depending on the stakeholder’s org asks.
  • Teams are literally heads-on to each other in getting their software piece as part of product delivery. And if someone is slow, then anyone can take the opportunity to deliver it. It is always up for grabs.
  • According to my manager promotion is a function of opportunities + effort + [Tenure]. I do not agree to the tenure part, as it is slows down the complete function. Even though a person is smart and making a difference but he/she should be of certain tenure to get to the next level. This artificial blocker was one of the main reasons I had to find role outside of Amazon.

Perks

  • Unmatchable salary.
  • Tech gadgets which enable your day-2-day work can easily procured without a hassle.
  • I once remember needing a Window’s Laptop and I could procure it by just going to the IT desk and get over with my work within 1 hour.
  • Some orgs are profitable and go beyond measures to add perks like evening snacks and stacked pantry.
  • You are able to rent a home in BLR easily as owners are aware of the Amazon brand.
  • My parents, and siblings felt proud about it.

Mental healthy

  • No one gives a damn about it. You have to set your own boundaries or you will burn out.
  • I never said NO to anything as I was desperate about my promotion. My skip manager could easily see that, and maybe that is why I was expected to do more than my current role guidelines .