Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login

I expected better from a company like Google. Asking candidates for pre-canned code snippets to cutesy little CS problems on the whiteboard is miserable and the outcome depends too much on what the candidate studied in the last few weeks before the interview. It actually tells you very little about the kind of programmer a person is and the interview itself can get quite horrible on a personal level very fast.

A while ago, I used to conduct job interviews like this. Sort this, insert that, search for the other. I still feel sorry for some of the candidates I did this to. That process was the largest single mistake I made when hiring people. I should instead have asked for the code of some projects they had been working on recently and maybe discussed a few more creative things with them.

In fact, if I could ask a candidate just one question, it would be "what projects are you working on in your spare time?"



view as:

If someone isn't working on something in their spare time, it's a big red flag to me. You need to have the hunger. I'm more turned on by what you have in your github account than whether or not you can do a binary search in your choice of languages.

That's the sort of thing that works just fine in a small company that only needs a few people but, it does not scale.

PS: All of the great developers I have worked with are both old (50+) and have a life outside of code. Spend some time around people with Genius IQ's and 30+ years of experience and you rethink just how important passion really is.


I agree that this is the most valuable way to judge a candidate, but unfortunately I don't think it would work for most students and most companies (been through it all) because: a) students have a fair bit of school work to do, and: b) most companies can't afford the kind of talent that finds the time to work on other projects outside their normal coursework.

Now, for Google that might not be the case — they certainly should be trying to find the top talent they can get their hands on. All the more reason to ask about the extra projects, GitHub account, code samples etc. But just as many people, when they're students, don't appreciate or value the extra work you talk about, they won't do it when they work for Google and are tasked with hiring others. If all you spent time studying were algorithms and C, you won't appreciate the value of open-source contributions and feverishly learning new languages as much as someone else. And you won't hire based on that.

And yes, that's disappointing.


Students can (and should?) put the school work on Github or Bitbucket or whatever. Plus side to that is higher chance of getting to look back in later years. I desperately regret losing track of some old projects, just for missing out on poking fun at my undergrad naivete.

Definitely, but unfortunately a lot of one-off code meant for school assignments isn't valuable for anything else. And I wouldn't want GitHub to be littered with random things that aren't — and don't need to be — FLOSS projects, but instead serve as résumé pieces.

In my spare time I'm working on making the next million for my company. Oh, when I'm not working for my company? I'm with my family or friends.

I feel like the energy I could spend doing a side project is probably better spent getting these last two features in, or fixing those lingering bugs, or getting that automation solid, etc....

It seems really odd to actually penalize someone who leaves it all on the floor. It's like a basketball player saying, "If you really want to see my skills, come to the park. The NBA is just my paycheck." -- is that the guy you want on your team? The guy who will tell his next employer, "Company XYZ paid the bills, but my real cool work is this GitHub project I did on the side".


I think you make a good point. But I also think that in high school, yeah, I want the guy who spends a whole lot of time in the park playing ball, because he's the guy who's gonna make it into the NBA. It takes a big time investment to get really good at something. So, do senior devs need to have a github account? Maybe. Should a junior dev? Definitely.

Your analogy breaks down because the NBA is televised. If you're allowed to show some of your daytime work to an interviewer, by all means do that.

Only part of sport is televised. You don't see camp or practice, which is a big part of the game too. The game you watch on TV is like the shipping product. The code is like the practices, camp, training, etc...

My point is the lead dev for Angry Birds ends up at your desk and it seems almost pompous to say, "Where's your GitHub app?" This person broke his neck to ship, upgrade, and maintain a product that you can look at (the NBA game), yet a lot of people still seem to be saying, "w/o seeing your code (your practice sessions) I need the GitHub repo" (I need to watch you play at the park).

I guess as an employer this works to my advantage if more startups require GitHub accounts, since I can pick off proven talent that doesn't have this requirement. So yeah... it's a great idea! :-)

EDIT: And I should add that I was responding to someone who said that if you aren't working on something in your spare time that this is a red flag. So according to that poster, simply having great code from my "daytime" job isn't sufficient. Kobe Bryant NBA footage isn't sufficient. If he doesn't also play pickup games there must be a problem?!


It also breaks down because virtually no one in the NBA has only the NBA as their employer. At the very least they have sponsorships, many own businesses.. successful people just tend to be hustlers. Hustlers do lots of things.

is that the guy you want on your team? The guy who will tell his next employer, "Company XYZ paid the bills, but my real cool work is this GitHub project I did on the side"

I'll bite. Yeah. I want that guy. I want that guy because he's got energy and enthusiasm to burn, and I'm confident I can give him a place to use it.. Additionally, we'd love to see more open source projects come out of what we're working on..

I feel like the energy I could spend doing a side project is probably better spent getting these last two features in, or fixing those lingering bugs, or getting that automation solid, etc....

Awesome, if this was how it works, but it's not. The people that get itchy enough to bang out these projects on the side need to keep building stuff. Great stuff. I burn out on bug fixes, and automation.. and sometimes I feel like working on something different, so I bang on a new cache library for Django, or write something a little tangential to what we're currently iterating on. In my case, I'm really stoked with all of the problems we have that need doing, so none of my 'side-projects' are totally sideways to the values of our company... but lots of them aren't exactly high priorities :)


Awesome, if this was how it works, but it's not. The people that get itchy enough to bang out these projects on the side need to keep building stuff. Great stuff. I burn out on bug fixes, and automation.

This actually might the crux of the difference. While we have an open moonlighting policy the people that work here are a lot more likely to use the extra coding energy on something directly related to the priorities we have. There's no shortage of things to do. And t's not like you spend three straight weeks fixing bugs -- there's plenty of diversity in things that we need to in the business -- and I suspect most companies I'd want to work at are similar.

And again, I'm not necessarily against side projects. But it seems like an odd way to measure a potential employees passion to the job. It does seem like a great way to measure their passion for side projects, but we generally aren't hiring people explicitly to work on side projects. It seems like a much better way to measure their job passion is to see what they actually did at their job -- look at what they shipped.

If they shipped a crap product, but had a cool side project, what is that really saying? If anything its telling you to NOT hire them, but to get them interested in your product on the side! :-)


It really depends on the situation. At my last job the pay wasn't great and there was no profit sharing or stock options. At least they had interesting projects for me to work on, but still they got me for 8 hours and I did my own projects on the side.

My current employer has profit sharing, I love the work we do and there's always more interesting work to do than a 10 hour day allows. So now the projects I do at home are my pet projects for work that excite me but aren't part of my core tasks.

The question is "Is this someone passionate about programming?" and involvement with open source projects are a great way to find that out, but it's not the only way.

Some one who shows initiative and puts in extra work for a company they're excited about show's just as much passion for programming.

It's that programmer who puts in their hour and a half of coding in between reddit posts and forgets about it when 5 oclock hits that you want to stay away from.


Uh, your company is already paying you -- unless you're getting paid a bonus proportional to the stuff you're writing I see no point to give your company that. You made your company money, but your best ideas and projects should be for you. You work hard and earn your salary, but that's it.

I think it depends on what someone's day job is. If their day job involves really interesting programming challenges which are interesting and require creativity to solve, a programmer's passion and creativity can be invested in that.

If, however, a programmer's day job is maintaining a legacy system that doesn't involve a lot of creativity then there's a greater likelihood that they have untapped passion which will express itself in a side project... and ultimately with them finding a new job that does require creativity.

Judging someone based on their side projects is the wrong approach -- judge them on their creativity and passion. Some are fortunate to have a job which gives them the ability to be creative and passionate during work hours. Others aren't as fortunate and need to express their creativity and passion outside of work hours. The big red flag to not hire is when someone has neither creativity nor passion inside or outside of work hours.


What's your opinion on asking questions like "describe binary search"? I've asked that several times only to get stares or "are you serious?". (I still think it's critical to see someone attempt to code, as well.)

My feeling is that if they are claiming to be "programmers" but seem uncomfortable with basic algorithms/data structures, there could be a problem...no?


There is nothing wrong with asking a person to describe binary search. However it's not a relevant interview question. I assert that the number of times a programmer must single-handedly implement binary search without access to an editor, a parser, and the internet, from scratch, is very very low. You could make some argument about how incompetence in binary search algorithms betrays general incompetence, but I'd rather test for that general incompetence directly by looking at a person's projects.

I think that it's highly likely that a person who can't work out a binary search algorithm probably cannot solve interesting problems in pet projects, unless by interesting, you mean simple web applications or something of that nature.

This is a fair point. I make a point of not asking "CS exam" questions, but I do expect candidates to be familiar with fairly common computer science concepts. (Not-an-Example: In my own interviews I was asked about things like O-notation, and I have run into many, many programmers who don't know what this is.)

I think a question talking about the Django templating system when the interviewee mentions they use Django is fair game, though; and questions that revolve around 'here's a real world problem I want to do with a string, can you write a quick algorithm' are ok, but then I do things like the Greplin programming challenge for fun and I'm not even an engineer =(


> I think a question talking about the Django templating system when the interviewee mentions they use Django is fair game, though

I agree, but it was the only good one I could find in the article.


Thank you. You're not alone.

Legal | privacy