🎤 Good communication makes great software engineers
How can software engineers be more confident communicators in their written, spoken and non verbal communication. This blog provides practical tips and insights from my decade plus career
You may have heard this anecdotal advice earlier
“Improving your communication skills will help you land senior roles and unlock career growth beyond technical skills”
What do good communication skills mean in practice?
Let’s dive in.
Disclaimer: I’m not a communication expert; I’m just going to reiterate some practical advice and insights that I’ve picked up over my career as a software engineer.
To judge what good looks like, observe, and just look around you.
At the office, conferences, meetups or the internet and notice what makes someone stand out in their communication?
You may notice the following traits
Clear and concise thought process
Excellent written communication - Ability to write clear messages on chat messaging, 1 pager or design docs, tech blogs
Confident spoken communication - Ability to express ideas and thoughts confidently. They do not appear confused and don’t use a lot of filler words like um, ahem, etc
Positive Body language - A smile on their face, and calm demeanor even in arbitrarily challenging situations
Some of these may be innate personality traits or a function of their environment from home, school, college, or initial workplaces but most of them can also be learned, just like any other skill
How do you become a better communicator?
IMHO, There is no secret sauce.
Good communicators are not born with it.
Like many others, they develop and hone their craft over many years, improving just a little bit each day. A large part of it is doing the work and practicing. This also involves being open and willing to put yourself on shaky ground or in uncomfortable situations to learn from.
As a senior engineer. I would expect you to have a solid grasp of good communication skills in 3 key areas:
Written
Spoken
Body language
Let’s break it down, shall we?
👩🏻💻 Written: Great writing is great thinking
What can you do to improve your writing skills?
Here comes the obvious advice. 😓
Take the time out and write a lot.
It may mean spending a little extra effort in writing the report for your stakeholders and making them more engaging without adding a ton of fluff. You may find value in reading Technical Writing | Google for Developers
A small tip is to always start a doc with a summary or a TL;DR (too long don’t read) and then break down your content into What, why, when, who, where, and how (5W1H) or the standard problem space, solutions, metrics, and next steps format.
The format is not that important.
You need to form a habit to write and write well.
Also, feedback is a gift. Try to get your design docs reviewed by senior engineers and seek their feedback on how to improve
Communication at work will only take you so far
To develop as a writer you should try and write either blogs, newsletters, or short notes. These could be internal or better still a public blog where you write about whatever you are curious and passionate about.
Even if one person (that’s you) reads it, it's enough
You’ll notice your written communication skills will compound over time.
To build a good vocabulary, reading could be a supplement. Observe how others who write well compose their paragraphs, break down, and elicit thoughts. Initially, this could help you maybe mimic their style and then develop your unique voice or writing style.
If you don’t take anything else; just keep at it.
If you could build a habit of writing regularly and derive some sort of satisfaction from it, you’ll pretty soon move on from mediocre write-ups to more polished ones
Writing well is a superpower. Especially, in the days of LLM (large language models) and Gen AI being all the buzz. Having the ability to communicate in natural English in a nuanced manner goes someway in getting better results.
Also, Writing helps you slow down your thoughts and make a lot of concepts more concrete in your mind
Great writing could also incorporate storytelling but it is easy to get carried away in the beginning. It's better to focus on concise and clear writing first and then when you get a hang of the basics, move on to more advanced steps
Here are some actionable tips for you to consider:
Start a personal tech blog
Write on the internal company blog
Develop the habit of writing 1 pager or design docs for your projects and improve and iterate with feedback
Learn touch typing to improve typing speed and accuracy, it will help you compound like nothing else
Use a grammar and spelling checker like Grammarly or Google Docs Spell Check and internalize the writing principles and corrections they suggest.
🔊 Spoken: Finding your voice
What about being a good confident spoken communicator?
This may be especially hard to develop as an introvert since you may be afraid of what others will think about you if you say something weird. Trust me. Nobody cares! Engineers' brain space is full of problems they are solving and they often focus on their thoughts. No one notices the small stuff.
Remember your peers and managers are not mind readers.
If you cannot find a way to communicate your thoughts in spoken words, it is very hard to be an effective software engineer
Please don’t take it the wrong way though; I’m not suggesting you become a loud-mouthed obnoxious person on the team with fake confidence
I’m talking about becoming someone who really knows their stuff and can also express their thoughts as well. A deadly combination if you ask me.
Here is a practical tip
Don’t be a passive attendee in meetings. You may feel like you can multi-task on that coding task and get something else done, but if you think about it, it's quite hard to do so with split attention.
If you find a meeting where you are a contributor. Do a bit of research before the meeting and create some small bullet points on what points you want to discuss and then actually bring them up.
This may be scary for the initial few times, but the more you do it. The more you find your voice automatically affords you a seat at the table. Your manager would be very happy with you for sure as they are often in silent rooms with less participation from team members
Another way of improving spoken communication is to give talks
Prepare a topic and then submit a CFP (Call for proposal) at conferences. If you are accepted as a speaker, it may be quite a jarring experience to prepare and deliver the talk but trust me you’ll love the experience afterward as folks usually come up to you after and discuss their ideas and ask their questions. The networking from these events does not hurt as well. You never know what doors open for you with each new connection.
Some more actionable tips:
Prepare for your meetings and then speak up during them
Present at internal tech talks within the team, company
Present externally in conferences and meetups
Want to sound more confident in your spoken communication?
Below are a few examples that illustrate how during spoken communication we do a lot of self-sabotage.
Remember: You can always choose a more positive and confident tone.
I’ve found short reels by Jefferson fisher on Instagram quite helpful for this purpose.
Not Confident: "Sorry, I'm not sure if this is right, but maybe we could..."
Confident: "I propose we consider this approach..."
Not Confident: "This might be a silly question, but..."
Confident: "I have a question about..."
Not Confident: "I'm just a junior developer, but I think..."
Confident: "I believe that..."
Not Confident: "Um, I think maybe we could try using a different approach here, but I'm not sure if it would be better."
Confident: "I recommend we explore using a different approach here. I've done some preliminary research, and I believe it could improve performance."
Not Confident: "Sorry to interrupt, but I have a question about the database schema."
Confident: "I'd like to raise a question about the database schema."
Not Confident: "I don't know if I'll be able to finish this task on time. I'm still learning the new framework."
Confident: "I'm working hard to learn the new framework, and I'm committed to completing this task. However, I may need some additional support or an adjusted timeline."
What if you really don’t know?
Hey, we are all there! No shame in admitting that but you don’t have to sound overly apologetic or worse try to cover it up with some half-assed answer
You could instead say:
"I don't have the information on that right now, but I can look into it and get back to you."
"That's a great question. I'll need to do some research and come back on this."
"I'm not familiar with that specific aspect, but I'm happy to learn more about it."
Also, Learning good conversational patterns is also a skill. You can get better at it.
🦿Body language: Nonverbal actions matter
This one is especially hard unless you train yourself
Here are some small tips:
Make eye contact and nod when you agree as you talk to someone (either in person or even on a webcam in a meeting). It shows you are listening actively goes a lot toward building trust.
Having an upright open posture with a smile goes a long way in establishing you as a confident individual.
If you always tend to have your arms crossed or slouch a lot, you may come across as someone who is not comfortable
I found a nice read in this article → How to Understand Body Language and Facial Expressions, and I’m sure you’ll find a ton of resources on this on the internet. Please feel free to do your own research and practice having a more open and confident body language
It helps!
Summary
So let’s bring it all back now.
I hope you leave with these key takeaways.
Written Communication:
Practice writing regularly through reports, documentation, blogs, or personal notes.
Seek feedback from senior engineers to improve.
Develop a clear and concise writing style.
Use tools like Grammarly to improve grammar and spelling.
Learn touch typing for speed and accuracy.
Spoken Communication:
Actively participate in meetings and prepare talking points beforehand.
Present at internal and external tech talks to build confidence and share knowledge.
Use a confident tone and avoid filler words.
Be willing to research and learn to answer questions effectively.
Body Language:
Maintain eye contact to build trust.
Practice open posture and a friendly demeanor to project confidence.
Now what are you waiting for? Go out there and practice. You got this! 💪