When recruiters and hiring managers evaluate you for a software development position, you absolutely need technical skills, particularly programming languages. But candidates shouldn’t overlook the importance of soft skills such as communication, teamwork and empathy. With great soft skills, you can rapidly advance in your career, whether you decide to remain a specialist or ascend onto a management track.
While the definition of “soft skills” is a little loose, it generally encompasses the following:
- Teamwork
- Problem-solving
- Leadership
- Time management
- Stress management
- Organizational skills
- Creativity
- Being resourceful
- Critical thinking
- Decision-making
If you have all of those, you should probably be the CEO of the company! But there are other soft skills that can prove handy to have… and may help you to succeed in getting a job.
Relationship Building
This is probably the most important soft skill you can have. Every job interview tries to gauge if you'll be a good fit for the team. When you're being asked technical questions, not only are you being assessed on your technical ability, but the interviewer is getting a feel for how you interact and respond, especially to unexpected events. Will you mesh successfully with your future colleagues? Will you start contributing in a meaningful way from day one?
The importance of relationship-building is a reason why larger tech firms like to subject candidates to “interview panels,” where they’ll face a selection of interviewers from across the company (with programmers, managers and maybe a higher-up or someone from HR). They're all assessing you from different angles, determining if you’ll interact well with their particular needs and wants.
(Funny side story: Despite getting on well with programmers and managers, I didn't get a programming job at Enron because the HR person didn't like a one-year gap on my CV when I was unemployed. Enron went bust a few months later anyway!)
Communication
Communication is important; if you can't communicate, it’s going to be a short job interview. But communicating is more than just talking—for many tech pros, it’s also about boiling down a complicated issue to its essentials for people who don’t have a technical background. Can you explain what you do to people who aren’t as technically savvy as you?
When I interviewed for my current job, I'd prepared a one-minute video showcasing software I'd previously written and took along a laptop to show the video. I also brought some listings of formatted source code that I'd written to give something to talk about.
The second interview required a ten-minute talk to a room full of people. It could be on any subject. I created a PowerPoint presentation showing photos from a cruise to the Arctic Island of Svalbard where I'd been a couple of years earlier. It's the only job interview where I've ever had to do this, but apparently all their staff each had to give a presentation.
You don’t have to go to those lengths during your own job interview, but you should be able to explain your previous projects, your current skill-set, and the value you potentially contribute in ways that pretty much anyone can understand. Try it out on friends and family before your interview: do they grasp what you’re sharing with them?
Grit
Some programming problems are not always easy to fix or even replicate. Once you've replicated a problem, its half-solved; but if you can't replicate it, you potentially have a huge issue. You end up spending a lot of time searching on the web, consulting Stack Overflow, asking other developers for advice, and so on.
It’s a similar thing with big projects: you’ll inevitably run into a difficult challenge that’ll require you to spend long hours and stretch your skill-set. It’s not always fun (in fact, it’s often quite grinding), but tech pros who last in their careers know that the only solution is to power through as hard as they can.
Productivity
This one has become more relevant since the lockdowns began in 2020 with many people working from home. Is your employer deliberately monitoring you through software, recording screenshots, taking photos of you, measuring clicks and keys per hour? Can they tell if you’re watching Netflix or diligently working?
That's not the only way to measure your productivity. Closing bugs on JIRA, for example, gives an idea of your utilization, especially when you have to account for the time you spent. Tech pros aren’t necessarily working every moment of the day, but they know how to get things done… on time and within budget, hopefully.
Detail-Oriented
You can’t be a developer at any company these days and not use both VCS and bug tracking (a VCS (Version Control System) holds all code in a central repository; software developers can then work on the same codebase at the same time without treading on each other’s toes). It’s more important that you know the general VCS principles (committing code, tracking changes, branching etc.) rather than have expert knowledge of the VCS itself (whether it’s Subversion, Perforce, TFS, Fossil or, increasingly these days, Git).
There are many bug tracking systems such as Bugzilla or Jira and all allow bugs to be reported, tracked and worked on. That’s in addition to all the other systems and apps that developers and engineers must utilize throughout their day. The only way to effectively integrate all of these into your workflow is to exhibit a high degree of diligence; if you’re not detail-oriented, it’ll prove that much harder to be an effective team member.
Conclusion: Be Prepared
Job interviews are a battle and you need every weapon to succeed. Soft skills can help you stand out. Before heading into any interview, make sure to rehearse a few stories of how you’ve used skills such as communication to help your previous employers and teams achieve their goals and overcome challenges; by deploying these stories strategically throughout the interview, you’ll show that you have what you need to integrate effectively with virtually any team.