A Tale of Two Interviews, Part 1
youell.com
youell.com
I - need a job, presumably they need someone with my skillset, now obvious, there are soft skill concerns, do I match the culture, is it going the direction I feel my career ought to go? Other then that, it should be pretty simple.
If you're the type that needs personal validation such that you would knock a candidate for saying something like "I need money, you guys are paying in money", then you simply shouldn't ask the question. Of course, people love to think that they have a highly tuned bullshit detector, are immune to blatant flattery, etc. The problem is everyone thinks that. We are all susceptible to these things and we need to make sure our process is such that its not biased towards people who are particularly good at telling you what you want to hear.
There are two sides to the coin, of course. I personally don't mind being asked about my motivations because I tend to only apply to companies that I actually want to work at (paychecks notwithstanding).
That said, you applied for a job here, so there must be some reason you want it. Maybe "I ended up in a really bad job and I want people who care about their craft", "I love Clojure and you guys write everything in clojure", or "I love your flat organizational structure", or "I like making developer tools". But "i need a job" is a terrible answer, and won't even get you past the phone screen.
You are just going to weed out all the people who are not bullshitting you, and take in all the people who will. And amazingly, you are happy proclaiming this!
I'd thank you for weeding me out though. I like reality. Don't like happy rainbow snowflake dreamland, which you've just outed your company as. Since such things never last.
I don't know how you translated "wanting to hire people who want to work here" into "happy rainbow snowflake dreamland", but so long as people who don't care about our product or market feel weeded out, then I'm happy. For others reading this who do actually care about the people, product and technology you work with, please let me know at jobs@circleci.com.
If the best you can offer is "uh I need a job" that means you don't know a damned thing about the company you're applying to, doesn't it? I.e., you found a list of 30 companies that are offering jobs in your city that vaguely match your CV, and instead of reading about them and choosing a few, you're taking the shotgun approach.
If you read about them, what made you choose this one?
Do they seem like they have a culture that's better than your last job? Do they use a language you like (and/or would like to use more)? Are they doing something you know anything about, or find interesting at all, or can at least categorize as "not morally objectionable"? Almost anything is better than "I need a job".
Which is why it should be part of the phone screen. In the article, they didn't even ask this until after the 5 hours of interviews. Ouch.
"I'd never heard of you guys, but when I was searching around your thing seemed a lot more interesting than some of the other things."
And on the employer side, unless you've actually got tanks out back from having turned water into wine you might notch the erection down a few degrees. There's smart people everywhere, that's not special.
I would usually go with something compiled together from separate things: - New challenges - Location - Their field of expertise - Their culture
I can understand how a company wants someone enthusiastic for their product/company, on the other hand I can understand how alienating it is to have to bullshit about the reality of your situation.
It's good that you recognize from their feedback where you went wrong, but it's bad that you don't understand why "I just want a job" is a poor answer. Your cynicism about "Cubicle Dream" also doesn't sit well. (Not trying to be harsh - I know exactly where you're coming from, having been there myself.)
Here's a secret: in the workplace, unlike school, attitude trumps raw ability. Every single time.
Think about what you really want. Maybe read Ask The Headhunter.
Good luck.
This is true... but only because the workplace is run by total fucking idiots.
I mean, I'm one of those people who always looks way better in the interview than I actually am. Excited, engaged, confident, interested in your problems... but seriously? you'd rather have me? some overconfident douchenozzle over someone smart? I know of several setups where I was interviewing against someone I know was better than me, where I won. I remember once, I got a guy who used to work for me an interview at a place where I had a full-time sysadmin job. (For much of my career, I've alternated between doing my own company, and working for other people.) the guy didn't get the job, apparently because he didn't interrupt my boss enough (who kept getting interruptions throughout the interview.)
The hilarious thing is that I'm a total mercenary; I'll leave your sorry ass for the first 20% raise I can get, while those people with a 'poor attitude' will stay at the same place even though they are underpaid and treated poorly, for years.
It's kind of like how employers prefer tall white guys. It's fucking retarded, but if I turned down all jobs where I think that worked in my favor? I'd turn down a lot of well-paying work.
I mean, sure, if it is mercenary work; if you want a problem (in my area of expertise) solved and then you want someone who is cool with being let go the next day? I'm probably a pretty good choice. I don't expect loyalty or anything; pay me on time for the hours I worked and I'm happy. I also do pretty well when one needs to ignore social mores or corporate bullshit to get something done. (I'm terrible, though, when /following/ those rules is important.) And I'm not completely stupid. Certainly, there are times when you won't be able to find someone better, in which case, you take what you can get, eh?
But for full-time "we want you to stick around for a while" jobs? I'm a comparatively terrible choice... I mean, assuming you have other applicants that are smarter and have basic competency. but from what I've seen? I do way better than people who are obviously more competent than I am, because of that arrogance.
I'm not that confident and get really nervous before interviews, even for jobs that I'm not sure I even want. However, once I pass my nervousness, I can come across as "Excited, engaged, confident, interested in your problems" as you said, and also most times funny and fun to work with! However, I believe that in truth, whilst I can be funny, I'm not that much fun to work with. I can be argumentative, picky, stubborn and not easy to compromise.
I try to work on these attitude issues, but it's not something so easy for me to fix. However, in the interview context, like going on a date, I obviously won't expose those faults.
So there's definitely a disparity between the first impression a person can give, even over 5 hour pair programming sessions, and working day after day with them...
>However, in the interview context, like going on a date, I obviously won't expose those faults.
I dono about interviews... but I do know that in sales, sometimes revealing faults, especially real faults, can build a lot of trust. (I mean, the 'real faults' bit really only applies if you are selling something to a customer who understands the product... but that's really the only kind of selling I do, outside of the "selling myself" interview context.) It's more like dating than you think, though, in that I generally don't want to waste my time with someone who still believes that they will find someone "perfect" - you want a employer or customer or date who has been around the block and knows that everyone has flaws, and you've just gotta pick the flaw you can deal with. Then you want them to know about your flaws pretty soon after they know about your assets so that you can both cut your losses if a flaw is a dealbreaker. anything else is wasting time.
I mean, you've gotta show the counter-party your assets first, but in sales, that's easier than in dating, at least for me, as most of my sales prospects read about and come to me; they already think I'm pretty okay, so I can hit them with the "and here are the problems with my setup" just about right out the gate. Come to think of it... the time I've been really successful dating went similarly.
>So there's definitely a disparity between the first impression a person can give, even over 5 hour pair programming sessions, and working day after day with them...
Yeah. My biggest asset is that I do really well in novel situations. My biggest flaw is that I do really poorly once I'm settled in and the situation is no longer novel. So yeah; good short term contractor, shitty long term employee (compared to someone else with a similar level of knowledge)
Unless your company is doing something extraordinarily cool, chances are your product is not enough in and of itself to attract many if any developers on that basis alone. What will attract people is the quality of the work environment, the quality of the people, and the amount of money you can offer them. That's really the gist of it, and during the interview the candidate won't have exact knowledge of any of those factors.
You have to watch out for people just using you to get a better deal at their current job. That's why I put expiry clauses in all offers.
Having said that, of course not all jobs are equal and some jobs are much more desirable for me than other jobs and so I will focus on these unique traits when describing why I'd like to work on that job, but if I were interviewing someone and they mentioned their primary motivation for taking the job was to get paid, I'd think it was a refreshingly honest answer and not hold it against them.
A 5 hour interview is a ludicrous amount of time to take out of someone's day.
A bad answer but an honest answer. I mean, until you work at a place, or unless the job is fucking amazing, there is no reason to pick one over the other. For 95% of dev jobs, there is no big reason.
Anyway, as a company, if you are able to create an atmosphere when interviewees can relax and show "how they really are in a regular day" is a great win.
Like lsc below, I'm also a "mercenary". But probably much less competent and maybe even better in interviewing.
My background is in humint which gives me some skills to "read" people, figure out exactly how to build the trust with the interviewer, get them to like me and even manipulate the conversation towards the questions I want them to ask me... In my 17y IT contracting career, I didn't have a single interview that didn't end up in an offer despite my significant lack of algorithms or programming knowledge. Luckily, I didn't have 5h pair-programming interviews.
You can make it "click" with the company and you can manipulate their "gut feel" to tell them that you would be the ideal candidate for the position.
It's not fair and it's irrational that people like me can get the job instead of some much more capable developers, but that's what humans are - irrational.
I'm not saying algorithms are unimportant, obviously a lot of the tools we use rely on that type of skill. Just that enterprise software is almost always more about workflows, schema design, UI layout, automating processes, etc. Possibly some accounting math is used but generally those formulas would be provided by the accountants anyway.
Is this just something interviewers are asking because it indicates school training? It is just a benchmark of general awareness? Does it indicate understanding of the simplistic recursion that some algorithms use? It seems to me just testing plain old memorization of forumulas - it's not like I expect the interviewee to have thought up the fibonacci sequence on his/her own.
I mean, I don't mind being in the back seat on whichever editor the driver is using, but if I'm driving, I really feel awkward without vim and my plugins and key bindings etc...
It was definitely more distracting than I would have thought going in. Everything is a potential hickup, from tab switching, file navigation and basic shortcuts. It's definitely less than ideal, given that you're essentially context switching into basic operational stuff when what actually matters is the logic of the problem at hand.
"Pair programming is an agile software development technique in which two programmers work together at one workstation. One, the driver, writes code while the other, the observer or navigator, reviews each line of code as it is typed in"
I do not understand people who do the first type. Why? The interviewee is the enemy.
Or consider "Instead of demanding from me why I wanted to work there, he just tried to get a feel for what I was aiming for."
Was there really a difference, or did the writer just click personally with one group and not the other? If it had gone differently, I could imagine him writing that "team one was respectful of my time and allowed me to order my favorite sandwich and eat during the interview, while team 2 expected me to waste yet another hour socializing with the group at a bad restaurant, where they got very aggressive asking about my personal life".
So maybe company one really was hostile; just like you, I've seen that happen. OTOH, maybe it was just a personality clash, or maybe some of it is slanted by the fact that he got an offer from one and not the other. In my experience, once an interview process starts to go bad, I start to see everything the company does in a bad light, and vice versa.
I admit to being sufficiently extraverted and borderline autistic myself that I don't have a good understanding of why people find his "part 1" interviews stressful and freeze up. I mean, it's just talking to hackers, right? I like talking to hackers. Who doesn't like talking to hackers? But I guess standing up and talking in front of a bunch of people, or being grilled to see what you understand and what you don't, is a lot more stressful for most people than it is for me.
My first job had an interview that lasted around 2 hours.
The second had one interview that lasted 90 minutes, then a follow up interview a few weeks later for 90 minutes.
Taking up 5 hours of someone's day (especially if they are unemployed) is wrong and downright pathological. Job seekers are often desperate to get back into the market and abusing their time is grossly unjust. It's fine for the interviewer, they have a job and are in a position of power to decide the fate of the interviewee.
(How are you supposed to take five hours out? Ask for leave in advance and hope the company doesn't mind waiting a fortnight for you to be able to show up? I usually interview before or after work.)
I guess I should read up on concurrency. :)
But recently, I did some pair programming with folks closer to my skill level, and it was much better. I wouldn't swear by it or anything, but we were both working through a really hard problem, and it was helpful to write code together. It was slower, but I felt like I absorbed the problem quicker.
Also, one tip: plug in an extra keyboard. The driver is still the driver, but if the other chimes up and thinks of a better way to write a particular piece of code, it's easier to just let them instead of having them explain it to the driver or having to switch the keyboard over or something.
Some do. Some people swear by it.
> Should I develop this skill more?
Yes, definitely. Think of it as being a more social version of learning a new programming language or systems architecture.
> [I]t was difficult for me because I couldn't get into my usual flow. Even with an extra pair of eyes and hands, I felt like I was working at 50% efficiency.
It's definitely an acquired skill. If you think about it, though, if you're spending most of your time while programming engaged in typing, odds are you're probably doing something wrong (or working in a ridiculously verbose language ;)
He didn't say anything about typing. Pair programming is meant to be slower than alone programming, the extra eyes and ears actually slow you down because you have to reach consensus so often.
Pair programming is about quality, not productivity.
I don't personally find pair programming very useful most of the time, though I've done it now & then... though I do benefit from the half-way version, which is to occasionally talk through problems I'm working on with other developers (in detail, with code).
The worst thing you can do is trick people into hiring you. You'll waste precious months/years of your life.
I mean, you could just look at their github, and the writing on their blog, to determine if there's a baseline of competence.
The vast majority of talented programmers neither have a github account, nor do they keep a programming blog.
Not to mention that holding a full time job and my wanting to spend time with my wife and kid leave very little time to maintain a blog (which I don't) or contribute to OSS (as much as I can, but next to nothing compared to other readers of this site).
Someone could certainly game that, but it's a stretch...