The search process took some time, but we’re glad to finally have Sarvani on board as our web developer and the 6th member of our team. Here are some thoughts learned during the developer interview and search process.
Always Be Recruiting
Extending Mark Suster’s Always Be Recruiting tip, exhaust all possible sources of candidates. When we first hired our Lead Developer, we scoured job boards, partnered with recruitment agencies, sought referrals and even our extended invites to our own userbase. This time around, besides doing job boards, we attended school job fairs, tried Hirelite, and sent invites to CS mailing lists of local universities such NYU, Columbia, Polytech and YU. We’ve gotten much better SNR and feedback at the university front. It also helps to be ‘visible’ on campuses you recruit in — Sarvani mentioned that some of her classmates recalled my presentation at the ITP course last Fall semester for our mobile app prototype project.
Programming, database, debugging
Most of my programming questions are phrased with “implement in your favorite programming language”. During the actual interview, talk about pseudocode/algorithm on how to solve the problem. For some questions, the programming language is irrelevant – what’s more important is how sound the solution is.
It’s also trivial to recite programming concepts, so it’s best to test, at the minimum, in pen-and-paper coding. Drill down on applicants’ answers when they recite “parse”, “search”, “optimize”. I almost always say, ‘here’s pen and paper, show me how to parse/search/optimize’ (syntax doesn’t have to be perfect).
For database, look for someone who knows or has actually designed a real-world database – not just in class or not just via phpMyAdmin. Obviously not enough that you know how to do SELECTs or create simple tables so I always make it a point to ask db questions from design, complex query and optimization levels.
Pay close attention to how one debugs and solves problems. It’s also good to ask for their own debug war stories. Smart developers (and people in general) would be happy and proud to share their solutions to the trickiest problems they’ve encountered. This is better than asking “What would you do in this situation…” questions. If you choose the latter route, they can fake their answers and use canned responses. Plus, there really is no way to accurately verify that that’s really how they’d react in that (or any) given situation.
…are great but I think of them as novelty. Sure, it does help if they can solve them, but that doesn’t necessarily translate to real-life coding, trouble-shooting and logic skills. So, caveat emptor.
The take-home assignment
It’s close to impossible to gauge programming skills during an interview. Even if you provide ample time, other factors (their editors, dev environment, etc) prevent a candidate to code at their best. The take-home programming assignment tests creativity, speed of development, ability to understand specs and follow instructions, and show further interest in the opportunity. Those who are really interested and keen submit great solutions in time. Others just give up.
Show me your passion
Some of the programming specs (hey, we’re a startup. what specs? :)) are intentionally vague. A sharp candidate will ask questions and insist on more data or further explanation. Even with set parameters, outstanding candidates will go beyond the specs, question how the problem is stated, suggest ways on how to best solve the problems, etc… These are obvious pluses. When faced with a simple parsing programming exercise based on states, Sarvani created a daemon that detects for real-time changes. Hired!
Sell the challenges
Note the interesting challenges and projects you are working on. Talk about your plans, and then gather feedback. Candidates will provide opinion, suggestions or comments that reflect their interest. In short, sell to applicants that this job is interesting, challenging, and rewarding for his/her dev career.
With these insights, we march on to our search for another developer. Drop us a line at firstname.lastname@example.org, share with friends or let me know if you’re interested to learn more about tech jobs at JWed.