Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Very nice article. To be honest, I always review code from a architectural perspective, rather than just reviewing code quality, as getting that stuff wrong will hurt a project more so.


I have been looking for jobs recently. No one seems interested in testing my architectural decisions.

Instead I get silly coding trivial pursuit questions, or built an application to do this in 2 hours. Neither of these approaches seems to test what I am good at after 11 years of software engineering - coming up with an architecture that makes the correct trade offs (rushing a new project for a 2 hour deadline is probably the worst way for me to write code).


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.


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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: