Hacker News new | ask | show | jobs
by andyidsinga 2663 days ago
I've agree with the difficulty you describe - even with 4 hours of interviews.

I've come to the conclusion that one (or both) of the following might be best:

- a small take home project with a reasonable due date (say 5-8 days) that is representative of the kinds of work that is expected on the job. Then, a 1-2 hour code walk through and presentation. Candidate should expect to build, run, debug and describe the code and architecture, tools choices, show source control use etc.

- a 3 month probationary period with a fairly narrow starting role that all new hires expected to be able to code are required to go through; ex: fixing bugs on project X; ramp-up and demonstrate _______ and _______ on project Y.

Doing the take-home project is certainly difficult for some candidates who may have a hard time carving out time to do it - but the hiring manager can offer some flexibility here - and this seems like a much better approach than taking online code quizzes.

The 3 month probationary period seems like a way to detect other on the job performance or interpersonal skills issues that may be a cause for disqualification.

3 comments

>a small take home project with a reasonable due date (say 5-8 days) that is representative of the kinds of work that is expected on the job. Then, a 1-2 hour code walk through and presentation. Candidate should expect to build, run, debug and describe the code and architecture, tools choices, show source control use etc.

The problem with this is that talented developers generally do not want to work for free on someone else's proprietary software and there is a very real risk of companies trying to abuse this practice to extract free labour from candidates the closer you get to "work that is representative of the kinds of work that is expected."

I do not want to spend hours of my life on unpaid labour for a company that may or may not hire me. Give me the 45-minute algorithmic challenge that puts me on the spot every time.

I also strongly suspect your 3 month probationary period would be an effective anti-signal as well, useful for attracting desperate candidates rather than the ones you really want. You can't reasonably expect a senior engineer to jump at leaving a secure position for a 50/50 shot they might be unemployed in 3 months because they're "not a good cultural fit."

To your second point, I'm a fairly young engineer with 1.5 years experience, and I'm not leaving my secure job for a shot at being a good 'cultural fit' for some other company.

Financial security is important, and I would put up with a lot of shit from my company before I'd consider taking a chance on another one like that.

Although I know some companies (my current one included) have a 3 month "probationary period" where they've only ever let 1 person go at the end out of approximately 150 since I've been there. It's just to make sure you're not a complete goon.

Problem is, it could be really hard to tell apart a company that has a "probationary period" like mine, or a real time that they judge you at the end.

> work for free on someone else's proprietary software and there is a very real risk of companies trying to abuse this practice to extract free labour from candidates

This may happen in some places, but in practice I've never seen a task which actually could be applied anywhere. Most of the time these were toy projects, or simple exercises.

I think you'd easily notice if giving you the test was worth more to the company than all the recruitment time spent on taking to you. It's not free labour if you end up spending hours with each candidate, splitting up real work into "exercise chunks", integrating wildly different styles, validating results, etc.

I've seen this when the company switched the "exercise" as a no-wait-solve-this-one-instead which was fairly obvious it was a work-related task that was being farmed out to candidates.
The problem with all "contract to hire" schemes is you essentially set yourself up for failure on the labor marketplace. Unless you're offering some other compensation, why would any talented candidate take your contract to offer job over the firm next door that's hiring them flat out (assuming both of you pay market rates). Not to mention you shut yourself out of any nonlocal market.

Especially in the US, asking an employee to give up even more rights is a hard bargain. You run the risk of naturally selecting for employees that can't get hired anywhere else (which tend to either worse, or at the very least require more investment; something you're not willing to do or why have you made them use their time to do a take home and start this contract to hire business)

In my appraisal, more firms just need to recognize that they don't need half the technical skill they think they do. Building a CRUD back end or a mobile app doesn't take deep algorithmic horse power and the engineers you've managed to retain to administer the interview probably aren't qualified to do so anyway.

These are interesting ideas. It seems like a hurdle would be getting candidates to agree to the conditions. What incentive do I have to pick a company that requires a 3 month probationary period when I can just get very good at dynamic programming and topological sorting and ace a one day interview at another company?

Also, I find that take home projects in particular are biased against people without free time, eg, parents.

> when I can just get very good at dynamic programming and topological sorting

might work at one place, but the next will ask completely different questions. You can’t know everything.

The pool of problems asked at these places is pretty limited, which is why websites like leetcode are a thing. It's a shitty situation, but that's the reality.
I haven’t found that, one place will ask about CS, the next DBs, the next tools, and stacks have exploded.