Live data from Hacker News

Ask HN: How do you recognize a great programmer to hire?

news.ycombinator.com

21–30 of 36 posts

Re: Ask HN: How do you recognize a great programmer to hire?

#21

I recently had a discussion with a very senior developer about a project he'd been asked to do. It's a 6+ month effort and he's just getting started. The project is to be delivered to a customer, but the customer has not been engaged and does not know we are working on it. I asked the dev how he'd feel if he completed the project and the customer said, 'Nah, not interested, thanks anyway.' His response: 'As long as I…

What should he say? He would probably feel like updating his LinkedIn profile.

Re: Ask HN: How do you recognize a great programmer to hire?

#22
post #17

One things for sure: don't waste their time with long puzzles and month long evaluation cycles. Having just gone through the "find a new job" experience, I can say that the most decisive companies were the biggest. I know they say you should hire slowly, but I think that rule doesn't work well for finding really good talent. When very talented people are looking they will be off the market in 2 seconds. So instead of…

I've always interpreted "hire slow" as grow the team slowly and only when you really really need to bring on a new person as opposed to having a slow hiring process. Macro vs micro. I think you can certainly hire slow and have someone through the cycle in 1–2 weeks or less (for an early startup).

Re: Ask HN: How do you recognize a great programmer to hire?

#23
My process:

* Make them do a task that is both relevant and realistic with respect to what you do.

* Leave 'natural' traps in the task - code problems that have tripped you up in the past and see if the candidate falls into the same trap or spots it.

* Ask the candidate to clean up their code near the end and watch what they do.

Re: Ask HN: How do you recognize a great programmer to hire?

#24

Do what most of the Software companies do. In order to filter the top %1, look if: - the applicant worked for one of the big four (Google, Apple, FB, Microsoft). If these companies gave the applicant a GO at some point, maybe you should too. - the applicant is self-driven and develop non-work related software. Side projects, etc. - the applicant brings new skills on top of your requirements (e.g. design, other indust…

>- the applicant worked for one of the big four (Google, Apple, FB, Microsoft). If these companies gave the applicant a GO at some point, maybe you should too.

Be careful about that; said people are no longer at those companies for a reason. Often that reason is innocuous but there are people who slip through their hiring process and get washed out later.

The other thing to know is there's a lot more process at those giant companies, with good reason; "move fast and break things" doesn't work when you're making OSes or globally used search engines. Some people with long tenure there wind up more adept at managing process than the technical stuff.

Re: Ask HN: How do you recognize a great programmer to hire?

#26

Do what most of the Software companies do. In order to filter the top %1, look if: - the applicant worked for one of the big four (Google, Apple, FB, Microsoft). If these companies gave the applicant a GO at some point, maybe you should too. - the applicant is self-driven and develop non-work related software. Side projects, etc. - the applicant brings new skills on top of your requirements (e.g. design, other indust…

> - the applicant worked for one of the big four (Google, Apple, FB, Microsoft). If these companies gave the applicant a GO at some point, maybe you should too. Be careful about that; said people are no longer at those companies for a reason. Often that reason is innocuous but there are people who slip through their hiring process and get washed out later. The other thing to know is there's a lot more process at thos…

Engineers at the big 4 get exposed to a lot more opportunities... In today's world if you stayed at the same spot (title/employer) for more than 2 years I'd be asking myself:

- Why you didn't get promoted?

- Are you not landing any job interviews? Because I know you get tones of emails from recruiters

- Are you still learning new things? Do you want to learn new things?

In terms of processes at the big companies, you're looking for smart people... Processes don't tell me if you're smart or not. It's just you dealing with rules like any other human being.

Re: Ask HN: How do you recognize a great programmer to hire?

#27
post #17

One things for sure: don't waste their time with long puzzles and month long evaluation cycles. Having just gone through the "find a new job" experience, I can say that the most decisive companies were the biggest. I know they say you should hire slowly, but I think that rule doesn't work well for finding really good talent. When very talented people are looking they will be off the market in 2 seconds. So instead of…

I've always interpreted "hire slow" as grow the team slowly and only when you really really need to bring on a new person as opposed to having a slow hiring process. Macro vs micro. I think you can certainly hire slow and have someone through the cycle in 1–2 weeks or less (for an early startup).

That is my take of hire slow as well.

Although in most cases if the second guy you talk to is perfect, you may still need to look a bit more to be sure.

Re: Ask HN: How do you recognize a great programmer to hire?

#28
I think the hardest part is getting some kind of hiring flow anyway. Knowing who to contact is the biggest obstacle. But once you've got someone...

First: actually read the resume and letter. Learn about the experience this person has. Unless you're hiring out of a bootcamp, the candidate has worked on something and you should not be walking in blind. (If he or she hasn't articulated it in the resume and letter, then I wouldn't expect to have initiated an meeting.)

I don't use challenges, homework, riddles, quizzes, etc. anymore. Again, we're not starting from scratch. I hear it and wonder, "Do you really think I haven't yet figured out the difference between fifo and lifo?" (Or, "Here's a little, 5-minute challenge. Just a little date math." Oops. Forgot the leap second.)

I focus on problem decomposition. I ask about problems that the person has worked on. I talk about my own systems and have him or her opine on it. We brainstorm. These discussions get into things like:

* What was the situation? Why was it a problem? Was the solution obvious? Was is tricky to intuit, or was it a lot of work to implement?

* What were your constraints? Were they natural or derived? (Perhaps it was a very-low-resource environment, or there was real-time requirement, or it needed resistance to a type of attack, or it required strict regulatory compliance.)

* What was the mental model and how did the individual arrive at it? Did it change during implementation?

This structure has worked for me at most levels of hiring. I can ask a very junior person who, say, writes SQL to generate reports to talk about a particularly challenging report, or one that is particularly elegant. If he says, "I changed the order of operations to get the rows down from 4 quadrillion to 400,000" then I know that, conceptually, he knows about cardinality.

I can ask a director to talk about a project that he ran with a remote team in the same way. If the drop has to happen in sync and you have people in 4 time zones spanning 10 hours, did he wake people up or did he use some kind of technological orchestration?

Also, I think it's worth noting that quite a few very good programmers do not keep very public profiles, so I really don't trust the greenness of a github profile.

Re: Ask HN: How do you recognize a great programmer to hire?

#29

I recently had a discussion with a very senior developer about a project he'd been asked to do. It's a 6+ month effort and he's just getting started. The project is to be delivered to a customer, but the customer has not been engaged and does not know we are working on it. I asked the dev how he'd feel if he completed the project and the customer said, 'Nah, not interested, thanks anyway.' His response: 'As long as I…

Sheesh. Have we really gotten to a point where a job can't be a job? I would love to make my own games all day long, but I'm not financially independent yet, so I work for other people.

Sometimes their projects work out. Sometimes they don't. I definitely feel bad when they don't, but I also do the practical thing and keep moving forward with my life.

There comes a point, after years of experience, where you just have to shrug your shoulders and accept that you aren't the one running your clients' show. You can provide feedback. You can be there when they need you. You can do everything in your power to make it a success.

But it's not your thing until you own equity in it. The emotional separation is 100% justified.

Re: Ask HN: How do you recognize a great programmer to hire?

#30
post #28

I think the hardest part is getting some kind of hiring flow anyway. Knowing who to contact is the biggest obstacle. But once you've got someone... First: actually read the resume and letter. Learn about the experience this person has. Unless you're hiring out of a bootcamp, the candidate has worked on something and you should not be walking in blind. (If he or she hasn't articulated it in the resume and letter, then…

>First: actually read the resume and letter. Learn about the experience this person has.

>I don't use challenges, homework, riddles, quizzes, etc. anymore.

Unless you don't get many resumes, I find it hard to believe that this is a good hiring flow for you at all. A lot of people who agree with me will often say that nobody has time to be reading hundreds or thousands of resumes, but I'll take it one step further: unless you are rigorously verifying the information on resumes, resumes are basically useless.

It is way too easy to lie on a resume. I don't mean mere embellishment or exaggeration. I mean straight-up lying. I looked at your profile. You have an impressive resume. What would stop me from copying your resume and submitting it as mine? Your impressive positions would be harder to fake, so I'd just lower all the CTO, head, VP, and chief titles to lower level titles.

Let's take this even further. Let's pretend that you actually call the references for the positions on all the resumes that you read. What's stopping an applicant from giving you a friend's number and having them pretend to be their former manager/employer? One could argue that the same sort of deceit works for challenges, quizzes, etc., but there's the additional barrier of at least knowing a decent enough programmer who can take the challenge or quiz for you.

Post reply on HN