I go to a lot of networking events where non-technical people have an idea, but they don’t have the technical know-how to build it themselves. They want to hire a CTO or a developer, but they don’t know how to evaluate their skills.
I am going to provide some ways you can vet these people. None of these methods will be perfect because the best way to vet a software engineer is to work with them. But it can make you more confident in your decision.
Check out their GitHub account and see if they’re active. If you’re unfamiliar, GitHub is a place for developers to work on open source software. By default, the code a developer works on will be publicly available.
If they are successfully contributing to popular projects, it means they know how to collaborate and they are considered to be competent by their peers. If you see any activity there, that alone makes the developer better than average. It shows that they are passionate enough about what they do to want to do it in their free time.
There can be many valid reasons why a developer does not have a GitHub account so you can’t use this to identify a bad developer. It can only be used to identify a good one.
There are alternatives to GitHub that in this context can be considered synonymous. For example, BitBucket, Google Code, SourceForge, etc.
StackOverflow is a website where you get points for asking and answering questions. These questions and answers are voted on by other developers. You get 5 points when someone thinks you asked a good question and 10 points when someone thinks you answered a question well. You can trust that if someone has a lot of points, their peers think they are good.
That said, your typical software engineer will think of StackOverflow as a tool to use to get answers, so they may not spend much time contributing to it themselves. That’s why, just like GitHub, a great developer may not be active on StackOverflow. But, if someone has a lot of points on StackOverflow, you can trust that they are competent.
For what it’s worth, here’s my StackOverflow account:
They have programming heroes
If you ask a candidate which famous programmers they look up to, they should be able to give you some names and why they look up to them. Don’t accept answers like, “my professor in college” or “John, from the last company I worked at”. There’s nothing wrong with these answers, but you can’t verify them as credible. You should be hearing a name like Martin Fowler, Robert “Uncle Bob” Martin, Kent Beck, Joshua Bloch, Joe Armstrong, and so on. These are famous programmers that have done amazing things in their career.
Now, of course, you can’t be expected to know who these people are, but you should expect it of your candidate. If they can’t name anyone, that suggests they really haven’t put much effort into improving their skills. As a programmer, you practically you run into these names by accident while learning how to improve yourself. To put it another way, you’d expect a physicist to know of Einstein’s work. If they didn’t know of him, it might be a red flag.
Write down the names and google them later. If they are well known, that’s a very good sign.
They listen to programming podcasts
If a programmer listens to programming podcasts, you can tell they are passionate about what they do. When you listen to a podcast, you are doing that instead of watching a TV show, listening to music, and other forms of entertainment. It’s not easy to fake that kind of enthusiasm.
There’s also a lot of benefits to working with a programmer who does this. They likely know about new an emerging technologies that others may not be aware of. Knowing what’s currently popular in the field can pay off in unexpected ways.
They have recently purchased and read a technical book
Just like the other examples, this all has to do with showing enthusiasm for a career choice. It’s one thing to have your past boss purchase a book for the company in general, but it’s another thing if a programmer goes out and buys one on their own. That shows that they want to learn a programming topic that may not be directly relevant to what they’re doing at work, but they still care enough about it to learn it in their free time.
Some good programmers may not read books. They may learn everything online. That is an adequate substitution.
Hopefully these suggestions will help you vet a candidate you’re considering working with. If they satisfy some or all of these requirements, their skills will probably meet your expectations.
Make no mistake: The best way to vet a candidate is to work with them for a while and see how they turn out. But this will cost you a lot of time that you may not be able to afford. The second best way to vet a candidate is with a technical interview. But if you aren’t capable of giving a technical interview, then this is the best way I can think of to assess someone’s technical skills.