From an Amazon tech lead: soft skills I’d tell my younger, jr software engineer self. 🧵 👇
1️⃣ Exude kindness.

The tech world is full of strong opinions. You may perceive people as mean. They’re not. They just want the best outcome.

Resist the temptation to become an unpleasant person. Radiate kindness while holding a high standard. You’ll go far.

👇
2️⃣ Ask stupid questions.

There are a million technologies. You’re not expected to know them all.

Example question: “I don’t understand what those words mean. Can you explain them, or point me to a resource which does?”

👇
3️⃣ Seek the relentless reviewer.

There’s always that one person on every team. Nobody’s work is good enough. They nitpick everything.

Find this person. Have them review your work as much as possible. The more constructive feedback you receive, the faster you'll learn.

👇
4️⃣ Put your ego away.

Your peers are intelligent individuals with unique backgrounds and industry experiences.

Listen empathically with an open mind. Leverage their insights to improve the quality of your work. Even when they’re wrong.

👇
5️⃣ Focus on correctness and intent.

Avoid sunk cost fallacy. It doesn’t matter if you spent 4 hours coding a solution. If you did it wrong, trash it.

Make sure there’s purpose, intent and clarity behind every line of code.

👇
6️⃣ Become a Professional.

With a capital P. Every task is an opportunity to produce beautiful, elegant code. Code is art, and you're the artist.

Learn programming principles. Become a software craftsperson and take pride in your work. Don’t just make it work; make it right.

👇
7️⃣ Leverage existing examples.

Search for existing internal or external solutions before starting a task. Read a few examples. Understand the code paradigms used.

Then look at your own team’s code. Introduce the new functionality in the right way.

👇
8️⃣ Throw yourself into the fire.

You will never be “ready” to work on big features, execute production deployments or go on call.

The best way to get ready for them is… to do them. This will expand your comfort zone and accelerate your growth.

👇
9️⃣ Take initiative.

Notice opportunities to improve your team’s operational excellence, processes and developer experience.

Refactor legacy code. Automate manual procedures. Improve runbook documentation. Mentor interns. Improve the CI/CD pipeline.

👇
🔟 Prioritize promotional work.

Some tasks will have a high impact on promotions. Some tasks will have a low impact. That’s OK - give it your best on every task.

But your day should always start with a high impact task.

Fight for yourself. Your company won't fight for you.

👇
Those 👆 are some soft skills I’d tell my younger self.

What soft skills would you recommend for software engineers?

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Curtis Einsmann

Curtis Einsmann Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @curtiseinsmann

16 Oct
I’ve reviewed over 750 PR’s at AWS. As my team’s tech lead I provide insightful feedback and enforce a high code quality bar.

But as a jr engineer I couldn’t review code. I didn’t know where to start, what to look for or how to comment.

Here’s how I review PR’s. 🧵 👇
1️⃣ I understand why code reviews matter.

They're an excellent coaching opportunity. Insightful feedback accelerates learning and growth.

Quality code strengthens readability and system understanding. This is a force multiplier for the team’s long term feature velocity.

👇
2️⃣ I’ve taken the time to learn programming best practices.

I understand principles like SOLID, DRY and KISS.

I’ve read the Clean Code book. I understand the importance of naming, small functions and logical control flow.

👇
Read 11 tweets
21 Sep
When I was a jr engineer at AWS my PR’s went through 100+ comments and 7+ revisions due to poor code quality. The friendly, helpful feedback helped me improve.

Now as a mid-level I tend to ship code in <= 2 revisions with minimal comments.

Here’s how I’m doing it. 🧵👇
1️⃣ I understand why code quality matters.

We read code 10x more than we write it. Our code must be understandable so our team can maintain and add features.

Poorly written code causes PR churn, which results in delayed delivery and can block other team members.

👇
2️⃣ I take on small tasks.

A good PR starts before any code is written. The task should be small, resulting in an easily reviewable PR.

Bad task: UpdateWidget API

Better: split into 4 separate tasks - UpdateWidget model; AuthN/AuthZ; input validation; implementation

👇
Read 12 tweets
31 Aug
My first ever Medium story got 22.5k views in its first 3 weeks.

What I did right ✅ and wrong ❌.

THREAD. 🧵 👇🏽 Image
✅ I had a story to tell.

I did something cool in real life. This is important.

I had a unique journey at Amazon. I overcame my technical incompetency to achieve success.

I wanted to help people overcome similar challenges.
✅ I told the whole story.

People read stories to apply experience to their life.

I was vulnerable. I used quantitative metrics (“80+ comments”). I showed my feelings (“face turned red”).

I provided the mindset I used to overcome struggles. Specific and actionable.
Read 13 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!