Live data from Hacker News

How not to hire a software engineer

tonsky.me

61–70 of 239 posts

Re: How not to hire a software engineer

#61

I look to see if I can trust them to not do dumb things. That's really it. What's the ego, arrogance, competence, willingness to ask questions, interrogate things, redefine problems to be less work (or none at all). Do you see what's not there? Programming language competency. Database knowledge. Things like that. I've been hired as a Ruby programmer, I didn't know Ruby. I was hired for mainframes in the 90s - I had…

That's what happened at my first job - told to get the book on Fortran from company library and learn it.

Re: How not to hire a software engineer

#62
Best way to hire programmers is to hire them without getting them to code.

Before anyone burns me at the stake...It's not really the "best" but it can work. I was a coding interview advocate for a long time. I changed it from solving puzzles, to solving real problems taken from the domain they were interviewing for. In the early years I was a bit surprised by who struggled with coding, but I noticed a trend after a while, I could mostly tell how well someone was going to do from the preliminary discussions about software / design / experience / tradeoffs / etc. So I actually learn a lot more about the developer from that discussion and have tried to get better at that to explore more things. I like to focus on the nitty gritty of real problems, hand ow to approach architecting a piece of software from all angles. I do still use coding where I think it might help, with grads, I mostly do coding as its a good icebreaker into general conversation, and intermediates where their experience is still limited, I like to set problems that test peoples ability to keep their code tidy and modular, to see if they have developed any coding discipline, but sometimes from the initial conversation I will already know. But most often I already have a good idea.

Re: How not to hire a software engineer

#63
post #62

Best way to hire programmers is to hire them without getting them to code. Before anyone burns me at the stake...It's not really the "best" but it can work. I was a coding interview advocate for a long time. I changed it from solving puzzles, to solving real problems taken from the domain they were interviewing for. In the early years I was a bit surprised by who struggled with coding, but I noticed a trend after a w…

While a lot of what you say is true, that hiring pattern leaves you exposed to the bullshit artists.

I always want to see some kind of code from someone for whom coding ability matters at all. Doesn’t need to be extensive, tricky, or even written live in front of us, but when the job is more than talking, I want to see more than just talking to evaluate.

Re: How not to hire a software engineer

#64
post #49
post #15

Earlier quoted context omitted.

I'm not sure this is true but I've heard people who work in 'hiring' say so: from the company's point of view there is almost no upside to providing insightful and useful feedback, and there's always a chance that feedback will be used to sue for discrimination, or ridicule the company online, etc. Best to be generic and forgotten about by the candidate as soon as possible

Mostly this. I was a hiring manager at a big company where HR made it very clear we cannot give specific feedback to applicants. We also could not give references for the same reason; fear of being sued. But after a while you learn to speak in code for those cases where you really feel you need to provide meaningful information. The last time I was asked for a reference I was contacted by a hiring manager who said th…

wtf. what you are describing is something that i would say is suable. and should be.

you basically said dont hire that person to someone. because of your bad experience with that ex-colleague ?. you are denying that person a chance. how come ?

what are you going to do next time someone calls for reference ? the same ?

immature, questionable, discriminating practices...

Re: How not to hire a software engineer

#65

Here's an idea for how to actually do a technical test (if you do want to do one). 1. You bring the candidate in to your office. You have their future desk already available with computer and development environment already functional. Pick a somewhat standard environment configuration. 2. Have an exercise already prepared. Best option is not a "build this from scratch" but have something that already works and needs…

Thanks! This is a nice approach which I will try with our next front-end-candidate. Currently our process consists of three exercises: A small website-layout where the candidate has to fix two styling-bugs and equalize some container-heights (CSS-Part); a Palindrome-Function (JS-Part); and a discussion where we look at a webpage-layout, and go through how they would structure it HTML/Component-wise and talk about gen…

> Can you name an example of an app which the candidate has to extend?

Oh, it can be almost anything, but it depends a lot on the role. For the kind of work you mention you could, say, give them an already built layout and ask them to add some additional component or section, or to rearrange some parts. Maybe add a form similar to some other one in a different page. Or something like "add an option for this block to be hidden/shown depending on a configuration". Really anything can do.

I've sometimes had success picking up some minor tasks that we had already done in the previous months. Using things you actually work on is nice. It gives them some sense of what you do and gives you good knowledge about the task and possible difficulties. There's the risk of becoming biased towards the particular solution you implemented. To combat this I sometimes pick tasks I didn't work on myself or that I wasn't completely satisfied with the solution we achieved.

Re: How not to hire a software engineer

#66

Here's an idea for how to actually do a technical test (if you do want to do one). 1. You bring the candidate in to your office. You have their future desk already available with computer and development environment already functional. Pick a somewhat standard environment configuration. 2. Have an exercise already prepared. Best option is not a "build this from scratch" but have something that already works and needs…

In all my years of interviewing (~25), I've only had this happen once - I got sat in front of an internet connected laptop, given a perfectly sensible task, and left alone for half an hour. Most of the time it's "solve this already thoroughly solved problem in your own time but with {one hand in a blender, whilst you're on fire, without using any variables}" or some such bullshit.

In my similar amount of experience... I have seen an approach similar to this maybe twice. Sad, yeah.

I have used it, though, when I had to hire. And it went fairly well. I don't have any hiring responsibilities now so I haven't had the chance to use it more often.

Re: How not to hire a software engineer

#67
Agree with everything the OP said but I'd add: when hiring for senior engineers, this process is even more absurd because the real skill of senior engineers is not how much horizontal knowledge they've acquired (knowing web frameworks, Linux guts, databases, distributed systems, etc) or vertical knowledge (being a domain expert in X) but their soft skills -- how good are they at convincing other people of something in a meeting?

A real example: a product person once asked a team I was on for a feature that'd be difficult and time-consuming to program, probably taking the better part of a year. My teammates said no. Not, "We want to ship this software soon and we don't think that's an acceptable tradeoff," they just said no. Product became furious (not knowing how hard it'd be, since the engineers hadn't explained it) and it hurt those developers.

Knowing how to invert a b-tree doesn't help you solve situations like those, which are far more common than 99% of fake problems presented in programming interviews.

When I interview a candidate I ask them to tell me about projects they worked on and poke and prod about real-world stuff they actually did, not converting a singly linked list into a circular linked list.

Ideally people would be offered the choice of an in-person or take-home to satisfy both those who feel like they shouldn't have to spend their free time on homework and those who don't like being forced to instantly come up with solutions to fake problems.

I blame Google for introducing this scourge, hopefully it lifts before the next time I do a job search.

My favorite example of this is Google turning down Max Howell for a job: https://twitter.com/mxcl/status/608682016205344768

Re: How not to hire a software engineer

#68
post #46

I look to see if I can trust them to not do dumb things. That's really it. What's the ego, arrogance, competence, willingness to ask questions, interrogate things, redefine problems to be less work (or none at all). Do you see what's not there? Programming language competency. Database knowledge. Things like that. I've been hired as a Ruby programmer, I didn't know Ruby. I was hired for mainframes in the 90s - I had…

> Do you see what's not there? Programming language competency. Database knowledge. Things like that. I hear this a lot, but I'm not sure I agree 100%. I want to work with people who can write idiomatic code and are able to use a database efficiently (or who are at least willing to learn these things).

I prefer working with idiomatic code. On the other hand, we hired a guy who didn't write idiomatic code but who was a brilliant engineer in general and he was overall a great hire even if I had to bring him up to speed on a couple style points. Overall, I found his general engineering chops dramatically outweighed the minor annoyance of tidying up style foibles.

Re: How not to hire a software engineer

#69
post #30

Lately I have done a few at home code challenges for companies. They usually take several hours. They are perfectly functional and use minimal code but, the only feedback I receive is: "we're not moving forward". They won't discuss anything with me. The only impression I get is that your company is terrible and I will never respond to your recruiters again.

I always use those as a way to test a new language/paradigm/something. I'm naturally lazy and this is a wonderful way to get new knowledge. >Sorry I want to write an extension to emacs so I'm solving your problem in elisp.

We used to give standard questions for college candidates, language unrestricted.

I saw several candidates solve the problem in scheme and every one of them was beautiful.

Re: How not to hire a software engineer

#70
post #64
post #49

Earlier quoted context omitted.

Mostly this. I was a hiring manager at a big company where HR made it very clear we cannot give specific feedback to applicants. We also could not give references for the same reason; fear of being sued. But after a while you learn to speak in code for those cases where you really feel you need to provide meaningful information. The last time I was asked for a reference I was contacted by a hiring manager who said th…

wtf. what you are describing is something that i would say is suable. and should be. you basically said dont hire that person to someone. because of your bad experience with that ex-colleague ?. you are denying that person a chance. how come ? what are you going to do next time someone calls for reference ? the same ? immature, questionable, discriminating practices...

When asked for an assessment of a co-worker, providing said assessment is immature and somehow discriminatory? What do you even think is the point of references?

Not everyone's great to work with, I'm sure you have had a few co-workers you would rather not work with again, right?

Post reply on HN