This post is about some of the good parts of working at Amazon as a Developer. Believe it or not, I have been working at Amazon for almost 6 months. I work with massive Java micro-services and XML configuration everyday. There are so many systems that it takes years to figure out what is going on.
The top thing I am enjoying is mentorship. My coworkers, managers and lead engineers are experienced and very competent. They have worked on massive systems at Amazon for 5-10 years and have a host of experience. I like being one of the dummer people in the room even if its inevitably temporary.
At my last job we studied and taught best practices, but we had a hard time actually, you know, practicing them. At Amazon we actually do CI/CD. We have integration and E2E tests. Our team practices supports our own services in production. This is the experience I wanted to have before I got pulled into teaching courses and best practices.
My team builds the core platform for all sales on Alexa. We have customers all over the world in a number of languages. It is not like the 9 months I spent working on a product that was canceled after a merger.
More interesting problems
Just today I was looking into some latency issues after a Product Owner did some introductory research. We pulled up the metrics and started analyzing p50 vs p99 vs p99.9, etc. Do the latency spikes correspond with deployments? Do they correspond with GC? What does the profiler say is happening during this API call?
What is the same?
The great things that I have enjoyed previously in the tech industry are pretty much the same. My hours have not changed. My flexibility is the same. The general culture is pretty much the same.
What is worse?
Amazon is immense and it is impossible to know everything that is going on. There are often 4 or more slightly different solutions to a problem. How do you know which one is useful? Well, you have to rely on context. The wiki is comparable to a certain cable company I used to work for. Each team makes their own docs and their own documentation standards.