From an ex-Amazon team lead: 5 mistakes I made as a junior software engineer

I was a software development engineer at Amazon Web Services for 6 years. I started as an intern. I grew to be a tech lead for various teams and projects.

During my time at AWS, I directly mentored over a dozen junior software engineers. I indirectly mentored others as a course instructor and technical reviewer.

I recently left AWS to be an independent freelancer and entrepreneur.

Since stepping back from full-time employment, I’ve taken some time to reflect on my journey. I had my fair share of success. But it wasn’t all sunshine and roses.

I made many mistakes along the way. I’m taking this opportunity to share several, and how I corrected them. Hopefully this reflection will be insightful to other developers out there.

Here are 5 mistakes I made as a junior software engineer.

Photo by Jonathan Fox on Unsplash

My first few projects weren’t cutting edge. They weren’t on the latest and greatest tech stack. I considered myself underutilized, and didn’t take work seriously. In short, I was entitled.

I fixed this by embracing my role. I started to see the business value and impact of the projects I was working on. Whether my software had millions of customers, or just one.

I decided that if I was going to write code, it would be the best code I could produce. No matter how small the project.

I’d focus on minutiae in code reviews. I’d try to one-up them in design discussions.

This was a horrible strategy for building long-term relationships.

I fixed this by caring genuinely about the success of my teammates. I started being pragmatic, not a perfectionist. I started celebrating their wins and supporting them in their losses.

After all, we’re on the same team.

I thought asking for a promotion was selfish. I thought that if I did good work, it’d come to me eventually. So I didn’t ask.

I fixed this by being transparent about my career goals and aspirations. I started to have uncomfortable conversations with my manager. I came to learn that such conversations about career growth can be both healthy and constructive.

The transparency allowed me to a) identify next-level gaps, b) prioritize work to cover those gaps, and c) measure and document the impact of my work. In doing so, I seized promotion opportunities.

During complex system design meetings, I zoned out. During daily standup meetings, I barely listened to what my teammates were working on.

I wasn’t trying to be rude. My immediate tasks were hard enough — so I mentally filtered out anything that I didn’t understand, because it didn’t directly impact my day-to-day. But I grew to regret this whenever I went on call, or had to maintain my teammate’s code or component.

I fixed this with active listening and clarifying follow up questions. I sought to pay attention, and piece together the puzzle over time. I sought to understand every conversation, and I eventually did. This gave me a foundation of understanding whenever I had to debug or work with unfamiliar code.

If something broke in production, it was “not my fault.” Or, “not my code.” This blinded me from working with the team to learn from problems that caused customer impact.

I fixed this by ideating and participating in team-level process improvements, instead of blaming individuals. It helped me improve my team’s ability to prevent, detect and mitigate flaws. More importantly, it lead to a healthier team environment.

5 mistakes I made as a junior software engineer.

If I’d learned to correct these sooner, I think I would’ve leveled up faster, and built stronger relationships with those around me.

I hope this helps you to recognize and avoid them. 🔹

It started on my Twitter. Follow me for more! Here’s an example of what to expect:

Me and my Amazon shirt collection



Software engineer; solopreneur. Writing to help developers level up. All stories free. Follow me on Twitter for more:

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Curtis Einsmann

Software engineer; solopreneur. Writing to help developers level up. All stories free. Follow me on Twitter for more: