13
30 Comments

How to verify that someone is a good developer?

Hi fellow IndieHackers,

For our company, we are and have been onboarding new software developers for several years now.

However, I find it very difficult to determine and verify somebody's skill level within 2 or 3 interviews.

Why I care?
In the past, we encountered issues where we thought the developer was on a higher level than turned out. This cost us a lot of resources in terms of both time and money.

So, my question:
How to verify that someone is a good developer?

  • Are you looking at certificates?
  • Do you call former employers?
  • Do you conduct a coding interview?

I can really use some hands-on tips and I am really curious about your experience with this 'problem'.

Thanks for taking the time, it's really appreciated!

  1. 9

    I hire contractors and not full time employees, so it may be a little different, but, the method that worked very well for me is to put in some time to create a small project which uses the same technologies to the ones the candidate will be working on. Then, I assign a well defined task and let them write code for this project, and maybe sneak in a problem or two to see how they deal with it.

    For me, a good developer would be one who will:

    • take the time to understand the task well and ask the right questions
    • pay attention to the guidelines and small details
    • write code which is consistent with the existing code
    • research/google to solve the problems independently
    • show effort in delivering clean and working results

    I think letting a candidate write code is absolutely a must. I pay for the work they do on this demo project and only give these tasks after initial screening but I find that it's money well spent.

    1. 1

      Thanks for the suggestion! Perhaps the main issue with this method is that full-time employees are not as dedicated as contractors. Not to downplay but in general, I feel that developers are getting a bit spoiled because of the huge demand. Therefore they no longer have the dedication or drive to put effort into an example task. Definitely worth trying though, thanks!

    2. 1

      What platform you use to hire contractors for development?

      1. 1

        I use upwork, it takes a lot of screening but once I find someone good it's worth it. The most common problem is with accounts that pretend to not be an agency but then try to delegate the actual work to someone else. I try to automate the screening process as much as possible to help with that.

        I'm working with the same developer several years now and he's excellent.

  2. 2

    Instead of a coding interview, I prefer to look at their past work and then assign a small coding exercise/demo project to the candidate. It is usually related to the technologies I am hiring for.

    It always works best to evaluate a candidate's skills and experience.

    1. 1

      Thanks! Do you create your own coding exercises/demo projects or are you using existing resources?

      1. 1

        Mostly my own, based on the skills I am looking for.

  3. 2

    Hi Thomas, I dont work for or am affiliated but I saw this in an ad and wanted to share it with you.
    https://www.algoexpert.io/
    Hope it helps!

    1. 1

      This looks very useful, thank you very much!

  4. 2

    Interesting post. To put it briefly.

    1. Hire someone who charge you after job is done and you are happy.
    2. Make sure that hire freelancer or company will not leave you alone after project (website is done)
    3. Hire someone who will be able to answer for all your quastion and translate them for human language
    4. Hire someone who can have at least two samples of previous jobs and can contact you with customers for references.
    5. Do not be affraid of small companies or freelancers. Most of them have years, raech experience and they decided to work out of organsiations.
    6. Do not hire expensive company with hughe portfolio. They charge a lot for the same final effects just because they have portfolio.
    7. Always hire someone who can provide you SEO service. No SEO is equel your website will be nearly useless.
    8. Hire someone who can advice you in relation to keywords and contet frames.
    1. 1

      Thanks for your contribution! I think these are helpful tips if you're considering hiring a freelancer or an external company. However, I was mainly looking for tips to evaluate full-time candidates. Nevertheless, this will definitely help others!

  5. 2

    There's a lot of randomness in developers ability (even for the same developer over different time periods) no interview process will tell you if they can/will do the job you want.
    You'll have to let people go after giving them a fair shot - there will be false negatives here.

    As a manager you need to control what you can, which is control the working environment, give people as much "autonomy, mastery and purpose" as you can. Give people the ability to get experience they can't get at other companies. (It has to be real, they'll see through fakery before the job is finished) - Disengaged employees are commonly mistaken for 'bad' employees.

    It is unfortunately very common for small companies to take their top developers for granted, despite kind of knowing they will be screwed when they leave (or give up trying which is worse).

    If more than 50% of experienced developers aren't vaguely working out, it's likely an issue with your environment. (hiring tons of inexperienced graduates is another option, but more expensive - you need 4x)

    1. 1

      Thank you very much! This describes our situation quite well. We have plenty of junior/medior developers, but only a handful of seniors. Obviously, if we lose one of our seniors, the pain will be worse than when losing a junior. However, we are very eager to create a good environment for everybody, so we can never completely blame that.

  6. 2

    The real answer is to hire a very experienced developer and let them handle the process (or at least get their take.) A good engineer can usually sus out in the first 5-15 minutes of a conversation whether someone is good or not. This changes as you look for higher talent, obviously. At that point, you're essentially forced to do what FANG companies do and use algo/data structure challenges to gauge IQ (since thats what they are masquerading as)

    The coding challenges/take-homes are usually nonsense. Great devs are not desperate and won't commit to a 6-hour take-home, they have offered out the waazooo. The junior on the other hand will spend an extra few hours on that take-home because they lack experience/references. The best devs I know usually charge $150+/hr to participate in coding challenges. To prove this, try asking a senior eng at Netflix to take your 4-8 hr coding challenge and watch their response.

    Cert's are only really relevant for specific positions (DevOps and security is where I've seen them)

    1. 2

      Actually I can’t agree with you. Multiple certifications or 10 years experience doesn’t make you a senior developer and that’s difference. If you believe you can skip recruitment process because you are working in Netflix that’s says about you a lot. People won’t spend 4-8 hours coding something is caused mostly by position those kind of developers have right now. I believe most of them don’t want to change work and aren’t committed to the case. There is a lot of work available with good salary, they can find easy path. Try to give senior developer interesting project and he will spend 8 hours coding your exercise to show you that he is the guy. Just make him want working with you :)

      Of course I agree that experienced guy should be able to build his team and can easily reject someone after a few minutes of talking :)

      One more thing - as you said great devs are not desperate! That’s the point.

      1. 1

        Totally off, in my experience. Your company isn't cool, which is the reality. Otherwise, people would work for you for free. There is a reason why a senior at netflix can start a company and have hundreds of VC's at his door. I don't work at a "known" company, and I still receive 2-3 linkedin messages a day from headhunters. We've hired a few coinbase engineers and they laughed at a take-home. On the other hand, our devs from overseas will walk through lava to even be noticed. The quality difference between these two groups is astonishing.

        1. 2

          To add to this: when looking for a new job, I usually get 3-4 offers in the $150k+ range without doing any long-form technical assessment (take-homes, live challenges, etc), why would I spend 8 unpaid hours on a take-home challenge for something in the same price range?

          It could be the most exciting project of all time. I'd rather cash a cheque and feed my family

          EDIT: I forgot to address your first point. You will be hard-pressed to find a DevOps expert with 0 AWS certs (when working with an AWS stack) and perhaps even harder pressed finding a qualified pen-tester without an OSCP (the gold standard the last time I was in that industry)

          1. 1

            That is exactly what I am talking about. You needs to want working in that company, then believe me you would spend even 15 hours because why not? You can always take one of four offers without take-home after that :) it’s all about ambitions and loving what you do.
            I hope you don’t took it personally, my point was that you always can find the guy and validate what he is saying giving him a task - it’s save solution not easy one

            1. 2

              Oh sorry, I may be coming off a bit condescending. I get your point of view (disagree) but I definitely see where you're coming from. I think its much harder to find the guy that truly "cares" than to just pay for talent. But , you may be right in saying that finding that enigma may be the best option

  7. 1

    I was in the interview panel for Mindtree/Aztec and I compiled Object Oriented Programming and Java interview questions for them. This was 10 years ago, I heard they are still using it. I also trained interviewers how to phrase technical questions.

    This is how I take a interview (for a experienced dev),
    1- Find if the candidate has a good understanding about core language features. ex:- method-overridding, inheritance, what is the meaning of private data, singleton, what are design patterns used for.
    2- Is the candidate using and aware of general development tools and practices, ex:- unittests, git-merge..?
    3- How upto date are they with the current trend, AWS cloud, Dockers containers, serverless.

    (I don't take any definitions as answers, because they are just memorized wikipedia answers). I will ask them to explain why we need a concept like method-overriding and where we can use them. I ask questions like if we can live without Interfaces concepts? How threads or subprocess behave and internally work.

    The biggest problem with general questions is that candidates can easily give answers from books. So we need to ask the question in a tricky way to understand if they really know the concepts well. For example Method-Overriding in OOP, you can give a few examples and shuffle and ask why them to explain what is wrong with other options.

  8. 1

    I didn't get a point, sorry. Here is what Google advice include interview question
    https://developers.google.com/search/docs/beginner/do-i-need-seo

  9. 1

    alex_ has some excellent tips, especially the part about good developers asking good questions and paying attention to details. Bad developers will get the bare minimum understanding of the task and want to get started coding as soon as possible. Good developers will typically try to understand more about your intentions behind the project and how their work on this project fits into your company goals.

    If you:

    1. go the route of evaluating them based on a small paid project (highly recommended)
    2. are working on software with a user-facing component e.g. a mobile app or website, and
    3. are willing to get into the weeds a bit on how to evaluate them

    It's worth spending some time getting some background on UX principles and performance auditing tools. Knowing that a piece of software was built with a solid UX and an eye towards performance will give you a LOT of confidence that the person is solid. It's a good amount of work getting up to speed on these topics, but definitely easier than learning how to assess their code quality, and it sounds like it might be worthwhile given how big a problem you described this to be.

    Lastly, if you have the budget, there are tools like https://www.woventeams.com/ that will run technical screens for you. I can't speak to how well the matching process is but I took the technical assessment for a company once and I felt it was a fair assessment.

    Good luck, this is a brutal problem for most non-technical founders, and it's a non-trivial problem even for larger companies with a full technical staff. If you can find a single developer you trust, make sure to keep them in your orbit around to help assess other developers!

    1. 1

      Thanks for the great insight! I totally agree that it's worth spending time to better evaluate their work and the principles behind it.

      The prices of Woven are extremely high. Of course, it has great value, but with a technical team already on board, it would be a shame to require an external assessment provider. However, for non-technical companies planning their first technical hires, this would be a great solution!

  10. 1

    Give him a job, check how he does it.

    1. 1

      You can't return damaged packages ;)

  11. 0

    Just go through their work what they have done

  12. -1

    This comment has been voted down. Click to show.

  13. 1

    This comment was deleted a year ago.

Trending on Indie Hackers
How I grew a side project to 100k Unique Visitors in 7 days with 0 audience 47 comments Competing with Product Hunt: a month later 33 comments Why do you hate marketing? 27 comments $15k revenues in <4 months as a solopreneur 14 comments Use Your Product 13 comments How I Launched FrontendEase 13 comments