Live data from Hacker News

A Method I’ve Used to Eliminate Bad Tech Hires

mattermark.com

41–50 of 517 posts

Re: A Method I’ve Used to Eliminate Bad Tech Hires

#41
post #5

Does anyone have experience with this style of interview from the candidate side of the equation? I want to move to this style of hiring; however, I fear that because it's against the grain I may miss out on good candidates. Is that unfounded?

I do from both sides, albeit without being paid to do the exercise. Take-home exercises are great.

When I was looking for a job last year, I liked that it was something simple and low-pressure (compared to typical coding-interview practice) which approximated how programmers actually work. It was OK to look something up in the documentation if I didn't have an API memorized off the top of my head. It was OK to change my mind partway through and realize I could do it more cleanly another way. It was OK to pause for fifteen minutes and get something to drink.

Now that I'm on the other side of it, I like that it's a more natural thing. I like that I'm not having to loom over someone or try to fill awkward silence while they live-code. I like that I can read their solution before I go into the interview and have some prepared comments or questions to get discussion going. I like that it emphasizes the collaborative nature of programming in a team.

Good candidates are beginning to revolt against traditional coding interviews. Take-home exercises are one of the alternatives that people actually seem to like on both sides of the interviewing equation. So you're not going to miss out on good people by switching your coding interview to a take-home; if anything, you're more likely to start attracting them.

Re: A Method I’ve Used to Eliminate Bad Tech Hires

#42
Remember: if you do something that completely eliminates bad hires, it probably eliminated some good ones too. Of course, lots of people wave this away by saying bad hires are more expensive than bad rejections. OK- but how much more expensive? And does this practice make sense in light of that figure?

Not to say you shouldn't do this but it's very important to remember a lot of these kind of things when it comes to recruiting involve tradeoffs and you rarely get an unalloyed good.

Re: A Method I’ve Used to Eliminate Bad Tech Hires

#43

I wish more companies would give example problems to solve in your own time. I did one for a fairly large Australian company, and they rejected it. By the time they got round to letting me know (very long turn around time) I had already found other employment. But still, their reasons for rejecting my solution - the output was not formatted to their liking, and they didn't seem to know what an anonymous function was…

I don't mind homework, but companies need to start specifying their salary range up front. I've been having a lot of time wasted lately by getting through Tech Interview #1 or Homework #1, only to find out their max salary is laughable for San Francisco. "You should just find that out upfront" I hear you saying. Well that is not always possible. Recruiters either don't know the range, or lie about not knowing, or you…

In addition to salary range up-front: find out up-front if they're actually hiring you, or want to do the "contract for a while, then maybe we'll hire you for real" thing.

I had to say no late in the process to several companies which offered me the contracting-to-maybe-hire dance.

Re: A Method I’ve Used to Eliminate Bad Tech Hires

#44
post #38

This is one of those "aha" solutions that people keep mentioning, but completely ignore how it would work in a non-ideal world. • What 2 hour project can you assign that would let the candidate go into enough depth for you to judge their code, design decisions, architecture skills? • If you give them more time (e.g. a weekend like in the article), is it still financially viable to the company, especially at $100/hr??…

What 2 hour project can you assign that would let the candidate go into enough depth for you to judge their code, design decisions, architecture skills?

Where I work, our take-home is a simplified version of a task that's common enough (in our field) that we built tooling for it. It's generic, it tests understanding of a few things, and we've gone through three iterations of our own tooling so we know there are multiple viable approaches.

As for judging decisions, that's why the interview that goes with it is a collaborative code review. You treat it the same as if you were reviewing code a co-worker had written; ask questions, discuss tradeoffs, etc. etc.

Re: A Method I’ve Used to Eliminate Bad Tech Hires

#46
I am afraid this is just another marketing for a paid product. There are a lot of assumptions being stated as a fact.

> Since the candidate is getting paid, the candidate treats it as a legit consulting session and therefore gives their best effort in solving the problem.

If a candidate has applied for a job then it is in his interest to treat that application as his career depends on it. Best effort is wagered not on the fact that he is paid but on the premise that his life will become better by getting this job.

> It gives the candidate a real life sense of how you interact with people on the team.

Where is this coming from ? This is just another assumption the author is making.

> The biggest issue I have seen with tech hires is that they can become very defensive over their solution. I will purposely challenge their solution to see how they react.

You are asking us to be non-judgemental in the paragraphs above and then being judgemental on the candidate becoming defensive.

> Pay them immediately on Monday

Why ?

Re: A Method I’ve Used to Eliminate Bad Tech Hires

#47
post #38

This is one of those "aha" solutions that people keep mentioning, but completely ignore how it would work in a non-ideal world. • What 2 hour project can you assign that would let the candidate go into enough depth for you to judge their code, design decisions, architecture skills? • If you give them more time (e.g. a weekend like in the article), is it still financially viable to the company, especially at $100/hr??…

Being on visa makes this payment thing harder unfortunately. Maybe the charity idea might work for those people.

Re: A Method I’ve Used to Eliminate Bad Tech Hires

#48

Earlier quoted context omitted.

Are clauses like that common in the US? Do they hold up in court?

non-competes are common - but often can't be enforced by employers (and in some states are just ignored/illegal). blanket ip ownership not so common - but big shops sometimes require them, when they can get away with them. Some people negotiate over such things or have them struck out from whatever HR paperwork. Consultants definitely have such crap taken out from contracts and replace with more straight forward and…

> blanket ip ownership not so common

Really? I've found blanket IP ownership to be more common than noncompetes, at least in US outside CA. My experience, is that noncompetes are more likely to be limited to key personnel, whereas the company IP is sacred and must not be tainted, and the employee is not to be trusted to come up with their own material on their own time, at least not without sign-off.

Blanket IP is really back-door antimoonlighting anyway. You can't very well moonlight as a software developer if your employer is encumbering your IP.

I'm sure the California startup world is different from my experience.

Re: A Method I’ve Used to Eliminate Bad Tech Hires

#49
This. 100% this.

As many others are saying, I find that this is the most comfortable way for me as an interviewee to demonstrate that I do in fact know what I'm talking about. Put me in front of a room full of people and a whiteboard and throw something at me, and I'll freeze. Freezing in that situation and being a bad engineer are wholly separate things.

Anecdotally, when I get one of these problems, I spent 20 minutes reading the prompt, looking at resources and making an outline of my code. Then I step away for the afternoon and don't think about it. Let the subconscious internalize the problem for a while and when I come back, I've got a much better mindset to approach it. Solving new problems on the spot is just a skill I don't have. I prefer to think that this is what makes you valuable as an employee and engineer, solving a problem by the end of the day. Not while under scrutiny. Personally, my resume and experience don't get me far interviewing by the big companies, but on the occasions that I get take home code assignments, I tend to get pleasantly surprised and pleased reviewers and it takes me to the final rounds (where I face the dreaded white board and actually-there-is-a-correct-answer situationals).

My two cents, this just really resonated with me. Does anybody else happen to solve problems this way?

Re: A Method I’ve Used to Eliminate Bad Tech Hires

#50
post #5

Does anyone have experience with this style of interview from the candidate side of the equation? I want to move to this style of hiring; however, I fear that because it's against the grain I may miss out on good candidates. Is that unfounded?

I got my first software job (at a startup) by doing well on an unpaid take-home challenge that I was able to spend a weekend on. A few years later I missed a job opportunity with another company by failing an optimization challenge question that had a much shorter time limit; I started formulating it as a graph search and by the time I realized that was a dead end approach my 3 hours were up. I definitely prefer having a weekend as opposed to a few hours. (Maybe I would have been a bad hire for the 3-hour-challenge position, if a typical work day really involved solving problems like that in a few hours, but I suspect it wasn't representative.)

When I was first looking for a software job I was a researcher who'd written a lot of his own tools but I didn't yet have an open source portfolio or commercial development experience. Solving a challenge was a great way to break the chicken-and-egg dilemma of needing experience to get hired and needing to be hired to get experience.

If I had to switch jobs again I'd also love to find employers screening with weekend challenges instead of live coding. Paying me to complete challenges would just be icing on the cake. I've done well at every company I've worked at, but asking me to write heapsort or whatever while you're peering over my shoulder and the clock is ticking is extremely stressful and unrepresentative.

I'm one of the people screening hires at my current job and I don't want to subject candidates to stressful live coding. But neither would I want to hire someone who can't write decent code and challenges look like a good way to prevent that. Surprisingly, even some people who include a github link in their CV are sharing code that's quite poor. (Like turning O(1) operations in an inner loop into O(N) because they picked the wrong collection type, in a language that offers perfectly suited collections in the standard library.) Maybe they think that nobody will actually read it, and having a github account at all will mark them as savvy?

Post reply on HN