Hacker News new | ask | show | jobs
by alphadevx 4220 days ago
Completely agree. When I hire engineers, I get them to write an app at home for a week and then send it in. I don't set an arbitrary deadline, just send it when you think it's ready. I'm then looking at:

1. Code quality (mainly with a view to maintainability)

2. Unit test coverage (I don't even asked them to do that, the good ones know to provide them).

3. How the app uses dependencies (APIs, databases, caches), and if they support dependency injection.

4. Can the app scale up and down (i.e. can I scale horizontally by just adding another instance?).

5. How are they using 3rd party libs?

6. How well documented is the solution?

7. How easy is it to build and deploy?

8. How well structured is their database (PKs, FKs, indexes, no excessives joins etc.)?

9. Is their a clean separation of the main modules in the app? E.g. MVC, having a REST API for the data and de-coupled clients etc.

I could go on. At a senior level, I just assume an engineer can write nice code in whatever language, but also has a keen understanding of software architecture with a view to how their code impacts on scaling and performance.

As a candidate, if all I get asked at interviews is low-level algorithms, I move on.

2 comments

While I think this is an ideal approach for selection, how does it work out in practice? How will the candidate find the time to do all that while they are (most likely) employed somewhere else, and are trying other options too?
That's quite a thorough list, which I appreciate, but on the other hand its a lot to do for an interview.
That's why I give them at least a week to do the code submission at home. It is too much to cover in just a few hours in an interview.
I have blogged about an alternative [here](1). The summary is: ask them to contribute to any open-source project of their choice. Win-win for all, IMO.

  (1) : http://lavadip.com/3948_opensource_hiring_and_lowhangingfruit.html
Its also quite a lot t expect. After a couple of half days worth, with no result at the end, I am getting kind of pissed off with them. Do you pay them for this?
No we don't pay, and you're right it is a lot to expect. I've been on the other side myself plenty of times so I know how that feels: nothing more frustrating than having your time wasted. But on the flip side, I now have to waste a lot of time screening, interviewing, and doing code reviews with candidates that did not work out. Hiring sucks from both sides, I wish you luck.