Live data from Hacker News

How not to hire a software engineer

tonsky.me

161–170 of 239 posts

Re: How not to hire a software engineer

#161
post #124
post #50

I don't ask brain-teasers during an interview, but time and time again the value of a simple coding assignment has proven its worth. It is simply amazing to me how many candidates seem to lack the basic ability to code a couple of nested for loops, and weeding those candidates out early streamlines the whole interview process. I will typically do this on a phone screen, having informed the candidate beforehand that t…

I think you're testing for someone who can think on the spot with a person watching every keystroke which would be rare in an actual work environment. For a lot of programmers, they spend most of their time in their own head thinking through a problem, trying things, removing things, etc. To accomplish what I think you are trying to select for would be a take-home assignment. The interviewee can work through problems…

"I think you're testing for someone who can think on the spot with a person watching every keystroke which would be rare in an actual work environment."

Except maybe for pair programming shops?

Re: How not to hire a software engineer

#162

Earlier quoted context omitted.

I'll judge them all the same because it's not illegal to give someone feedback. Unless you have discriminatory hiring practices in which case the judgement holds true, or your legal team is so far up their own and everybody else's ass, the judgement still holds true.

Yes, it basically is illegal to let a non-lawyer give someone feedback. Not literally, but negligent of a company to allow.

The requirements to open yourself up to a discrimination lawsuit are fairly high.

Legal doesn't have 'interview experience - net promoter score' or any other interview quality metrics as one of their KPIs, so they're happy to mandate the nuclear option because it gets work off their plate.

Re: How not to hire a software engineer

#163
post #124
post #50

I don't ask brain-teasers during an interview, but time and time again the value of a simple coding assignment has proven its worth. It is simply amazing to me how many candidates seem to lack the basic ability to code a couple of nested for loops, and weeding those candidates out early streamlines the whole interview process. I will typically do this on a phone screen, having informed the candidate beforehand that t…

I think you're testing for someone who can think on the spot with a person watching every keystroke which would be rare in an actual work environment. For a lot of programmers, they spend most of their time in their own head thinking through a problem, trying things, removing things, etc. To accomplish what I think you are trying to select for would be a take-home assignment. The interviewee can work through problems…

I think that asking really simple fizz buzz style questions in this context is probably fine. The whole point I think is to screen out candidates who can't do these sorts of assignments in ~5-20 minutes or whatever. With a take home assignment you'll get people who spend two hours or on your 15 minute problem which is the kind of person who I think OP is trying to filter out.

I think even if you're not the kind of person who can think on the spot with someone watching you well, you should be able to knock out fizz buzz style question in that setting quickly.

Re: How not to hire a software engineer

#164
post #116

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…

How do you check for those things in an interview? I'm not suggesting you can't, I'm genuinely asking.

You talk with them. You've probably worked with enough people that you can sniff out the fakes

Re: How not to hire a software engineer

#165

Earlier quoted context omitted.

Wasn't part of the point of C#'s syntax was that it was easy for C++ and Java programmers to learn? Would any real C# advocate really tell me it would take months of manager supervised learning to pickup? I've been writing code for a long time in many languages and I do my best to write "good" code. The principles that make code "good" in one language appear to apply equally to other languages...

I would argue that what makes code "good" is completely subjective which is why I don't spend too much time thinking about it. The only criteria I have for good code these days is "Does it work", "Can I understand it". Everything else is a good IDE's command away for being willed into reality. So I really don't spend too much time on the "good" code debate like I did as a teen reading "Clean Code" and GOF books. I ac…

"The only criteria I have for good code these days is "Does it work", "Can I understand it"."

Which of course, are not trivial to achieve by any means.

Maybe also add "Can my coworkers understand it?" Which might be a very different metric.

"I would have read, in their place, books on type theory and OS design, Posix, in other words things that actually help me build stuff and get things done and that I subsequently had to read later."

If you want to get very far with any of those, you will need to write "good code", as you have defined it. So maybe a better way to understand good code would be to read the code of large projects implementing the things you want to learn about?

Re: How not to hire a software engineer

#166
post #45

All the things most programmers do these days are pretty mundane and the only thing you need to ascertain is if they are familiar with the technologies that are being used. "Can you show you know sufficient SQL? Did you write applications before using Rails/Django what have you? Distributed this, Web that - OK, jobs is yours." After all that the productivity of the programmer is solely based on the work environment a…

No, they are not. The things programmers do are not mundane. The word you are missing from your description is "effects". The parts of program or system interacts with each other not only by passing and returning values, but also by effects. It is good if your effects are isolated in SQL with ACID, but oftentimes they are not. The interaction is often subtle when resource in conflicting usage is shared indirectly (sy…

"I am here to say that things that programmers do are not mundane (or they would be automated out quite quickly)."

And they have been automated out, and so we are all working to solve other things now, which will then be automated, leaving us to solve other things...until the Singularity.

Re: How not to hire a software engineer

#167

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 hate these take-home code projects, to a point where I won't do them for similar reasons that you mentioned ("we're not moving forward, we will keep your resume on file!"). It's sort of a selfish way of interviewing; to write good code for these projects, it can take me upwards of 8 hours. An engineer where I live (NYC) can fairly easily make $50/hour (usually more), so they effectively expect me to give $350-450 o…

"I typically write in a very functional lispy style (even when I did JavaScript), and while the overall understanding of FP has improved in the last couple years, a lot of the interviewers would simply not understand what I was writing, and ask me to write it "more object oriented"."

Which is a good way for you to weed out companies where the developers are low to average intelligence.

Not understanding basic functional programming concepts, in 2019? Seriously?

Re: How not to hire a software engineer

#168
post #146

Earlier quoted context omitted.

I wish everyone thought that way but they don't. In today's rapid paced world if you don't know Rails (not even Ruby) but Rails, for example, and we're using it - then you ain't in... and here write this 8 hour code test so we can subjectively judge it because grading code tests to see if you don't put logic in your controllers make our egos hum.

8 hour code test - you are an optimist! :D Recent trend in Silicon Valley is 1 week to 1 month (MVP) coding test in a hot area (e.g. Deep Learning), preferably coming with unique world-class solutions during that time :DDD And you get a phone interview only when you went to a Top 10 school.

In this market? I'd laugh in the interviewer's face. Like hell I'm doing a month of unpaid work for your "prestigious" opportunity.

Re: How not to hire a software engineer

#169
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...

Then what is the point of a reference?

Re: How not to hire a software engineer

#170

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.

That is pretty bad behavior. Our position is that if you took the time out of your schedule to complete our coding task, we will take the time to do a technical interview with you.
Post reply on HN