I’m seeing more and more software engineers frustrated with recruiters asking them to do coding exercises – asking why they should do them when their CV goes back 15-20 years. I get it – seems OTT sometimes.
It’s not the recruiter asking you to complete it – it’s their client. If we had it our way, there wouldn’t be a coding test.
Unfortunately though, it’s not 2001 anymore and we can’t fax a Java developers CV over to Goldman Sachs, you start the next day and we’re already in the suit shop spending our commission.
Most companies want to see some code and there’s an under-lying aspect of your attitude too. Talent acquisition / HR and the hiring managers will often say ‘well, everybody else has managed to do it, so if this person doesn’t then they won’t be considered unfortunately’.
Take a step back and try and have a bit of empathy here for the business who are trying to find their star software developer. If you’ve got 100 applications/CVs to go through, one of the only ways you can really sift through and find the person you’re looking for, is to see some code, right? If you were hiring and it was your budget on the line, you’d probably do the same.
A good challenge should generally reflect the companies tech stack, to see how you work / would cope with it.
Also – a good company (or, a sensible one), should have a coding challenge that they’ve created themselves or have set up in hackerank that is about 2-3 hours long. There are some challenges (I’ve heard) from the tech giants, that are 8 hours+ long, that go over computer science fundamentals that you’d never use at work. I agree with candidates here – its too much, plus it shouldn’t take 8 hours of your code at home to figure out whether you can do the job.
Here’s a few tips;
1) If you really don’t like coding challenges, you may want to pursue roles in start-ups, small companies or roles from referrals at meetups. Your larger product/tech firms will all ask you to complete their coding exercise..
2) Try and keep your github up to date. I have placed developers before, where a mature chat was had, timescales weren’t on our side and the developer had enough code on their github for the CTO to check out and run a white-boarding session on.
3) Take some time and figure out which job you really want and apply for 1, maybe 2 roles. If you go throwing your hat into the ring for 5 different roles – that’s 5 coding challenges you might be doing and by that point you’ll be over it, or probably getting an offer elsewhere.
4) When completing the challenge, your best bet is to set aside some time on a Saturday or Sunday afternoon, complete most of it and then go back on Monday or Tuesday and re-visit it – make sure its well documented, there are test cases, etc.
5) Don’t over-engineer things or try to use every piece of technology you see in the job description. Just because the ‘Senior .Net role with AWS, Docker, Microservices & Lambda’ has that tech in the role, you dont need to implement them and you should certainly only do so if you can execute properly. Often, as long as it runs/works, things are documented well, is enough. The code will generally be a talking point in your final round / last face to face interview.
6) Call the shots – if you don’t have enough time and couldn’t complete things, or, there was something you weren’t sure of – email your recruiter and tell them what you would have done differently or done more of, if you had the time. Whatever you submit – the person looking at it will assume that’s your best effort..
Hopefully this has added some value? Drop me a line if you’d like to chat around this.. firstname.lastname@example.org