57

We are currently hiring a junior developer to help me out, as I have more projects than I can currently manage. I have never hired anyone who wasn't a friend or at least an acquaintance. I have a phone interview with the only applicant that actually stood out to me (on paper), but I have never done this before.

Our projects are all high scalability, data intensive web applications that process millions of transactions an hour, across multiple servers and clients. To be language/stack specific, we use ASP.Net MVC2, WebForms and C# 4, MSSQL 2008 R2, all running atop Windows Server 2008 R2

What should I ask him? How should I structure the phone call?

11
  • 5
    Why a junior developer and not a senior one?
    – Job
    Mar 17, 2011 at 21:20
  • 10
    Cost; company just became profitable this quarter... and my ego is fragile ;) Mar 17, 2011 at 21:59
  • 48
    In many ways, an "inexpensive" developer can be more costly than an experienced/expensive developer. The fragile ego comment is downright scary. If you never hire people who are smarter than you then you are always the teacher and never the student. You'll get left in the dust that way.
    – JohnFx
    Mar 24, 2011 at 22:23
  • 7
    There are some false juniors out there (<3 years experience but lots of skills). Is age important?
    – James P.
    Jul 9, 2011 at 12:11
  • 3
    If you are hiring Junior Developers, it means that you are not able to evaluate their experience. Because they have not much experience in their short career. On the other hand you can evaluate their programming skills and also see how they write code. So the first step can be some skills test, like http://tests4geeks.com On the second step you can ask them to write simple programs at home. In your case it could be MVC application that shows list of some data using JSON and AJAX. The list refreshes automatically by a timer so posted item can be seen without referesh..
    – harsh
    Dec 18, 2013 at 11:25

9 Answers 9

50

Ask about what tech blogs they read, ask what the applicant finds interesting in current tech and why.

Essentially, for a phone interview you want to figure out if this is someone who is enthusiastic about technology and programming and is interested in learning and knowing more.

Since this is a junior, you can't expect that they know many advanced topics, but you want to be sure they can think like a programmer - give them a simple problem and have them walk you through how they would solve it. It will give you insight into how they think and solve problems.

3
  • I wish I could choose two answers, because both yours and Peter K.'s are a great combo. Mar 18, 2011 at 18:10
  • 6
    This answer is limited, and it will hurt people who follow only this advice. For the phone screen, follow Steve Yegge's advice on it. For an in-person, Have coding challenges, and follow Joel's Guerilla Guide to Interviews. Have a design question - "what are all the steps needed to make <insert common, nontrivial piece of software>?" You'll find that regardless of experience, all good hires have good, fast answers to these problems.
    – Robert P
    Jan 15, 2012 at 20:52
  • Wish I could +3 @RobertP blogs from industry folks like Yegge, Joel, and Atwood are treasure troves for anyone interviewing or in any leadership position whatsoever. or anyone in the industry really, but especially so if you are positioned to give guidance or gauge other engineers. Oct 21, 2012 at 18:33
26

I take an open-ended approach to phone interviews, but to put some structure on it I usually ask the person to talk through the resume that they submitted. Often, the way they go through their resume will prompt other questions and you'll get a better understanding of what they are like.

The other thing to think about during the phone interview is to ask: Could I work with this person? Are they energetic? Annoying? Precise?

21

Code with them.

You should definitely do the usual interview stuff. But I don't hire anybody without doing a pair programming session with them.

My approach: I'll take 2-3 hours and a toy problem (e.g., "Let's build Twitter v 0.1" for a full-stack dev, or "Let's implement List from primitives" for a back-end person). We'll sit down at the same computer and we'll discuss how to tackle it. I'll write the first unit test and say, "make that pass". Maybe I'll write the next couple of tests to help them get going. And then I generally let them run, jumping in only occasionally. As we get low on time, I'll stop them and ask where they'd take it next, and what they'd want to do before pushing it live.

Things I look for:

  • Can they collaborate well?
  • Do they understand the basics?
  • Can they break down a problem into parts?
  • Do they value clean code?
  • Do they catch their own bugs?
  • Do they try to bullshit when they don't know something?
  • Do they enjoy coding?
4
  • 21
    I seriously doubt a Junior is going to do well on a pair programming session with TDD style fashion, or even unit tests in general. Mar 24, 2011 at 21:10
  • 3
    Depends on the junior programmer's background. I just hired one last week who was great at it. More broadly, though, that's part of what I'm trying to find out when interviewing. If they aren't good at the testing part, then I'll just write the tests myself, or let them charge ahead without tests. Either way lets me see what their strengths and weaknesses are. Mar 24, 2011 at 21:47
  • 2
    I wouldn't like to do this now, after 10 years experience, never mind when I was a junior. A horrible thought! Jun 27, 2012 at 12:56
  • 3
    I would consider myself a junior programmer and would welcome this approach to show how and what I can do. All too often I come across questions that require dictionary perfect definitions with little regard to their use and overall implementation. Would you rather I quote a memorized list of the uses of the static keyword off Wikipedia or show how I can use it in a viable and applicable context?
    – amcc
    Oct 22, 2012 at 1:49
7

What's your Stack Overflow account name?

One of the best ways to get to know how someone's code is going to look is by seeing it first hand. One of the best ways to do that is via SO.

Otherwise, standard questions apply. Ask about difficult situations and how they've overcome them. Ask about what new languages they're learning or thinking about learning, and why. Ask them what IDE they use, and why did they choose it? What source control?

You can learn a lot by asking open ended questions that might not relate to a specific project, but will instead allow them to work through with you their thought process.

5
  • Better ask for their github account, although they probably would have shared that info if they had an account.
    – Job
    Mar 17, 2011 at 21:00
  • 8
    This one time I logged into SO and realized 90% of the people on there only care about web development...then I left...so much for my rep.
    – Pemdas
    Mar 18, 2011 at 3:02
  • 4
    While this may work, it is not necessarily accurate. One may put significant effort in their paying job than in the casual advice contributed.
    – NoChance
    Nov 19, 2011 at 12:27
  • 7
    For what it's worth, some of the best developers at my company either don't have an SO account or have a reputation < 100. Of course it's great if they have an account with a high rep, but you can't read much into them not having a high one. Nov 19, 2011 at 15:53
  • Actually, if the candidate is somewhat active on SO (or if they were active sometimes in the past), you'll likely find the link to it in their CV. On the other hand, interviewers rarely have the time to look over something like this. Which in some cases can be good for you, because I for example am not proud of every question / answer that I posted on SO. Nov 19, 2013 at 12:24
6

One thing I did not see here in my quick read is the need to ask them about:

1 - Willingness to learn

2 - Ability to self teach vs. formal training

3 - Example of something they learned themselves in the past

4 - An example of areas they are not comfortable with

5 - General high level question like "if your are tasked with building a web application about ... what tasks that need to occur and who should do them" - This should give you an idea about their current knowledge about the development process - It does not have to be accurate, but at least you will get to know their view as is today.

4

Talk me through a project you've worked on in the past

  • Describe the overall architecture of the project. High level is fine.
  • What's one thing you liked about the project.
  • What's one thing you disliked about the project.
  • What's something that, in hindsight, you would have done differently?

This is a great question for interviews in my opinion, phone or otherwise. If they can talk intelligently about a project they've worked on, chances are they "get it". You're hiring a junior level developer, so it isn't important that they be an expert yet, but they should at least understand their field well enough to talk about it. Usually the people you will want to hire will have no trouble running with this, while the people you may want to stay away from will answer in a couple of sentences or less.

What do you do to stay current?

  • What blogs do you read?
  • What books have you read / are you reading?
  • Anything else?

In an industry that's changing constantly, I think it's important for them to be staying current. This isn't the most important question I ask in an interview, but if they can't come up with anything to say, it's not a great sign.

Tell me how you would write a Bicycle class

Maybe a better question for an in person interview so they can actually write some pseudo code, but I think it could work for a phone interview as well... Describe a bicycle (it has handle bars, wheels, etc. Someone rides it.) and have them describe how they would model the class(es). Nothing ground breaking here, but if they struggle with this question, they likely are still TOO junior to be an asset.

2

There are plenty of good interview tips already written, but I don't think you can fill this position until you know exactly what they are going to do on a day to day basis. If your first thought was, "Whatever I need them to do." just stop. Find a specific chunk of code for them to review. Pick the best and worst code for them to look at and see if they know the difference. Give them areas to work on for a first quick project that may have been neglected.

Hopefully you've hired the best programmer, but everyone has areas they are better/more experienced at than others. Take advantage of it and define their role accordingly.

Oh, and hire someone with a history of getting things done.

0

When you are on a one on one discussion with the developer, you can get to know him and then check if they are honest with you.

In order to do so, you can ask him the following question to know how honest he really is

  1. If they have done any certifications, like a Microsoft Certification check with them to know whether they have genuinely studied for it and clear it.

  2. Some junior developers who have done their final year projects, would have not done the project by themselves i.e their friends must have done it for them etc.

Being honest plays a very important role, when the junior developer is entrusted with confidential projects.

If you feel you can trust them, then you can give a questionnaire on which technologies they are being recruited followed by a practical text with some case scenario to check if they have the logical ability i.e to check whether they have constant touch in programming.

2
  • 1
    assuming the worst of people?
    – tp1
    Nov 19, 2011 at 15:40
  • +1 for the assumption. @tp1 Keeping all options open. :D Jan 20, 2012 at 9:48
0

Sandglaz CEO Nada Aldahleh recently wrote a blog post about this, based on her own experience of hiring developers for her startup. Here are some of the things she looks for:

  • problem solving mind-set
  • strong communication skills
  • ask architecture and algorithm questions; a junior developer should be able to architect new small features and algorithm questions can be telling about problem-solving mindset and the kind of foundation they have
  • puzzles to isolate analytical skills

And, of course, the programming test, which should not consists though of the Fizz Buzz question. A real-life assignment that can be completed within a couple of hours at your office would be the best kind of test.

You can read more of her advice here: http://blog.sandglaz.com/how-to-interview-and-hire-junior-developers/

Not the answer you're looking for? Browse other questions tagged or ask your own question.