Soft skills help developers level up. Here are the 10 I'd tell my junior self.
As a developer, technical skills are important. But soft skills are key to level up — and they're often overlooked.
In 6 years, I went from intern to lead software engineer. I excelled in an organization known for hiring stellar tech talent.
During this time I read more than 150 non-fiction books. Some tech, but mostly non-tech. I've applied some of the concepts to my life and career. They helped me achieve career success, and prepared me for my next ventures as a solopreneur.
I've condensed my experience and learning into 10 soft skills for developers.
But it took me a while to learn them. If I'd known them at the outset, I think I would've leveled up faster. They would've strengthened my abilities and long term relationships.
If I could go back in time, I'd tell the following to my junior 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. People won't judge you if you're unfamiliar with a few.
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 code reviewer.
There’s always that one person on every team. Nobody’s work is good enough.
They nitpick everything. They know the system inside and out. They catch every flaw and readability gap.
Find this person. Have them review your code as much as possible. The more constructive feedback you receive and embrace, 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. Even when they’re wrong, try to understand their perspective and why they have it. Leverage their insights to improve the quality of your own work.
5. Do the right thing, with intent.
Avoid sunk cost fallacy. It doesn’t matter if you spent 4 hours coding a solution. If it's a flawed approach that won't work, trash it.
Make sure there’s purpose, intent and clarity behind every line of code you send for review.
6. Become a Professional.
With a capital P. Every task is an opportunity to produce beautiful, elegant code. Coding is a craft; 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. Reference 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, upholding existing conventions. This drives readable, maintainable software.
8. Throw yourself into the fire. 🔥
You'll 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. Update documentation. Mentor interns. Improve the CI/CD pipeline.
10. Prioritize promotional work.
Don't get caught up in the day-to-day minutiae, where you end up forgetting to grow your career.
Start each day with a high impact task that'll inch you towards a promotion. Whether that's signing up to interview, performing code reviews, or adding to your brag document.
You'll be glad you did so, come performance evaluation time.
Bonus: learn to write effectively.
We write all the time. In code reviews, in trouble tickets, in system design documents.
Effective, unambiguous communication is critical for building quality software systems.
Plus — writing opens up many career opportunities. ✍️
There you have it. The soft skills I'd tell my junior developer self.
Thanks for reading! Did you like this article?
It started on Twitter. Follow me for more! Here's an example of what to expect: