Friday, November 5, 2010

Interviewing & Dating for the Techie : Playing the game

I’ve seen quite a few posts recently about interviewing, hiring & job hunting in IT, so I thought I’d share my views.

There seems to be quite a divide between companies that think they are the best, want to be, and ones that actually are. The latter are fun, passionate, free flowing places where everyone wants to work. The former seem to just pay lip service to the idea, while demanding their (actual and potential) employees pick up the slack of the organisation.

At least the ones wanting to be, know where they are, and are trying!

The flip side is there are a lot of job hunters, who aren’t realistic about their own abilities, or who haven’t really thought about what they are after.

I’ve been the interviewee and the interviewer a few times over my career, so like a lot of us I have dealt with both sides of the coin. A lot of time is spent sorting the suitable people from the unsuitable people. Just as there is sorting suitable organisations from unsuitable. I know how tiring and frustrating it is for both sides.

It cuts both ways for people, and organisations. Try to know where you really are on your side of the fence, when it comes to what you have to offer and what you can realistically partner with.

I liken it to dating as there are some fun analogies, as well as a lot of similarities. There is a good reason for that, because it's all about looking for, and starting healthy relationships with suitable people.

Personally I’m either hiring for, or negotiating contracts. So it’s a combined issue for me, as I’m in either one of the roles at various point in time. Either having the power, or doing the chasing. Or as well see, just assuming it's that way.

[analogy time] Depending on your cultural & social context, there is usually a pursuer and the pursued in typical dating...[/analogy time]

So what is the frustration both sides experience, and what can we do about it ?

What’s being looked for - All that glitters is not gold

What constitutes a suitable employee (I’ll talk about a company later) might be wholly technical, (as appears to be primarily for rethinkDB) though it’s always what is relevant. If you are hiring a C/C++/etc coder (or call yourself one) you sure as hell should be able to (create then) reverse a linked list in code in an interview, and get most of the code right.

That is  suitable to them, I’m sure they look at other areas (it’s just and example).

I know some excellent problem solvers, who could solve the problem in PHP. They  would use an array and a combination of array_push(), array_pop(), array_slice(), etc and foreach() for traversal. Though would figure out the syntax over time in C for the logic they know, if they had to.

[aside] Also, they would likely develop it much faster in PHP, it would be easier to read, support and understand, Though I digress into the “bigger picture” of what makes a software engineer and team member, over a hacker/coder/etc........ [/aside]

I’d do it in PHP or Java myself, though it’s what's is relevant & suitable.

What is relevant to people and organisations? What working challenges and environment is an individual looking for? What is an organisation looking to solve or get done, and in what manner?

I’m far more interested in getting the job done well. So when interviewing I’m assessing someone's ability to think about what the actual problem is, and what are the different approaches are. I don’t want to limit how they do it with leading questions, I want to see them in action being creative. So what if they don't have the specific skills now, if they are the right people they will learn them.

And being able to offer that learning is valuable, I'll take knowledge over money (sure once I have the bills paid !).

I’ve tripped up lots of people in interviews with questions that (most, I think) in any normal situation would of likely figure out. I think these kind of “solve-everything-in-5-mins” problems under pressure, has a lot more to do with the interviewers ego and bad technique. They have little to do with finding good problem solvers, who can develop solutions.

Doing this is much like asking on a date “So why are you better than my ex they were perfect and could do everything perfectly. Now explain to me why you’re perfect as well, while I judge you in a narrow way, opposed to learn about you”

I’ve been guilty of it, and I’ve experienced it in interviews with people who know no better, at least now I can see it for what it is.

There is a balance between skills in the work place, and more importantly in teams. Personally I rate the ability to communicate (ideas, questions, learning, etc) and the desire to learn very highly.

As with rock stars vs rock solid programmers what's the point of having an “uber l33t” coder who dose nothing but destroy the team, and therefore the product ...... and all because they can code a simple problem in 4 minutes, opposed to 8. You’ll get your Ning re-invent-the-wheel problem sorted out in record time. Though can that person communicate it, and then help the team learn and grow? Let alone have they ever looked after such a system in operations, or documented it for others that don’t speak regex naturally.

[aside] There is a lot to be said for putting developers on support to learn, before working on the code & systems. At vBulletin the original developers (including me) all did support, to keep us close to the customers and daily issues.[/aside]

As for a programmers who actually have a (holistic) systems view of what they are doing, opposed to myopic (albeit good) view of what they are doing in an IDE is worth an awful lot. It’s about multi functioning teams and well rounded people to me, I’ll take a slight hit on the technical front for someone who knows how the world works, and loves to learn about it.

Employees - Flirting with companies and measuring potential

Do you know what your goals are? Obvious answer #1 for a lot of people is “get a  job/contract and earn some money”.

Though that is the outcome, how about :

  • What does that job entail : more of the same and safe, or trying something new
  • What is the environment like : noisy office for 8 hours, or some flexible telecommuting
  • What is the reward associated with it (and why) : being realistic, and money is one part
  • What is the team like (personally I don’t like to work with people I can’t have a beer with)

So figure out what it is you want. Better to have a good idea and stick to it, as you don’t want to find out X months in that you’ve “just figured out” you want to telecommute 50% of the time.

[analogy time] You wanted a relationship with someone who you could travel with, and ended up dating a stay-at-home person[/analogy time]

So you’ve figured out what you want, though what about what you can offer?

Good relationships are all about give and take, in balance. Are you average (bad and relative term, I know) in the areas you like to work in, though you’re trying to get into top end teams. Confused and angry when getting turned down?

[analogy time]Constantly hitting on the super model with a PhD, who teaches the Dalai Lama how to be chilled, and getting turned down?[/analogy time]

When evaluating an employer position :

  • What are they really offering
  • What potential do they have
  • Where could you go with them
  • Do they really do what you want
  • Can you see yourself happy there
  • Remember, you are interviewing them as well

To expand on the last point. I’ve seen people overwhelmed in interviews, people either nervous or desperate for a job (and I sympathise with people experiencing hard times and need to pay bills).

Though remember this is how you appear to someone on your first meeting, and they are initially (consciously or not) assessing you on behaviour, more than your C.V./Resume.

[analogy time]Oh I met someone last night and they seemed so needy, they would be a total drain on me, not calling that one back![/analogy time]


[analogy time] Wow, they were so calm and confident without being pushy or arrogant, was interested in my and left me wanting to know more, I can’t wait to meet again [/analogy time]

Personally I used to be horrendous in interviews, due to seeing them the wrong way and thinking it was all on me. Then I built up some self-confidence, and realised I’m interviewing them as well. They are the ones who need things done, and I’m the one who can do them.

That and no one is perfect all the time, so don’t try to be, you'll fail. Admit your mistakes and explain what you learned. Say when you don’t know something, but explain how you would figure it out, or find out.

If you are genuine and it doesn't work out, at least you know it wasn’t for you.

Employers - Attracting, filtering and being honest

If you want happy, dynamic, creative and over all highly productive people, guess what, you have to know how to facilitate that, and have it as part of the DNA of your organisation.

You want X, you have to be X.

Good people know what they are worth and what value they have to organisations, you are being interviewed as well. Being abusive in interviews will get you people who are attracted to abusive relationships, i.e. the kind that are dysfunctional themselves (I’ve learnt enough about that training in counselling to see it in interviews):

  • "You have to own everything, even stuff you didn’t code”
  • “You will be happy for me to call you any time of the day because I want something done”
  • “If you’re hard enough to run with the dogs, I *might* throw you a bone”
  • “So what if you miss your anniversary, you’ll have more”

Also, what are you doing only advertising for people on Craigslist and expecting the best to throw themselves at your feet? You want open source contributes, and flexible people, how flexible are you, and how does your organisation support open source ?

If you have good people, then tend to know other good people as well. Though it’s not worth relying on just that wholly, or just recruiters, or just any one thing.

[analogy time] Standing and the bar looking down your nose at all the “potentials” who aren’t good enough for you, expecting them to come running and beg for your attention? [/analogy time]

How many people have snapped out of it, I woke up and thought : “Hang on, this is about more than money for me, I’m not going to take this **** any more”.

Good organisations & people know this, and look at themselves before others, first. Self awareness is key, be that with individuals or organisations. Especially when getting into relationships with others, know who you are and then be honest about it, it saves a lot of time and grief.

It’s starts before the interview, as it’s about the personality and culture of the organisation and what they do. Are they portraying that honestly and properly? I once heard “if you are going to be buff, be naked” sounds good to me.

[analogy time] Hmmm, no ...... I think I’ll leave this one ![/analogy time]

Get involved with the local developer community, and the good ones who are aware of themselves and organisations will find you out. Be open to good people, not limited rigid skill set list.

Do great people meet all the time and have healthy relationships, in sleazy pick up bars with one side being condescending to the other. Or do they more often meeting doing things they both love and share?

Don’t just put lists of arbitrary requirements on your web site that don’t really have a bearing on finding good problem solvers, you’re just copying the people you already have. There is a company here in Vancouver, that just list a huge range of Java technologies and says you must have 7 years in all of them (without exception) to even talk to them. I dare say they get what they ask for ....... narrowness. Suitable to them, maybe yes, though understanding how to find good people and attract developers, defiantly not.

[analogy time] You *must* be 6’5”, have {these} dimensions, blue eyes, and drive this type of car.[/analogy time]

[aside] I could be up to speed on what they do in a few months or so I’d think, I love playing with Java. Though wouldn’t bother to deal with them because of how they portray themselves. [/aside]

So you’ve finally met for the first date ....... err interview. Now given that I’m talking about technical people there is an element of assessing suitability the job, or course. Do they have enough knowledge of the domain you work in? What is their current skill set?

Both are valid, though not the whole picture.

You are not going to keep someone who is naturally creative and who loves to learn, by getting them to do what they have already done a hundred times. You will keep them (engaged) by allowing them to grow, and supporting them in the new role.

Interview for future potential, not just current limits. If you don’t, you are limiting both of you from the outset. You will loose the good people, as they will get frustrated. So think about their future as well as the organisations when talking.

[analogy time] Sit on the couch every night watching re-runs when you’re partner wants to go dancing (or do anything fun) for too long and see what happens ......[/analogy time]

Just as the individuals have to be honest about where they are and what they offer, so do the organisations. Or the frustration of the miss-match will separate the two, once the illusion is up.

Don’t bother to ask contrived questions in an interview either. Or ones where you are looking for a specific answer, as you are just limiting everyone from the outset again. Make it relevant to what you do, then you’ll actually get an answer that will gauge their passion of the topic.

Passion can be positive or negative, as long as it’s there. Apathy is something I avoid. I can talk about event driven systems, OO, state based machines, brewing beer, caches, network latency and how to scale things till the cows come home. On the flip side I can tear a certain CMS that is commonly misused, apart, all day and back it up as to why.

If a person can’t get excited about a topic that is core and relevant to the company then it’s a warning flag. Even if they can’t explain the exact details there and then, given passion they’ll put in the hours to learn. It’s the mindset it’s the passion, if they don’t have it move on.

[analogy time] Hey, do you like sailing, it’s really important to me, what do you think? ....... Meh, it’s OK I suppose, boats and things.[/analogy time]

Also if it took your organisation a team and weeks to figure out a suitable answer to a question you are asking in an interview, don’t expect a perfect one in 5 minuets in an interview situation.  It’s about how the persons mind works, how they explore and work though issues, not the specific thing you ask them. Also if they falter and then you give your answer expecting them to say it’s brilliant, so you feel good, it’s a fair sign you’re there for your ego, not to interview properly.

Three final easy points :

  • Have a process and explain it up front, and explain what and why
  • Always contact people you’re talking to let them know if it’s a no, it’s called courtesy
  • Don’t do the talking, let them

While I agree with most of points Joel makes, I think he is missing the point about what is relevant today for most people. Not 10-15 years ago when everyone had to learn C to accomplish anything,  and some people laughed at Java in it’s infancy. That is wholly focusing on implementation of logic. I look for the understanding of logic itself, and how it is applied and used in real world contexts. A programming language (mostly) is just a tool, solving the riddle is the prize.

I do it in PHP, you do it in ASP; meh, we both go to the bar !

I appreciate the power that comes from understanding how everything works down to the CPU and assembler level, as I studied it throughout my life since I was 9, and at university for years. Though I don’t expect every developer to know all of it, all of the time.

We (developers) tend to get rather good at what we do in the moment, I might not know Erlang now, though give me a challenge and some time.  It’s the ability to learn and adapt to get a problem solved, that I look for.

[aside] Though as with all things, that we (bloggers) see subjects from a different point of view is good, it should ideally make us all better![/aside]

One point of rethinkDB’s that I do disagree with, is that unless a candidate is intimidating, they are worthless. Utter nonsense and smacks wholly of a ego driven development & environment to me.

Overwhelmingly impressed by someone yes, intimidated no.

If you are taking your ego into an interview and feeling intimidated, or someone is using that technique in an interview, something is wrong.

It’s about exploring and learning about each other, not trying to over power each other.

Do you really want that same person in the office every day explaining to the rest of the team why their Kung Foo is so weak and how they should all bow down? ....... you might, though that’s no place I, or anyone I know who is any good would want to work.

I’ll take strength in quite confidence, over arrogance any day.

Aaron Swartz seems to understand what’s important, and has some good ideas on the matter.


A good thing to remember is that “best” isn’t always “highest profile company” or “most money”.

Best is about the match between the person and the organisation, and the team within it , that they are working with.

End Points

Interviews (and dates usually for that matter) are usually uncomfortable for at least one side, and a lot of great people don’t perform well under that kind of pressure. I remember my early years of dating & interviewing ....... harrowing! So trying to bully a interviewee or BS a interviewer isn’t going to do either side any favours.

Though if the meeting can get onto something that one or both parties are passionate about, then all the better. That is for the interviewer to try and make happen.

I agree a lot with Andrew over on, passion is massively important, I’d never want to be in a relationship with out it, personal or professional. To be self actualizing and a developer that gets into Flow/The Zone/Hack mode often, you have to be authentic and present in what you are doing.

You can’t fake the funk, as the saying goes.

Though I do have to watch so I don't get consumed by it. When I’m not in a healthy relationship, employees (and bad partners) are very prone to exploiting it when it’s one way.

Make sure things progress at a suitable pace.

Also passion is something you have to keep alive and grow together with, keep up the challenges, finding new heights and making sure both sides are getting their needs met.

On that note, may you all live happily ever after !

Till next time, take care of yourselves


  1. Nice post Jeremy. I really like your analogies of hiring and dating.

  2. Thanks Nathan, having been though both it made sense to point out the similarities !

    I dare say you see a far bit of it, at the speed dating for hiring :

  3. Thank you Jeremy for this nice post! I am currently going through interviews, from the interviewee's side, and evaluating the outcome I sometimes really think that employers don't consider the points you have written at all anymore! As I wish what you are saying would be the way to go, I am so pleased to know that these concepts still exist and are believed in by someone other than myself and the other interviewees! So again, thank you!

    1. I interview a lot in Vancouver so as an employeer the values exist for me as it's a two way deal.

      I believe good business is built on good relationships, which in turn are built on respect. I've been though the same experience here in Vancouver and now refuse to deal with the usual big (game) employers and recruiters as they have a distinct lack of respect for what is going on and the people.

      I find it's a good filter in both directions. Companies that interview badly and don't think about the interviewee, isn't some where I want to work.

      It's like relationships, if you're dating and you meet a jerk, you don't date them !!

    2. I totally agree, and that's this concept that keeps my/other job seekers' spirit high!