About a year ago I was asked to apply to work at a startup here in Brisbane. I’ve never really been that keen on the idea of working for a startup as I prefer stability over exhilaration, I’m not looking for rapid promotion and I don’t really care for the speculative wealth that startup employee stock options provide – but I was curious about the job as it was working with a well-respected person I’d known for a while so I went ahead with an interview.
Little did I know that it would be a coding technical interview – where candidates – testers included – connect to a web session where a blank IDE is opened and you’re given a problem verbally and you need to write code to solve it on the spot.
I can’t remember the exact problem(s) but they were something like writing a way to reverse strings, do custom sorts and some fairly complex coding problems.
The interview was like fuel on my burning imposter syndrome fire and the next six months of my life was spent ruminating and questioning whether I could even do my job as a technical QA.
This was despite the facts I highlighted when applying for the job:
- I have 16 public GitHub code repositories including 7 in JavaScipt, 4 in Ruby and 1 in C#
- I’ve been writing this blog since 2006 and have shared numerous code samples across years of blogging.
- I successfully completed a 3 month trial to work at Automattic/WordPress.com during which I built the foundation for the first ever automated e2e test suite to be successful at WordPress.com
I’d suggest to startups considering to do technical on-the-spot coding examinations whether these are absolutely necessary considering the candidate and knowing that people may not perform well in that situation.
Whilst I raised this feedback after the interview and I could have actually progressed along (despite flunking the coding exercises) I decided I didn’t want to work somewhere that would do that to potential employees. I’ve never had to sit next to someone in my working career and have them watch every keystroke I made writing code from scratch. Instead I’ve worked at great places that have measured me by my great outputs (thoughts/code/prose), and outcomes (software quality) without worrying about how I generate those.
I noticed the person who asked me to apply left the startup a few months after my interview anyway 🙃
Aside: perhaps the diagram above may also explain how some people, including myself, don’t like pair-programming as the main way of delivering code?