Written on 2026-01-14 by Adam Drake - 6 min read

My Medium friends can read this story over on Medium.
I was in a training session when I was working at eBay. I thought it was stupid.
We were split into groups of about 5 people and then asked to spend 10 minutes writing down our description of an apple that each of the groups were presented with.
I thought “This is easy.” — How wrong I was, it was a life changing moment.
As different groups started to share their descriptions it instantly dawned on me how differently everyone sees the world. Some groups — who happened to contain the most technical people — described the apple in incredible detail. Starting at the top of the stem they spent the next 3 minutes describing just the stem!
It was so different to my approach which would describe the whole apple in about 1 minute. I glanced over the stem making assumptions like “Everyone knows what an Apple Stem looks like” and “I need to describe the main body of the Apple and not spend too long doing it”.
I sat after the session with the realisation that all my prior assumptions about communicating my ideas in a group setting were seriously misaligned.
Press enter or click to view image in full sizeThe Anatomy of an Apple
Another pivotal moment happened not long after when I was watching Javascript — The Hard Parts on Frontend Masters — this is a course by Will Sentence and one of the main takeaways from watching this was how important your “Technical Communication” was.
He described “Technical Communication” as your ability to be able to explain and convey complex technical concepts to other people.
Let’s look at an example.
How would you explain this code to a colleague (assuming they know something about Javascript and code in general)?
There are many variables to take in mind but to keep things simple I will give an example of some “Bad Technical Communication” and then some “Good Technical Communication”
Bad Technical Communication
There is a fetch request to a placeholder url which is called and then when that returns the Promise another function is called which logs out the word “data” to the console.
Good Technical Communication
There is a declaration of a function called printData which takes one argument. This argument is not used, which could be a bug and should be removed if not used. This function console.logs out the string literal ‘data’ when it is called. Next there is a declaration of a fetch request which will return a Promise and this is assigned to the const variable futureData . On the next line this futureData has a then method which registers the printData function as a callback when the Promise resolves successfully.
Both of these explanations are “correct” but one is significantly better than the other. Why?
It’s about being precise with your wording. Precision in wording and articulation is particularly important when explaining technical concepts or code because slight variances can make a massive difference.
Example:
vs
Here, we have ‘returns’ vs ‘resolves successfully’. It may seem like an insignificant detail but it’s these key details that make all the difference. A Promise either resolves or rejects, it doesn’t return anything. If you want to get good at Technical Communication you really have to focus on these details.
I would argue that having good technical communication is probably the most important skill you can have in Software.
Sure you need to know the language/s you work in deeply, you need to know good design patterns in code, you need to be able to build out high quality scalable products — the list goes on.
But if you can’t communicate your ideas well to those people around you, then you are doomed.
Your career progression will be stalled.
The projects you get to work on will be limited.
You will struggle to make the impact you desire.
I will propose a couple of ways in which you can improve your technical communication.
One of the reasons man has become so dominant on this planet is due to our communication. We can work together and share elaborate and complex ideas. We have incredible mental capacity to hold ideas in our head and visualise and imagine things long before they exist in the world.
If you can’t convey your ideas well then your colleagues may fail to understand you and if they can’t understand you then it’s very likely your ideas and concerns won’t be taken onboard.
Therefore, if you want to succeed in software it’s important you become really good at “Technical Communication”. It’s not easy but if you want to stand out amongst your colleagues it’s vital.
Enjoyed This Post?
If you found this blog post helpful, why not stay updated with my latest content? Subscribe to receive email notifications every time I publish.
If you're feeling really generous you can buy me a coffee. (Btw, I really like coffee…)
I live in the vibrant city of Prague, Czech Republic, with my family. My blog is more than just articles; it's a community of like-minded developers who share a love for innovation and learning.
I'm a passionate Frontend Developer specialising in React and TypeScript. My professional journey revolves around exploring and mastering new tools and libraries within the JavaScript ecosystem.

Adam Drake is a Frontend React Developer who is very passionate about the quality of the web. He lives with his wife and three children in Prague in the Czech Republic.
Adam Drakes Site © 2026