at what point do communication skills start to matter more for software engineers?
Posted by SomeRandomCSGuy@reddit | ExperiencedDevs | View on Reddit | 99 comments
I’ve been thinking about this recently based on what I’ve seen at my company.
I always have these preconceived notions and assumed that as long as you were technically strong and delivered consistently, that was the main driver for growth and promotions.
But looking at some of the staff+ software engineers in my company, what really stands out isn’t just their technical ability, it’s how well they communicate. They’re really good at things like talking confidently, aligning different stakeholders, getting buy in on ideas, talking aobut tradeoffs clearly, keeping discussions productive, etc
It made me realize that a big part of their impact isn’t just what they build, but how they bring people along with it.
I’ve also seen quite a few cases where engineers who are very strong technically seem to stay stuck at mid/senior levels longer, and I’m starting to wonder how much of that comes down to communication vs something else. These engineers are ones who stay silent in meetings or discussions and only ever focus on execution.
Focusing on communication myself has helped more than I expected, especially in meetings and cross-team efforts, and getting bumped to the senior engineer level faster than I was expecting.
I am really curious how this shows up in other companies, and at what point did communication start to matter more in your experience?
Distinct_Bad_6276@reddit
Always
WhiteXHysteria@reddit
I'd argue it's not as important for a true junior but the second you want to be anything other than an every level junior they become critical
pigtrickster@reddit
A "junior" who communicates better will usually be promoted faster.
WhiteXHysteria@reddit
Absolutely. But it's not critical to just be an entry level junior.
If you want to move up at all though you gotta be able to communicate well enough for the non technical people to understand.
Goodie__@reddit
I'd say as a "true junior" your ability to comprehend what you've been asked to do, and ask questions back is still pretty important. Those are still communication skills, just not the whole "aligning stakeholders" thing.
TurboRadical@reddit
Hot take: a junior that asks clarifying questions isn’t a junior
Head-Bureaucrat@reddit
I was going to say "I don't know, but it was before I realized I needed to work on my communication skills."
Yours is way more concise.
Acceptable_Matter972@reddit
There are problems that cannot be solved with mediocre engineering and over-the-average communication skills.
boring_pants@reddit
Which problems are these?
unbrokenwreck@reddit
Translating ambiguous requirements into ground reality.
LUV_2_BEAT_MY_MEAT@reddit
That seems like the primary use case for communication
tankerton@reddit
I accept this to be true in the totality of all engineering, however, I have not yet seen this to be the case and I've worked on some of the worlds largest data migrations. Every project in my past I would generally prefer stronger communication skills than engineering in my teams. Engineering is simpler to teach effectively in my experiences.
I've had my projects where I wish my team was just more technically skilled but the turnaround if they had better than average comms skills on upskilling was weeks not years.
corny_horse@reddit
Yeah, I find the "soft skills are more important than hard skills" trope to be massively overplayed. I've seen non-technical project managers sink due to lack of "hard skills", let alone people whose job is primarily "hard-skills".
Main-Drag-4975@reddit
True. Soft skills aside, every dev project needs a minimum of one competent programmer.
Even that person will be vastly more effective when they invest in soft skills and relationships.
gibdimkoofchji@reddit
It depends heavily on what you’re building and what the risks are for bad software.
The reality is, most software is trivial and the stakes are very low. Trillion dollar businesses are built in more quality software by bad engineers
JohnDillermand2@reddit
Engineering is about building a bridge as efficiently and cheaply as allowed by the specifications. Rarely have I been given specifications that the pyramid's strength must transcend space and time.
UsernameMustBe1and10@reddit
It's basically our job to inform non-technical people of the technical stuff they'll interact with.
CorrectPeanut5@reddit
It always has been, but holy crap getting newer employees to take personal development classes is like pulling teeth.
skeletordescent@reddit
Yeah to me communication skills matter more than coding ability at all levels. Period. I can work with crap code. I can work with delays or poor priorities. I can work with any number of personal issues as long as I know them. I deal with this a lot at my current org, where we have cross team dependencies and I've learned to defensively do my work banking on other teams not doing their end of things and not telling us until we're less than a week from production.
Main-Drag-4975@reddit
This model assumes the existence of a competent programmer (you) capable of compensating for a preponderance of bad code. Every team needs at least one of you!
TheTimeDictator@reddit
Came here to say this.
Only thing I'll add is that what people perceive as valuable communication changes as your scope increases and your audience changes. When you start out, you're just expected to talk about your task. As you become more senior, the more you talk about high-level stuff and you need to collaborate more with other people outside of your immediate team to be successful.
actionerror@reddit
The only correct answer
talldean@reddit
The pivot is somewhere between senior and staff, but also depends on what type of staff engineer we're looking at.
psychicsword@reddit
Communication skills become important around kindergarten or elementary school.
disposepriority@reddit
From day one, in my experience. Unless you're working on some extremely bespoke algorithm that requires a genius to spearhead it - results can be driven and achieved by completely mediocre work.
BottleMaximum1159@reddit
do you think communication skills are more important in smaller companies or bigger ones?
disposepriority@reddit
Well I guess if it's a tiny tiny company, maybe 30 people or less, then you could get away with a bit of social ineptitude in exchange for being a workhorse. So definitely larger needs more communication, up to a point.
breeez333@reddit
I would say mid level is where you would stagnate unless you work on communication skills. A huge part of being senior is being able to convince and lead others, as well as mentor and shape younger engineers.
OAKI-io@reddit
earlier than most people expect. around senior level you’re not just shipping code, you’re shaping what gets built and why. the devs who stall out at senior are usually the ones who can’t communicate tradeoffs upward without turning it into a tech lecture.
potatolicious@reddit
From the start. There is not a stage of career where your soft skills don’t matter. People who are strong at soft skills (communication, presentation, teaching, consensus-driving) tend to advance more quickly even in the early career stages.
The effect you’re seeing is that at some point the soft skills become a bigger part of the job than raw technical ability. Also, at many companies the lack of these skills will eventually completely halt further advancement, not just slow you down.
Solid-Initiative3678@reddit
noticed the typo "aobut" in your post
Nottabird_Nottaplane@reddit
And? Why do you think anyone cares about what you “noticed”?
What is your contribution to this conversation, if you have any?
Old-Television-2189@reddit
He’s saying that it’s spelled “about”
Treebro001@reddit
Great it means its not ai slop
Deranged40@reddit
Notice how you did not contribute to the conversation at hand with this? That's a mark of poor communication skills.
carterdmorgan@reddit
Ironically, thinking a typo connotes poor communication skills is itself an example of poor communication skills!
hiddenhare@reddit
Sorry to hijack, but can somebody explain to me how the bold skills could possibly fall within the job description of a senior engineer, rather than a manager? Is this the way things are supposed to work in a healthy team, or is it an unfortunate accident of corporate culture, similar to how engineers have to painstakingly "make their work visible" so that they don't get sidelined or fired?
This is a genuine question, and I think it might be holding my career back. I've got all of the other communication skills on both lists, but my attitude has always been "I'm working with fellow professionals, they were given their job for a reason, they may know better than I do, and therefore it would be disrespectful to try too hard to change their minds". I'm happy to provide information to my peers and leaders, but trying to convince them feels coercive, and I'm deeply uncomfortable with the way that it makes me partially responsible for other engineers' decisions when I'm not actually in charge of them.
Why is this the wrong approach?
Intelligent-Bus-8526@reddit
communication: the secret boss level of software engineering careers
mock-grinder-26@reddit
Great point. One thing I've noticed in my own career - the engineers who really excel at senior+ levels treat code reviews as collaborative conversations rather than gatekeeping exercises. They ask "what do you think about..." instead of "you need to fix this". The "why" matters as much as the "what" when you're trying to scale impact beyond your own code.
awoeoc@reddit
Most engineers the vast vast majority aren't doing things that are technically challenging. You're not a special genius more than likely and your company isn't building something that needs it.
That's the harsh reality on technical skill. What your actual value is to most companies is simply your ability to produce product.
That ability is multiplied when you go beyond just taking tickets, but helping form them, helping unblock other teams and people including non technical like product management.
What sets you apart is your ability to drive real value to an organization, not technical ability.
yojimbo_beta@reddit
I mean that is really a function of the work you do, isn't it? If you are technically skilled, you will generally end up in work that pays for those skills, just due to the forces of the labour market
But most people do not have special technical skills (which is okay). So, they are going to need to do the other stuff effectively if they want to be really impactful
awoeoc@reddit
"a few I have done" implies most weren't that, your flair says 12 years of experience I'm going to guess you're not the average dev. You mentioned startups working in a new technology, but the vast majority of startups aren't that and the majority never get to real scale issues.
I'm not saying this doesn't exist, but it's nowhere near the normal, by percentage it's going to be uncommon.
yojimbo_beta@reddit
I mean even then you are doing that work in teams - unless you're Linus Torvalds you are rarely building it all by yourself. But I don't think it's true to say that, all the work in our field is done through mediocre effort
PrintfReddit@reddit
A strong communicator with strong technical skills is the rarest kind of engineer, and is very valuable. I personally would always prefer working with stronger communicators even at the expense of some technical skills, because a single silo'd person can only do so much, but a strong communicator and collaborator can multiply their effect.
yojimbo_beta@reddit
...Within reason. If the tech is instrumental, you NEED someone who knows it inside out - even if they require support in how they sell their ideas to stakeholders
planetmcd@reddit
Yesterday.
mq2thez@reddit
You can get to senior without communication skills. You can in some very rare cases get to staff on pure engineering might.
But being a good staff engineer is about broad impact. It means identifying and solving problems for multiple teams. Some rare people can do that without talking to other people or writing docs to build consensus or whatever, but that’s the very rare subset of people who get to staff on pure fucking action. Those people tend to get stuck at staff for a long time (or stop there), because doing well at communication is usually an explicit requirement at that point. Getting to Sr Staff usually means that you’re actively working with directors or VPs to shape roadmaps for lots of engineers, and it’s the point in the career where tons of hands on coding is usually a failure mode. That’s because your time and expertise should be so valuable that your focus should be on guiding other engineers (or teams) to do the work in order to maximize your impact. A Sr Staff Eng going hands on in a deep way is usually a sign of bad things.
That said, every company usually has their version of the Avengers. A couple of people whose job is to drop in and capital-S Solve things. Even if you don’t how that became their thing, you know who they are because when things are absolutely fucked, they’re the folks who show up and everyone just suddenly breathes a sigh of relief. They write docs about how something will be a problem in a year, they’re absolutely right, and the only thing they need is for you to get out of their way. Communication skills are necessary for them, too, because they have to be able to get the help they need, but it’s not a primary skill.
dudeaciously@reddit
Respectfully, I would say that the only way to be promoted beyond junior with poor communication skills is by a non-technical manager, who is dazzled by small delivered projects, extra hours put in. Building collaboratively also calls for communication and people skills, even among peers. How much can a lone cowboy do alone.
starwars52andahalf@reddit
Always important, but senior+ levels is where it becomes more dominant. On the IC side, at Staff+ you’re not coding 70% of your time anymore, a lot of your time is spent in code and design reviews, technical meetings, mentoring & guiding, dealing with stakeholders and management. Similar on the EM side.
Scottz0rz@reddit
Communication is always important.
When interviewing, it doesn't matter how good you can code, it matters how good you can communicate that you're a good hire.
For Juniors, communicating blockers, asking good questions, and heck even knowing when to ask for help is important rather than sheer technical ability.
For Mid-Seniors, you're going to start having to coordinate between people and teams for projects and working with stakeholders more.
For Staff+, that's just a natural part of the job times 20^ and you're expected to have ideas that drive growth and to be a force multiplier by mentoring others and managing projects at a much larger scale.
Plus, more than anything and generally applicable to all levels: good communication means you can have good visibility for your projects and team. If people know who you are, then you're more likely to get promoted.
Sitting in your corner not communicating with others is limiting yourself and your growth. Is that a bad thing? Not necessarily. Being someone who tinkers in the corner, close to the code, and stays an IC is actually pretty nice, especially if you find communication exhausting.
From my POV, getting some basic communication skills and camping at mid-senior is perfectly acceptable for the vast majority of people. Technical ability and decent communication will get you to a decent level eventually.
Not everyone needs to be pushing for Staff+ or Management roles. Communication isn't just a skill to be honed, it's also something that some people enjoy more than others. The higher you go, the more communication matters, and that irks a lot of people who became programmers for the love of programming, not for the love of meetings.
UntestedMethod@reddit
Communication and being likeable are generally considered more important factors than technical ability when it comes to promotions. This is not a secret or anything new.
gimmeslack12@reddit
I've always thought interview loops were ridiculous because they spend so much time on code and not figuring out whether you like the person much rather how they articulate their approach on broader solutions (not just why they're writing the code in the moment).
Sure, they were able to write a linked list, they can make react components and manage state nicely, but what if they're kind of a dick? No one seems to think about this.
PayLegitimate7167@reddit
Always but where it’s a differentiator is the above senior level like principal
Rymasq@reddit
A company like Google doesn't hire someone that lacks communication skills period. To work at a top company you need both excellent technical skills and communication.
jedberg@reddit
Everyone here is saying "always" but we all know that's not really true. We all know that one person who is super strong technically and everyone just suffers their lack of communication skills because they're just that good.
It always helps at all levels. But if you lack communication skills you'll probably get stuck at Senior, maybe Staff.
Beyond that your impact is more about how well you tell a technical story and bring people together around technology than actually being good at the technology.
Full-Extent-6533@reddit
IC vs Manager path. But communication is always important, even as a strong IC or a junior
poeir@reddit
The very first
print("Hello world!")is communication from a human to a compiler. The entire career is communication.You ask "matter more," but you don't specify "more than what." I can't imagine anything matters more to the career than doing the job.
DigThatData@reddit
Coding is communication. Development isn't just about the immediate implementation, it's about implementing the thing in such a way that how it works and why it was implemented in such and such way instead of some other way is clear and comprehensible to future developers tasked with maintaining or extending the codebase. The code itself is a form of documentation. Even if you are the only engineer who will ever touch the project: you are always at minimum beholden to "future you".
Every organization/collaboration is an inherently social endeavor. Why should a project accept the changes you proposed? Why should other teams use the thing you built? Why should anyone beleive you had the impact you claimed to? Why should the organization commit resources to the idea of yours? Getting things done in a collaborative environment either requires making a case and convincing people to get on board, leveraging previously earned trust to get people on board, or pulling rank to get people to follow direction unquestioningly. Unless you have authority or a strong reputation, communication will almost certainly be core to getting anything done. The reputation doesn't come for free (and hopefully neither does authority, but there are exceptions), so you should assume communication will be needed to build that and prove yourself.
You are not alone. In a well structured organization, teams will generally be comprised of members who complement each others skills. If you struggle with communication, leverage the people around you. There are a lot of different ways this can manifest, and you'll need to figure out what your own weaknesses are and how best to engage with teammates to compensate.
Low hanging fruit:
higher effort:
2old2cube@reddit
at all points.
nwhitehe@reddit
From the point of view of "hard technical stuff":
One thing that has been important throughout my entire career is understanding the audience of communication. Being understood at all is the first step to effective communication. For hard technical stuff there are so many levels of expertise you have to be able to tailor your communication almost infinitely up and down.
Audience is often "other random devs maintaining your code", or maybe "expert devs who know the field but haven't seen this particular thing", or "world class researchers who know the math but are more comfortable in python than C++", and of course "managers who are being paid to understand things but are struggling because everything moves so fast and they also have to figure out the organizational politics of everything".
Deranged40@reddit
From year 1.
icy_script@reddit
I think it’s the most important skill in software development, and should be prioritized as early as possible.
throwaway0134hdj@reddit
The whole thing is communication. You aren’t making software for the sake of it… you are making it to solve some human problem. I feel like this gets missed in CS courses but the ultimate goal is to help humans better work with computers and software/code enables that.
Isofruit@reddit
It goes down to the code itself. You write it... to communicate to the next person reading your code (including future you), so your focus inherently is to write something that others can be easily understand. You fundamentally all the time leave instructions that are supposed to explain what the code is doing and what that means.
throwaway0134hdj@reddit
And goes deeper, code is just the medium we use to be able to communicate with hardware/computer. And then there is message passing between different microservices and giving messages to humans for logging, monitoring, traceability.
ZukowskiHardware@reddit
I think they matter immediately. A team that works well together is worth 1000 white knight individuals.
CaesarBeaver@reddit
I’m not sure but it’s only going to get increasingly important even for junior, mid level and seniors.
boring_pants@reddit
On day one of your first job?
nonades@reddit
They're technically always important, but when you're looking to make the jump from Mid level to Senior they start really mattering.
The big sign that someone is ready to make the jump to senior is that they can tackle things independently, part of that is being able to communicate efficiently
AManHere@reddit
Immediately.
TinStingray@reddit
From day one. Seriously. To quote Martin Fowler:
Software engineering is communication. The computer doing what you intended is step zero. It's easy. It's not the bulk of the job. Everything beyond that is the software engineering, balancing all the various concerns and communicating them*, ideally implicitly but sometimes explicitly.
This is all even before you get to stakeholders and buy-in and confidence and explaining things to people and mentorship and all the things you might traditionally think of as the "communication" part of the job.
Writing good code is writing it in such away that your mental model of the system transfers to others as seamlessly and accurately as possible. The "other people" includes you in a year or two or ten, long after you've forgotten all the concerns you were holding in your head at the time.
subourbonite01@reddit
Successful engineers and architects know how to communicate effectively by adapting the content and message to their audience; you are the “integrator” - the one who puts it all together and makes something real from everyone else’s conflicting (and sometimes impossible) demands. Communication skills, especially the ability to tailor highly technical information and constraints to both non-technical and technical peers, are literally the most important skill you possess.
The tech skills are almost a given - you aren’t going to last long without them, no matter where you are in your career. The ability to synthesize and explain is what allows you to scale your impact beyond a traditional IC, and that’s what companies pay for, especially at the upper IC tiers.
single_plum_floating@reddit
From the first group project in university.
so day -1200
Main-Drag-4975@reddit
Soft skills aside, every dev project needs a minimum of one competent programmer. Even that person will be vastly more effective when they invest in soft skills and relationships.
NaBrO-Barium@reddit
Most of the problems you encounter in life are due to a breakdown in communication between disparate groups. <— full stop
flavius-as@reddit
Protocol per month your time for communication vs other time, and gradually adjust that percentage until you hear complaints from your manager.
Do a binary search until you find your percentage.
That is the answer to your question, and it's manager and organization specific.
ForeverYonge@reddit
Now that routine low level coding can be done by AI, communication skills are absolutely crucial.
shill_420@reddit
everyone can agree "communication skills are important".
it's a big topic with a lot of nuance.
i think some of the things you mentioned are extremely important, others are completely out of anyone's individual control.
no one person can "keep a discussion productive" for example.
Frolo_NA@reddit
from the first job interview
ilyas-inthe-cloud@reddit
It starts mattering on day one. It just becomes impossible to ignore around senior and staff because the job shifts from "I can solve this" to "I can get 5 groups moving in the same direction without drama."
I've seen technically strong engineers stall not because they were weak, but because nobody could predict them. Quiet is fine. Opaque is not. If people don't know your tradeoffs, risks, and intent, your impact gets discounted.
The good news is this is learnable. Clear status updates, writing decisions down, and saying "here's the tradeoff I'd make and why" buys a lot more trust than trying to sound polished.
Mindless-Pilot-Chef@reddit
Day 1
rescue_inhaler_4life@reddit
Quite literally core skill of all engineers.
Savings-Giraffe-4007@reddit
Ffrom the start. Being an ass puts you at the top of the "easy to fire" list, and then it just depends on what "strategic shifts" your company does and when.
The exception is if you've been with the company from the start and reached "architect" level or something, and you leaving means too much knowledge leaving, specially in legacy codebases still making money.
hockey3331@reddit
When I got promoted early in my career my boss told me a big part of the reason he did was because how positive I was and how much people seemed to like working with me.
MVanderloo@reddit
It took me two years into my career to fully grasp how important communication is. It would have done me a lot of favors to realize it quicker than I did.
Sometimes I obsess on tracking down the root cause of things that have gone wrong, and once you are passed the basic skill issues it is almost always communication issues
zugzwangister@reddit
It starts becoming important when there is one other person on your team.
Communication paths between nodes (developers) increase faster than the number of developers.
The biggest issue with offshoring development isn't the competency of the offshore team. It's communication.
tr14l@reddit
When you hit senior 50-50 importance. That'll determine whether to ever get promoted again after senior. You can get senior by just being technically capable.. or honestly, just consistent work.
After that, you're competing. It's not "oh he's been here awhile, he deserves it" anymore beyond that. Your mindset needs to shift to actively aiming and striding toward goals. If you continue to operate business as usual and think continuing to do the same thing will get you there, you're completely wrong.
Senior is the last title most people ever get because they don't understand being a good engineer is table stakes beyond that. It's not a competing factor. They're all good engineers. But they are good engineers that can talk to business people. Understand stakeholders. Can consider larger situations with the needs of the business in mind. Can train others. Know enough project management, product management, personnel management, architecture, organizational skills, process design, documentation standards, etc that if someone suddenly gets fired/quits/dies, they are the person everyone begs to keep the ship floating... And they do. Maybe not optimally. But long enough to get someone in the door.
If you're not that guy, you're not staff material. And if you can't be that person, you never will be
Maybe at some startups or something when they hand out titles. But you better stay there. Taking a staff title at a bigger company will put you immediately under water.
Basically, you should be adaptable enough to swim in whatever liquid you find yourself in and pull others with you.
Principal means you can build a raft while doing it.
yes-im-hiring-2025@reddit
I think when you start calling out problems where it intuitively feels like someone's missing the forest for the trees. When you have enough technical ability as well as organizational context of why things are the way they are -- communication is the much more valuable ability.
I see this pattern with my TL a fair bit. He's a solid engineer and is working towards staff this/next cycle. If I had to put it directly, he intuits the pulse of "why not" organizationally across teams that work on the project quite well.
He gets what will cause an issue as a matter of process, or what can get delayed, or what is truly not a problem to focus on even if it's part of the roadmap. He's much more effective than the other senior engineers on the team when it comes to this. I see his value in more how much work he stops or rearranges from teams taking on, apart from him owning complex features that require org context to deliver.
Bricktop72@reddit
At the job interview.
Jmc_da_boss@reddit
From day 1 as an intern
A-Pseudo-Random-User@reddit
Immediately.
kevinossia@reddit
Literally always.
throwaway_0x90@reddit
The more you're promoted, your communication skill are exponentially more important than writing lines of code.
compute_fail_24@reddit
Let’s just say I am promoting my colleagues that communicate well and not wanting to work with those who don’t
Western-Image7125@reddit
Absolutely from day one. The only reason we think it doesn’t matter during our early career is because there’s constantly someone else doing the communication for us
allknowinguser@reddit
Man I’ve worked with engineers who could not code to save their lives. But they knew how to talk about themselves and somehow got others to listen. Unfortunately it’s from day one.
GoodishCoder@reddit
It always matters but it really starts to make a big difference by the time you become senior. When you get to tech lead it matters more than engineering skills.
CriticalArugula7870@reddit
Now.
It will only get more important as we transition into managing ai agents
Powerful_Pickle8694@reddit
It always matters lol