From an Amazon tech lead: soft skills I’d tell my younger, jr software engineer self.



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.


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?”


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.


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.


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.


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.


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.


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.


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.


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?

What soft skills would you recommend for software engineers?