I am reflecting on my work at Amazon. I can see that my peers and I have contributed a lot of code, but we never had legit senior SDE 3s to learn from or to guide us. Most of our work is geared towards making customers happy and doing crazy amount of processes instead of following proper engineering best practices. In fact, we only have 1 SDE 3 in our org. Others have either left or transitioned into SDMs. But I never see them code reviewing or doing proper detailed reviews on the designs. In fact, all they do is aggressively point out irrelevant problems but they never have solutions. So how can junior engineers learn anything? I've noticed while interviewing at other companies, that when I choose a certain design patterns or approaches to solve problems, almost every senior engineer frowns upon these patterns and points technical holes in them. I've never had these kinds of discussions with anyone in Amazon. I feel people just don't care as long as it achieves the business goals. I see people randomly approving CRs and people merging in a bunch of code and breaking stuff all the time... So I don't understand how people say that one of the pros of working at Amazon is the amount of knowledge and things you can learn. What's the point of learning if you aren't learning properly? Is this an Amazon thing? A team/org issue? Or is it like this everywhere else?
same feeling at here in my team
same here. I even doubt if it is possible to learn good engineering practice at any company. Can we learn that from facebook or airbnb or robinhood or uber/lyft? Probably Google is the only way out?
Seems you've attracted the circle jerk of 'Amazon is terrible'. I've grown immensely at Amazon and for good reason, I sought out projects that accelerated my learning - when this stopped? I moved to AWS from CDO. I had a second opportunity to work on a green field project. Successfully launched that, learned more again (a large portion came from my co-workers), and, inevitably left Amazon to tackle a different, new problem. This is where I would draw the line for what defines a senior engineer. It sounds like your organization has prime opportunity for someone to take the reins and bring structure into the fold. It's incredibly simple to observe and complain, but, taking action and driving (also, striving) better practices into your teams? It's difficult, but, not impossible - you should use this experience to help mold your approach in your next engineering position. You have a lot of what went wrong, but, don't lose sight of what was done correctly/well - those are typically easily overlooked. Have you ever looked at how simple it is to launch a service, and, the supporting ecosystem that just exists? In conclusion - use this as an opportunity to learn while moving forward, it's too easy looking at the negative and being critical.
I tried this and it didn't work. Instead of moving within the company, I choose leaving. Not only am I interested in learning but I also want the 💰.
my team need no good practice. we just need to ship the features that PM wants as soon as possible. The only thing I need to learn is the business logic.
You can learn stuff wherever you are. It depends on your mindset not your employer.
I feel right opposite to you. I joined my team 1 month ago with 1.5 yoe, and 5 other teammates are 4-9yoe with 3-6yr at Amazon. I feel they strived at Amazon and know shit. I am kicking my ass off to stretch..
congrats you are at a good team. what's the product you are working on?
What type of design patterns you mentioned in interviews? Can you elaborate on the problems people found? I feel like it is hard to mess up design patterns so really curious about this
Some business roles are very autonomous and you can learn, even in just L4 roles. Even if you didn’t learn good engineering practices, you must have learned other things: how to navigate a corporate structure and whose butt to kiss, how to argue and always get your way, how to be just petty enough to have it be called “insisting on highest standards” 😎