Skip to main content

Interview Problems *sigh*

[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 http://bit.ly/wqcEuv]. 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 http://bit.ly/xh9i1O]. 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 http://bit.ly/xPySOq) 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 http://bit.ly/xm3Q8L]. 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 http://bit.ly/yUUhJd]. 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) http://bit.ly/zujO1P] - 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 pragprog.com) 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.

Comments

Popular posts from this blog

Entry level cost for CoreOS+Tectonic

CoreOS and Tectonic start their pricing at 10 servers. Managed CoreOS starts at $1000 per month for those first 10 servers and Tectonic is $5000 for the same 10 servers. Annualized that is $85K or at least one employee depending on your market. As a single employee company I'd rather hire the employee. Specially since I only have 3 servers.

The pricing is biased toward the largest servers with the largest capacities; my dual core 32GB i5 IntelNuc can never be mistaken for a 96-CPU dual or quad core DELL

If CoreOS does not figure out a different barrier of entry they are going to follow the Borland path to obscurity.

UPDATE 2017-10-30: With gratitude the CoreOS team has provided updated information on their pricing, however, I stand by my conclusion that the effective cost is lower when you deploy monster machines. The cost per node of my 1 CPU Intel NUC is the same as a 96 CPU server when you get beyond 10 nodes. I'll also reiterate that while my pricing notes are not currently…

eGalax touch on default Ubuntu 14.04.2 LTS

I have not had success with the touch drivers as yet.  The touch works and evtest also seems to report events, however, I have noticed that the button click is not working and no matter what I do xinput refuses to configure the buttons correctly.  When I downgraded to ubuntu 10.04 LTS everything sort of worked... there must have been something in the kermel as 10.04 was in the 2.6 kernel and 4.04 is in the 3.x branch.

One thing ... all of the documentation pointed to the wrong website or one in Taiwanese. I was finally able to locate the drivers again: http://www.eeti.com.tw/drivers_Linux.html (it would have been nice if they provided the install instructions in text rather than PDF)
Please open the document "EETI_eGTouch_Programming_Guide" under the Guide directory, and follow the Guidline to install driver.
download the appropriate versionunzip the fileread the programming manual And from that I'm distilling to the following: execute the setup.sh answer all of the questio…

Prometheus vs Bosun

In conclusion... while Bosun(B) is still not the ideal monitoring system neither is Prometheus(P).

TL;DR;

I am running Bosun in a Docker container hosted on CoreOS. Fleet service/unit files keep it running. However in once case I have experienced at least one severe crash as a result of a disk full condition. That it is implemented as part golang, java and python is an annoyance. The MIT license is about the only good thing.

I am trying to integrate Prometheus into my pipeline but losing steam fast. The Prometheus design seems to desire that you integrate your own cache inside your application and then allow the server to scrape the data, however, if the interval between scrapes is shorter than the longest transient session of your application then you need a gateway. A place to shuttle your data that will be a little more persistent.

(1) storing the data in my application might get me started more quickly
(2) getting the server to pull the data might be more secure
(3) using a push g…