top | item 5068413

What If Cars Were Rented Like We Hire Programmers?

274 points| carlos | 13 years ago |highscalability.com | reply

172 comments

order
[+] Hovertruck|13 years ago|reply
This analogy is backwards... Hiring a programmer is an exchange of company money (or equity, benefits, etc) for a service (programming skills). Renting a car is an exchange of one's own money for a service (use of the car).

In this case, the person renting the car would be "interviewing" the car rental company to determine if their service is worth their money.

[+] rosser|13 years ago|reply
Maybe it's because I just made the egregious mistake of getting drawn into a gun-control debate with a friend and his friends on Facebook, but hyperbolic arguments by analogy feel really silly, cheap, and disingenuous to me right now...
[+] ProblemFactory|13 years ago|reply
I find that analogies are a poor argumentation technique overall, even if they are not hyperbolic. It's always possible to find similarities between wildly different and even opposing ideas. The details matter.
[+] npsimons|13 years ago|reply
Reasoning from analogies is like tying your shoes with laces made of butter.
[+] tzz|13 years ago|reply

  Interviewer#3: How long you been driving your 2010 Escort?
  Applicant:     About 3 years.
  Interviewer#3: Sorry, but we are looking for someone with 
                 experience of driving 2010 Escort for at 
                 least 10 years.
[+] orangethirty|13 years ago|reply
Ha!

To add:

    Interviewer#3: We are looking for someone who knows how 
    operate the navigation screen on the 2010 Escort.
    Applicant: My car does not have the navigation option  
    installed.
    Interviewer: Then you do not qualify. Knowing how to 
    work the navigation system is a priority.
    Applicant: I know how to work navigation systems in
    general. My car before this one had a navigation system 
    and I learned it pretty quickly.
    Interviewer#3: No. We need people with 10 years of
    experience with the actual navigation system on the 2010
    Escort. 
Note: Ford no longer sells the Escort in the USA. They sell the Focus and the Fiesta. Both terrific little cars.
[+] mikle|13 years ago|reply
I was witness to the sending of a request for candidates with 3 years of Android experience to HR at 2011 at Intel. They just insisted that two or one isn't enough.

First Android phones were release at 2008.

In other news - I thank god I never were in as bad as interviews as some of you. My worst experience was the interviewer giving up and starting to ask me personal and professional stuff about another candidate to the same position. I guess I did a good job because the other candidate got it, company shutdown withing a year.

[+] ssharp|13 years ago|reply
My own personal, small sample size experience has shown that if I start questioning things early on in the interview, I can predict fairly well whether or not the company will be a good fit or not. I try not to jump to conclusions but even initial emails and phone calls can make for pretty strong clues.

If I sense during an interview that things aren't going to be a good fit, I still try and finish the interview graciously. There is no use burning any bridge, even if it's one you're 100% certain you'll never use. One trick I do to keep myself from seeming aloof or displeased is to start asking questions about the industry. At this point, I know I don't want the job and probably don't care about the culture, but learning something about an industry you may not know much about could be useful down the line.

[+] dlss|13 years ago|reply
This part was golden:

Agency : How much did you pay for your last rental car?

Applicant : I don't see how that matters. What are you charging?

Agency : We like to know what you paid before so you get a fair rate.

Applicant : I paid market rates.

Agency : Sorry, we must know how much...

[+] smsm42|13 years ago|reply
Well, if you buy instead of rent, especially used car, that's what 99.99% of salesmen would do. "How much is that car?" - "well, how much can you pay?" They have sometimes prices posted but everybody knows these have little meaning except generic signal of "we consider it an expensive car" or "this one is cheap".
[+] daenz|13 years ago|reply
I've had a few interviews like this.

For future interviews, I've collected similar questions to ask of them (questions that I have conveniently worked out or looked up the answer to beforehand), my rationale being, "I want to make sure I would be working with competent peers." And I don't give a fuck if it rubs them the wrong way.

[+] NegativeK|13 years ago|reply
If your rationale is to find out if you're going to work with competent peers, why not asK a question that leads into a proper, deeper technical discussion?
[+] sergiotapia|13 years ago|reply
I became unreasonably angry while reading this. I guess it struck a nerve with me for some reason.

During my interviews, I was very charismatic, confident in my skills, was asked technical question that were things I would need day in day out. I landed the job on 100% of those interviews.

There was this one time were the guy kept asking me crap I would never EVER need while working for his company.

Binary tree's, linked lists, pointer arithmatic. "What the fuck?", I thought to myself. This was for a C# developer position for a small 20 person company. Anyways, I thanked him for his time and left. He called me with an offer two weeks later, and I declined. Not going to waste my time with that crap.

---

99% of us will never work for Google, or Amazon, or Twitter - but for your run of the mill software shops. And that's ok.

[+] mieubrisse|13 years ago|reply
Out of curiosity, why do you consider binary trees, linked lists, and pointer arithmetic to be so out of the bounds of possibility for work at a job? Those strike me as skills I might find invaluable in one of my software engineers depending on the job.
[+] CaveTech|13 years ago|reply
I'm actually insanely jealous of you if a "What the fuck" interview was about binary trees and linked lists. All my interviews have /started/ at that point and gotten way worse. I still get anxiety thinking about some of my job interviews.
[+] jammycakes|13 years ago|reply
I'd be inclined to side with the interviewer on this one. Data structures such as binary trees and linked lists may be abstracted away by many modern frameworks, but every abstraction is leaky and if you aren't aware of what's going on behind the scenes, you can absolutely crucify your application's performance. Binary trees, linked lists, hashtables and so on have very different performance characteristics, and if you choose the wrong one for the wrong situation, you can end up with code that gets unbearably slow surprisingly quickly. The difference between O(n^2), O(n) and O(log n) can be massive on datasets of only a few thousand, and even small 20 person companies can end up having to deal with datasets much larger than that.

This is all fairly basic stuff that should be a core competency for every software developer, and the fact that it isn't is the reason why so many Flash- and JavaScript-intensive websites are such resource hogs. The kind of things that Google, Amazon and Twitter are into that you'll never EVER need in a small 20 person run of the mill software shop are things such as machine learning, compiler theory, Bayesian statistics, image recognition, and so on.

[+] MartinCron|13 years ago|reply
I don't disagree with your decision to leave, but it is possible that your interviewer was just a crappy interviewer and might not be a crappy colleague.
[+] lessnonymous|13 years ago|reply
As a hiring manager, the thing I find most interesting on posts like this (ignoring that the analogy is TERRIBLE) are the comments of people used to being on the other side of the desk. I don't think we (as interviewers) do a good job of explaining why we ask the questions we ask. And I don't think we do a good job of communicating what our job is.

Our job is to stop you getting hired.

If we get 100 people applying for the job, then our job is to not employ at least 99. So we are looking for anything that identifies you as being one of the 99.

That you could go away and learn what color the middle wire is is great. But the guy next to you has been fixing wiring in distributor caps for years. And right now, I need people that know what color the middle wire is.

[+] logn|13 years ago|reply
The point is that the guy who can fix wiring in distributor caps might be able to do that specific task. But maybe it took him 5 years to learn that and a much better candidate who has no clue how to do that could master it in a week and will be fixing those caps at a higher quality.

It's also that it's incredibly short-sighted to seek such specific skills in the technology industry with the rate of change in tech.

Further, maybe the guy who can fix distributor caps came from an agency that coached him on writing his resume to emphasize this and what to prep for in the interview. I've experienced that first-hand.

[+] mmorett|13 years ago|reply
"That you could go away and learn what color the middle wire is is great. But the guy next to you has been fixing wiring in distributor caps for years. And right now, I need people that know what color the middle wire is."

If you're hiring a mechanic, yes. However, the analogy was pointing out that the person being asked the question was a potential car renter. That specific knowledge is not relevant as a car renter.

[+] ozgung|13 years ago|reply
This illustrates why it's a terrible idea to work in a large corporation where the hiring process is managed by an HR department. The process is optimized for filtering out people. The reason why the job postings and interview questions seem to expect unrealistically high standards has nothing to do with the actual jobs requiring any of those high standards. In reality those jobs tend to be very dull and standard.

Tech start-ups and good engineering teams ask a different question: "What value this talented engineer can provide to our team or product?" Their job is not to stop people getting hired. Their job is to convert the available Human Resource to economic value as much as they can.

As far as I know hiring decisions made only by HR departments don't perform any better than randomly hiring one of those 100 candidates. Actually random is better if you really need the absolute best candidates because HR process has a high risk of filtering them out at the initial stage carried out by a clueless junior HR staff. But it's OK for the HR's sake since their actual purpose is to stop people getting hired.

[+] mavelikara|13 years ago|reply
"Our job is to stop you getting hired. If we get 100 people applying for the job, then our job is to not employ at least 99. So we are looking for anything that identifies you as being one of the 99."

If you have only position to fill and 100 people applied for that position, yes, your position makes sense. But if you have 100 positions to fill, will you still insist that you must interview 10000 people to fill those positions?

[+] npsimons|13 years ago|reply
First off, not sure how your company does it, but I've had companies ask me to interview when I wasn't even looking, and then not extend an offer. So interviews are not always to separate the wheat from the chaff.

Second, the gist I got from the "color of the wire" question was it was an analogy for asking someone to write code for a linked list. It's banal and been done before, so it seems ludicrous to ask, but many places use it as a FizzBuzz filter. I can think of very few places that would actually pay someone to "fix the wiring distributor cap" (write linked lists).

[+] jussij|13 years ago|reply
> That you could go away and learn what color the middle wire is is great. But the guy next to you has been fixing wiring in distributor caps for years. And right now, I need people that know what color the middle wire is.

And more often than not there is absolutely no relationship between the color of the middle wire and knowning how to fix the distributor cap.

[+] mmorett|13 years ago|reply
"Our job is to stop you getting hired."

So then, by definition, you have perfect employees. Congrats. I'm sure this extends to the perfect sales team, perfect product team, etc. That is impressive.

[+] gurvinder|13 years ago|reply
So this means you hire people for specific tasks, and when new task comes, you fire them and go looking for new people for the next specific task. seems like a very good strategy...
[+] aidenn0|13 years ago|reply
This makes no sense.

Just like having a drivers license is no guarantee you are a good driver, having many years of job experience programming is no guarantee you are a programmer.

On the other hand, you are liable for any damage you do to a car you rent, plus the company is fully insured in the case you do any damage and can't pay. Hiring and firing someone (which is the only real way to know if someone is a good developer) is very expensive.

Here's what it would be like if we hired programmers like we rent cars:

You walk in to a software company and are immediately hired under these conditions: "We'll take you on for 6 months, but if it doesn't work out you need to pay us back all of your salary, plus benefits and payroll tax"

[+] tobyjsullivan|13 years ago|reply
I've given enough interviews to know it's all relative.

To cherry pick one example: "What color has the middle wire feeding into the distributer cap?" implies interviewers ask ridiculously specific questions that you could "look up if and when you needed to know."

The problem is for some applicants that question could be "how would you implement Google's PageRank" and for other applicants it can be something as simple as "what's the difference between an interface and an abstract class." Think what you want but if you don't think you need to be able to answer the latter, it's probably not going to work out between us.

To be honest, of the few interviews where I've been the applicant, the questions have always been fair and I've never been treated with the level of disrespect that was demonstrated in this scenario. That said, I'm completely willing to believe I've just been lucky so far.

[+] bicknergseng|13 years ago|reply
The problem I perceive is that that question gets asked to people who will never need to know it. I too often see people interviewing for front end web or javascript positions asked questions about binary search trees or something that totally doesn't relate to front end development, instead of asking about closures or what they think about coffeescript. Honestly, I think at this point if you're asking about various search algorithm big o timings to find out if a programmer can build an iOS app or do Rails dev, you're doing it wrong.
[+] w33ble|13 years ago|reply
The poor interview process is one thing, but what irks me most is that almost nobody offers you a chance to meet the team, even when they make you an offer. That's been my general experience so far anyway. It sucks, because your only exposure to anyone was the hiring manager, and maybe a lead, and all they did was ask questions about what you memorized about whatever language(s).
[+] tokenadult|13 years ago|reply
It's very easy to decry company hiring procedures. That happens all the time here on HN, and for a very good reason--most company hiring procedures are not based on research and are demonstrably suboptimal for hiring the best people. We discuss this a lot on Hacker News because many of us have been looking for jobs or looking for people to hire some time in our adult lives. From participants in earlier discussions I have learned about many useful references on the subject, which I have gathered here in a FAQ file. The review article by Frank L. Schmidt and John E. Hunter, "The Validity and Utility of Selection Models in Personnel Psychology: Practical and Theoretical Implications of 85 Years of Research Findings," Psychological Bulletin, Vol. 124, No. 2, 262-274

http://mavweb.mnsu.edu/howard/Schmidt%20and%20Hunter%201998%...

sums up, current to 1998, a meta-analysis of much of the HUGE peer-reviewed professional literature on the industrial and organizational psychology devoted to business hiring procedures. There are many kinds of hiring criteria, such as in-person interviews, telephone interviews, resume reviews for job experience, checks for academic credentials, personality tests, and so on. There is much published study research on how job applicants perform after they are hired in a wide variety of occupations.

http://www.siop.org/workplace/employment%20testing/testtypes...

EXECUTIVE SUMMARY: If you are hiring for any kind of job in the United States, prefer a work-sample test as your hiring procedure. If you are hiring in most other parts of the world, use a work-sample test in combination with a general mental ability test.

The overall summary of the industrial psychology research in reliable secondary sources is that two kinds of job screening procedures work reasonably well. One is a general mental ability (GMA) test (an IQ-like test, such as the Wonderlic personnel screening test). Another is a work-sample test, where the applicant does an actual task or group of tasks like what the applicant will do on the job if hired. (But the calculated validity of each of the two best kinds of procedures, standing alone, is only 0.54 for work sample tests and 0.51 for general mental ability tests.) Each of these kinds of tests has about the same validity in screening applicants for jobs, with the general mental ability test better predicting success for applicants who will be trained into a new job. Neither is perfect (both miss some good performers on the job, and select some bad performers on the job), but both are better than any other single-factor hiring procedure that has been tested in rigorous research, across a wide variety of occupations. So if you are hiring for your company, it's a good idea to think about how to build a work-sample test into all of your hiring processes.

Because of a Supreme Court decision in the United States (the decision does not apply in other countries, which have different statutes about employment), it is legally risky to give job applicants general mental ability tests such as a straight-up IQ test (as was commonplace in my parents' generation) as a routine part of hiring procedures. The Griggs v. Duke Power, 401 U.S. 424 (1971) case

http://scholar.google.com/scholar_case?case=8655598674229196...

interpreted a federal statute about employment discrimination and held that a general intelligence test used in hiring that could have a "disparate impact" on applicants of some protected classes must "bear a demonstrable relationship to successful performance of the jobs for which it was used." In other words, a company that wants to use a test like the Wonderlic, or like the SAT, or like the current WAIS or Stanford-Binet IQ tests, in a hiring procedure had best conduct a specific validation study of the test related to performance on the job in question. Some companies do the validation study, and use IQ-like tests in hiring. Other companies use IQ-like tests in hiring and hope that no one sues (which is not what I would advise any company). Note that a brain-teaser-type test used in a hiring procedure could be challenged as illegal if it can be shown to have disparate impact on some job applicants. A company defending a brain-teaser test for hiring would have to defend it by showing it is supported by a validation study demonstrating that the test is related to successful performance on the job. Such validation studies can be quite expensive. (Companies outside the United States are regulated by different laws. One other big difference between the United States and other countries is the relative ease with which workers may be fired in the United States, allowing companies to correct hiring mistakes by terminating the employment of the workers they hired mistakenly. The more legal protections a worker has from being fired, the more reluctant companies will be about hiring in the first place.)

The social background to the legal environment in the United States is explained in many books about hiring procedures

http://books.google.com/books?hl=en&lr=&id=SRv-GZkw6...

http://books.google.com/books?hl=en&lr=&id=SRv-GZkw6...

Some of the social background appears to be changing in the most recent few decades, with the prospect for further changes.

http://intl-pss.sagepub.com/content/17/10/913.full

http://www.economics.harvard.edu/faculty/fryer/files/Fryer_R...

http://books.google.com/books?hl=en&lr=&id=frfUB3GWl...

Previous discussion on HN pointed out that the Schmidt & Hunter (1998) article showed that multi-factor procedures work better than single-factor procedures, a summary of that article we can find in the current professional literature, for example "Reasons for being selective when choosing personnel selection procedures" (2010) by Cornelius J. König, Ute-Christine Klehe, Matthias Berchtold, and Martin Kleinmann:

"Choosing personnel selection procedures could be so simple: Grab your copy of Schmidt and Hunter (1998) and read their Table 1 (again). This should remind you to use a general mental ability (GMA) test in combination with an integrity test, a structured interview, a work sample test, and/or a conscientiousness measure."

http://geb.uni-giessen.de/geb/volltexte/2012/8532/pdf/prepri...

But the 2010 article notes, looking at actual practice of companies around the world, "However, this idea does not seem to capture what is actually happening in organizations, as practitioners worldwide often use procedures with low predictive validity and regularly ignore procedures that are more valid (e.g., Di Milia, 2004; Lievens & De Paepe, 2004; Ryan, McFarland, Baron, & Page, 1999; Scholarios & Lockyer, 1999; Schuler, Hell, Trapmann, Schaar, & Boramir, 2007; Taylor, Keelty, & McDonnell, 2002). For example, the highly valid work sample tests are hardly used in the US, and the potentially rather useless procedure of graphology (Dean, 1992; Neter & Ben-Shakhar, 1989) is applied somewhere between occasionally and often in France (Ryan et al., 1999). In Germany, the use of GMA tests is reported to be low and to be decreasing (i.e., only 30% of the companies surveyed by Schuler et al., 2007, now use them)."

Integrity tests have limited validity standing alone, but appear to have significant incremental validity when added to a general mental ability test or work-sample test.

http://en.wikipedia.org/wiki/Employment_integrity_testing

http://apps.opm.gov/ADT/Content.aspx?page=3-06&JScript=1

http://www.princeton.edu/~ota/disk2/1990/9042/9042.PDF

http://www.hotelschool.cornell.edu/research/chr/pubs/reports...

[+] codemac|13 years ago|reply
You post this every time, and I want to decry the astro turfing..

but it's good information, well referenced, and I don't have the background or time to refute anything you've said.

[+] sillysaurus|13 years ago|reply
Thank you for your time and effort. It's much appreciated.

Edit: Also, tokenadult has a very interesting profile. Scroll down to "METAINFORMATION". Great work!

[+] yuhong|13 years ago|reply
Personally as I said before I don't like these anti-discrimination laws and think they are likely fundamentally flawed (at least nowadays).
[+] jnazario|13 years ago|reply
thanks for this. timely - i'm hiring a bunch right now and have to build up good hiring practices from scratch since it's a startup - and thorough.
[+] mylittlepony|13 years ago|reply
> EXECUTIVE SUMMARY: If you are hiring for any kind of job in the United States, prefer a work-sample test as your hiring procedure. If you are hiring in most other parts of the world, use a work-sample test in combination with a general mental ability test.

I like how American employers think everyone in the US is sane, smart, and educated, unlike the rest of the world.

[+] jedmeyers|13 years ago|reply
Better analogy would be shipping company hiring a truck driver and asking him those questions. And also requiring experience piloting Formula One cars for at least three years, knowledge of how to operate large construction equipment and ability to replace the tire on a truck with bare hands.
[+] motters|13 years ago|reply
Evidently other people must have been through the same types of interviews as I have.
[+] beefman|13 years ago|reply
Maybe applicants need insurance. If they don't work out, their insurance company refunds the employer their salary and the opportunity cost of their bad commits. This way, applicants get muscled out of the job market gradually by high insurance rates, rather than with a brick wall filter.
[+] npsimons|13 years ago|reply
While this seems "spot on" at first glance, I can tell you that when I interviewed at Google and Amazon (two years ago), it wasn't anywhere near this bad. Both places asked what might seem like contrived technical questions, but the thing is, you have to pick something that can be tested in an hour (or less). That, and it's not the answer that matters, but more your process of working a problem. They didn't seem to care too much about experience with specific tools. I guess it depends on the organization, and I can see how many places would be much worse. My question is, if they care so much about experience with specific tools, why do they even get to an in-person interview with someone who doesn't have it on their resume?
[+] slurgfest|13 years ago|reply
Hiring practices of Google and Amazon are very unrepresentative of smaller companies and more heavily emphasize general intelligence, prestigious background and background in computer science. As you say, it's about the process of working a problem more than experience with specific tools.

However, most companies are smaller than Google and Amazon and have different practices. Sometimes, stupid practices, because the interviewers don't really know how to do it, just want to get it over with, or really care about things which aren't important.

But since they are in the hiring position and assume they and their company are awesome, they are not so likely to question their own technical or interviewing abilities and certainly don't want to hear what interviewees have to say about it.

You need additional insights beyond just doing the job to understand what makes someone else useful in that job. And if you don't even have that much, you are guaranteed to ask stupid questions and end up with people selected for how good they are at selling and how much you think they're cool.

[+] TheCapn|13 years ago|reply
My experience with Amazon was similar but at the end I was led to ask: "if the 1hr filter process isn't efficient at finding the best candidates, why do they do it?"

I think in the end its a balance of basic filtering vs. HR requirements. The process has to be objective and quantifiable so they're covered in the event of anyone calling foul play. Everyone gets the same treatment and there is a paper trail of reasons for why they turned you down.

[+] markhelo|13 years ago|reply
I agree with parts of it, but I disagree with the basic premise that hiring programmers is like renting cars. When you hire a programmer, it is like hiring a car mechanic, not a car driver. Some of the questions do seem appropriate to ask to a car mechanic.
[+] ChuckMcM|13 years ago|reply
Ah yes, another person describing their Google interview experience. They do leave a lot of solid candidates out but in their defense, when I was there, being able to survive the non-intuitive interview process was a good indicator you could survive the non-intuitive business dynamics.

If didn't really crush people when they didn't get called back it would make it funny. Sort of like the Monty Python sketch http://www.youtube.com/watch?v=zP0sqRMzkwo

[+] davidw|13 years ago|reply
"E se me nona gavesse e rode sarìa na carioea", as they say here in the Veneto, which, literally translated, means "if my grandmother had wheels, she'd be be a wheelbarrow".
[+] eric_the_read|13 years ago|reply
Along the same line, "If a pig had wings, it'd be a pigeon." I want to say that's from Heinlein, but I'm not positive.
[+] quarterto|13 years ago|reply
I have had this interview. I didn't get the job.
[+] funkaster|13 years ago|reply
I'm actually interested to know what kind of developer gets the job. And also, what was he/she thinking when accepting the job, was it out of necessity? because he/she liked the interview process? (I'm asking seriously)