Five Signs of an Undervalued Software Developer
I’ve been interviewing for a while now and right after my first session of interviews with some candidates, I came to an epiphany, I’m doing this all wrong.
I decided to map out my desired skill set.
Some of them are “soft” skills that can be seen in an interview, and some are technical that can be tested or sometimes even asked in an interview. I’m here to share my thoughts on what is a good developer in my eyes. Keep in mind, these are my thoughts, it can be subjective.
Neil deGrasse Tyson said: “Passion is what gets you through the hardest times”, I can’t agree more. Sometimes we get to the hard times in our job, the times where we feel like we’re working on auto-pilot. That’s where you need passion, you need the fire to find the tiniest joy in everything you do.
You’re looking for the one that “kicks” the comfort zone aside, is passionate to work and to learn new things, passionate for every little part of the job (even CSS).
To understand if our candidate has passion, try focusing on “Why” and not “How”. Let me reference Simon Sinek in his Ted talk on a different subject: “Every single person on the planet knows what they do, some know how they do it, but very few people know why they do it”. The person who searches for the “Why” behind the “What”, has the passion. Ask “Why does React hooks work the way they do?” rather than “What is React hooks?”, “Why did you start programming?”. The one who has passion will search for the why, and not settle on the how or the what.
Self learning is a great skill and mastering it takes time, sometimes a lot of time. If you find that self learner, who can take a dive into something he has never seen and deliver a solution without even asking, you’ve found yourself a treasure. Self learning is usually in direct correspondence to being independent, that’s also a skill we’re looking for.
To understand if our candidate is a self learner, try asking “Tell me of something you’ve learnt and loved” and try going deeper with that question by asking “How did you learn it?”. This skill can also be tested in a technical test.
As developers usually don’t work alone but as a part of a full eco-system (Front, Server, QA, Product, Devops and many more) he must have decent social skills. That’s even a must when it comes to team work. Not saying that a developer can’t be a good developer without decent social skills, but we’re looking for the full package.
Figuring out if the candidate has the social skills we’re looking for might be tricky since we’re not seeing him in his neutral environment. The interview can be a good place to start and look for it. If you see the potential, then a follow up meeting with the wider team can be a good way to see how the person fits in.
Sees the whole picture
We don’t want the one that only sees what he’s doing, we’re looking for the one that sees the “whole picture”. The one that understands that if he changes his code there will be side affects. Lets take an example of a backend developer changing an endpoint to return null instead of empty array when there’s no data, this can cause some bugs on the client side. Responsibility is the key. We’re looking for someone who will be responsible and not only for the code he writes but also feel responsible for the whole app.
To see if our candidate has what it takes, look for responsibility between his words, see if he says “I took the decision”, “It was my responsibility”. Try asking “Tell me of things you’ve did and didn’t go well” and see if he takes responsibility or ditches it aside.
That’s my favorite one. It can get tricky because we’re not looking for the one that will cause a headache, but we do want a productive dialogue within our team. If we will get to the point where a developer has a task and you suggest a solution that he doesn’t like and he still doesn’t say anything and just goes on and do it, that’s a big problem.
This one is pretty hard to figure since no one will argue with you in a job interview, a good talk about a technical issue might help you with it. Try seeking something the candidate did and they took ownership of, give him the opposite opinion, see if his opinion is firm.
Experienced developer !== Good developer
The use of strict equality here is on purpose. An experienced developer doesn’t have to be a good developer, he can be.
Don’t disqualify a developer because he doesn’t have enough experience.
We all get to see jobs with high experience requirements, some are even fictional for an example “At least 7 years React experience” — Come on, the framework was open-sourced in 2013.
What does this experience even mean? A developer can sit for years and work on a specific feature or worst, just sit and do nothing. We want the one that can learn and progress with the technology and not stay behind with his valuable “X Years of experience in jQuery”.
Summing it up
I’ve mentioned a few soft skills and some more skills and how we can look for them.
Mastering job interviewing is pretty hard but can be a valuable skill for us.
Interviewing isn’t a nice situation for an interviewee, try making him feel comfortable, both sides will benefit from that.
The main point is that you’ll need to read behind the answers or the stories. Try looking for a reason rather than an explanation, see what drives your candidate, what he likes, what he’s proud of, keep in mind that this is the interviewee’s stage and not yours.
With all these, I believe you’re set to go.
Feel free to ask me any question, I'm available on twitter.
Hope you enjoyed!