Richard Bucker

Interview Problems *sigh*

Posted at — Jan 8, 2012

[update 2012-01-10] Braintree does it too. While they list some attributes that they look for in their code reviews it’s subjective. The interpretation of the results do not appear to be based on any science but probably intuition.[update 2012-01-08] ** additional note at the end.[update 2012-01-08] I was in such a hurry to get out of the house today that I forgot to add this little tidbit. [Top software dev job boards ~ Max Masnick]. One of the interesting services that Montana links to is something called InterviewStreet. I have no idea what it really is but Montana says “connects you with jobs if you can solve programming problems on their website.” So after you spend all of that time customizing your resume, cover letter, making sure that your GitHub contributions are top notch… you now have to take a quiz so that maybe someone is going to notice you and give you a phone screen. And just maybe if you know whether to wear boxers or briefs you might actually get a face to face interview. But that’s when I almost missed Drew Inglis' comments [Three ways to improve your InterviewStreet CodeSprint solution | Drew Inglis]. Apparently he’s going to give the reader 3 ways in which the evaluator is going to give the candidate extra points… which is tantamount to taking an SAT prep course. The only difference is that the SAT is created by professional test makers and the quiz of the day is not.I recently wrote an article talking about the interview coding question… something that [seems to be] common in most Silicon Valley startups. I suppose it would be interesting to know what the exact origin of this sort of interview structure is/was … but for me this might be unprecedented in the history of employment other than some of the performance arts. (besides maybe the WPM test for people in the secretarial pool)For example you would normally ask actors or musicians to audition. First and foremost you’re looking for some raw talent and then you need to see how they fit into the ensemble. Somewhere in the audition the director is looking for improvisation skills (it’s common to forget lines among other things) and some idea how well they are going to do with a new script and possible changes. (memorization). This is my basic understanding from when I performed in college rep. I’m certain that Broadway is much more complicated.Conversely there are other professions where one is likely not to be asked a coding type of question. While I do not have specific knowledge but I can imagine that the chief of surgery is not asking a veteran surgeon how to tie a knot or how to remove an appendix. And while patients might ask for a second opinion when it comes to diagnosis I’m also very certain that the question about how to tie a knot is not going to come up.At some point in a persons professional career one is expected to be on top of the historical aspects and the current events. And quizzing that person directly as apposed to indirectly can be construed as insulting by some and confrontational by others. Keep in mind that an interview is not strictly about the candidate proving themselves to the company, but the company, and it’s managers, proving itself to the candidate. A panel of three programmers (who would be my peers at Amazon) once asked me to design a word processor. Since I was interviewing for a position in the payments department it caught me completely off guard and was clearly not related to Visa and MasterCard regulations which I knew like the back of my hand at the time.Which is a perfect segue.Charlie B. wrote (Why I Won’t Hire You | Golem Technologies and if not for the title alone I would not return his calls let alone take the interview. There are reasons to have a 10 page resume as well as a one page summary. HR gurus have always said that it is best to have a custom resume and cover letter for every perspective employer. But Charlie’s demands are completely subjective and prejudicial. Before he has seen a single resume he has decided that a long resume is a waste of his time. This is not the sort of person I want to work for.William Shields posted an article, in response to a 37Signals article (discussed later), [Interview Programming Problems Done Right ~ C for Coding]. Shields goes on to say how solving Pascal’s Triangle is a good interview question because the solution is small. The tragedy of his thinking is that everyone remembers Pascal’s Triangle; the problem. He further implies that everyone remembers CS101 or is currently an active mathematician. (I had to spell check mathematician; what makes you think I’m going to remember Pascal’s Triangle.) Besides, in Shields' example it’s just too easy to google a solution.My second least favorite way to interview a candidate is through GitHub; as proposed by Assif [Gigantt Blog: The GitHub Job Interview]. GitHub is a code repository. It houses a lot of code. Some of that code is actually executing out there somewhere. From a social engineering perspective it’s too easy to create sample projects that encapsulate all of the industry’s best practices like PEP-8 or modern-perl. And even with this sort of material it’s just as subjective as a coding problem.[Why we don’t hire programmers based on puzzles, API quizzes, math riddles, or other parlor tricks - (37signals)] - David writes a short 4.1 paragraph essay on the subject, but certainly nothing that warrants the sort of criticism that the commentors provided. I’m not even certain I see why Shields would link to it except to get some hits.  David seems to agree with Assif that GitHub samples are good and that coding questions are bad. Shields seems to think that studying aged old computer problems as a quiz is the best way.I’m just amazed by the coverage this topic is getting. It’s popping up on many of the feeds that I follow. Programming can be an art but it is certainly not a performance art in all but a few cases. The rest of the time it’s just work like digging a ditch without having to clean under your nails. For the most part programmers give themselves too much credit. We are in the business of supporting business and that’s about it. To the stock market programmers that claim that they make changes on the fly and make 500K a year are a) in the extreme minority and b) going to lose their jobs when the SEC figures out that they are the cause of the many market crashes and c) when electronic trading becomes regulated.I am a programatic programmer(thanks to with 25+ years experience. I’ve worked in different vertical markets using different languages and tools. From oscilloscopes to ZeroMQ. It was not until 15 years into my career that I realized the importance of the business, and the customer, and how little the perfect piece of code really is. I’m not going to be sending anyone to the moon on my code and so whether it’s yards or meters does not matter to me or my clients or employers. What matters is that the code works as expected and when it was expected. If they need something else then they’ll ask for it.As for selecting perspective candidates. That’s a job for the professionals. Professional HR managers and professional technical managers. And unless it’s in the culture of the organization you are not likely to see a quiz. Quiz' and coding samples are evil, subjective and prejudicial. You need to find a better way like listening to the candidate describe the projects they were on and the role the performed. What made it special and what was difficult and how they resolved things. These are the questions to ask when hiring qualified programmers.**It’s my belief that the GitHub and coding test became a part of the startup culture because the freshman programmers that were cheap and naive enough to work for a generation-1 startup company never had mentors or sufficient enough experience to know what the best interviewing techniques were. (they typically did not have HR departments either). As the company grew the quiz culture remained behind. What was once created due to inexperience is now a part of culture. The side effect, now, is that manager do not have to interview as many candidates. They have yet another tool to say NO! Interviewers should not be looking for reasons to say no. They should be looking for reasons to say yes. No is too simple,Leave gaming the system to Captain Kirk and the kobayashi maru.