Okay, so you have 100 floors and 2 eggs...
Walt: Interview question: you are given two eggs and access to a 100-story building. What is the most efficient way to determine the highest floor from which you can drop an egg and it will not break. |
Interviewee: Easy, I brought eggs from home. Watch this.
Walt: Wait, why did you bring... |
Interviewee: Oh, look, the answer is less than one. *splort*
Walt: Our floor!
This is a common interview question - and not a great one, in my opinion, because it's more of a long-form high school math problem than it is a programming problem. The correct answer involves producing and then solving the formula for triangular numbers.
The even correcter answer involves basic knowledge of eggs: they will not survive even a one floor drop.
The better answer still is to not work for the company that is asking silly math questions to try to measure your programming ability.
Although I would award definite style points for "Buy 5 more eggs and do a binary search: my time is worth more than the cost of 5 eggs."
Smart and Gets Things Done are not the only hiring guidelines
Walt: We're hiring for Smart and Gets Things Done. |
Lain: I feel like those shouldn't be our only criteria.
Walt: What are we missing? |
Lain: How about "not likely to burn the company to the ground in a fit of rage", "hygienic", and "able to communicate without accidentally cramming both hands in their mouth".
I keep trying to communicate without accidentally cramming both my hands in my mouth but it keeps MRRPFH MMPH MRPFH
Here are some of my thoughts on hiring...
So, lately, I've been reading a lot about how traditional culture-fit and whiteboard interviews tend to produce monocultures, very little useful data, and often choose confident air-bags, people who are great at "gotcha" puzzles and language minutiae, and great culture fits over shy-but-awesome people.
So here's a process that might work. Take with a grain of salt.
Create a list of skills that you feel would be valuable to the team. ("Android Development", "Conflict Resolution", "Ability To Eat Many Hot Dogs") For each skill, decide which member of your team would be best equipped to evaluate that skill.
For each skill, have the subject-matter-expert on your team prepare two to three open-ended non-trivia questions about that skill. ("How many hot dogs would you say that you can eat?" "Describe a time when you have eaten many hot dogs.")
Prepare a five-point scale for every skill, with a loose definition of what a person should be expected to know for each point on the scale.
Pick a language that nobody has ever programmed in, ever, like Rust, Eiffel, O'Caml, or M.
Choose a trivial problem space that is very well defined, like "Scoring Poker Hands", or "Scoring Yahzee".
Think of a single thing to change about the problem space, after the fact. "2s are now wild".
Let your prospective candidate know every step in the hiring process from the get-go, with a friendly chat with the team lead that lasts at least 30 minutes.
Have the candidate take home a copy of every open-ended question, as well as a description of the problem space. Ask them to produce a library, with documentation, in Obscure Language, that allows users to solve problems in that space. Try not to allow the candidate more than one day to work on the library.
Have every member of your team look at the library. Score each library on how easy it is to learn to use, how flexible it is, how easy it would be to adapt the code to account for the change in the problem space, and how easy the code itself is to understand.
If the library meets the criteria, bring the candidate in for the interview. Grouping by team-mate, have the subject-matter-experts ask their prepared questions. Estimate their skill using the rubrics.
Have two team-mates ask the candidate questions about their library, asking how they would change the single thing about their problem space, and to talk about any technical decisions that they made.
To get a lot of useful baseline data, perform this series of steps on all of the people in your current team (making sure to ensure them that their jobs aren't at risk).
That opening is the longest run-on sentence I've included in a comic in ever. Yugh. I apologize, everyone. Doubly for the "scare quotes". Yeesh.
Warbeard: So you're here for the UI Designer role? Lots of... Photoshop, I guess?
Applicant: Actually, I imagined it would be more wireframing and InDesign.
| Miloslav: How would you reverse a linked list in C?
Warbeard: What's the linux command to check file permissions?
Applicant: I... Uh...
Walt: So he couldn't even answer simple questions?
Walt: Finding a decent UI designer is going to be way harder than I'd thought.
In their defense, he did bring a blank sheet of paper as his resume.
Re: Working from home; Cube Drone: What is this, 1992? I can be productive from home without a needless commute.
Also, think of all of the talent you could miss out on by only hiring locally.
| Re: Outsourcing; Cube Drone: The communication gap is just too big. You'll never get the software quality that you
would with local employees.
| Re: Contradictions; Cube Drone: ...
Hiring employees from Vancouver is good for your business, and hiring employees from anywhere else? Bad for your business.
Resume: Bradley Dongcaptain,
* Myriad and Mysterious
* Ham Foundry (the rest of the resume is blocked out)
Cube Drone: This is terrible! At least he could have spellchecked. |
Miloslav: You're one to judge. Your resume was just scribbled on a napkin. |
Walt: You just breathed your name into a jar and sent us the jar.
Also 'resume' probably shouldn't be the largest word on your resume.
A series of presenters:
| First frame: Geeky Man: Thanks for listening - and if you're a talented software developer, Sauce Labs is hiring.
| Second frame: Bald Man: To conclude, we're hiring at Hootsuite.
| Third frame: Confused Man: And, of course, we're desperately hiring.
| Fourth frame: Miloslav: Not only are we hiring, each new hire gets a sturdy, delicious donkey as a signing bonus.
I was really just trying to work the term 'sturdy delicious donkey' into a comic.
Cube Drone, to an interviewee: So, thanks for interviewing with us! For our first question, could you tell us how 'this' works? |
Interviewee: How... what works? |
Cube Drone: This!
Interviewee: I can't tell you how it works until you tell me what it is!