4 ms·
I have no idea who you are or what you do, but in my experience #2 up to this point tends to be "here is a github gist assignment which defines a simple REST in
by bojo 11y ago
I have no idea who you are or what you do, but in my experience #2 up to this point tends to be "here is a github gist assignment which defines a simple REST interface, please write it and add some tests."
This may be useful to weed out junior candidates with ~1-2 years experience, but those of us with 10+ it's an incredible waste of time. What exactly do you* want to see? Your homework problem doesn't even come close to covering the tools I'd use to build a highly scalable and responsive application, including but not limited to specific coding practices which offer great performance, clean API design, full blown test coverage, as well as attention to server infrastructure design and careful selection of tools which will scale with the application from 10k to 10M users (or whatever other performance characteristics your app requires).
One of the more interesting interview techniques I've experienced is when they engage me in a prior/personal project and give me the chance to completely go 100% on about something I've been passionate about (maybe even sending in a code sample and doing a code/project review). It tends to be win/win because the interviewer can clearly see the true developer experience through this method without arbitrary imposed design decisions for homework-level candidates. They can typically guide the conversation towards some of the deeper gems of interest which only an experienced developer can understand and both parties can relate to at some level. This is what I feel the true essence of an interview can and should be.
By all means use a homework assignment to weed out the junior programmers, especially if their resume indicates as much. But if they say they have 10 years of experience treat them like they do and give them the benefit of a doubt with a 30-45 minute phone screen which concretely proves that.
I've written a publicly available open source database driver full of tests and documentation which is at some level an incredibly strong indicator of higher level programming skill, yet when submitted it's been overlooked and "please write a RESTful web app" is typically the answer. That is borderline insulting, why should I work for your company? This makes me question the point of submitting my GitHub profile as a resource at all.
* The general "you" as in "people with these hiring practices." I'm not picking on danpalmer specifically.
- danpalmer 11y ago> here is a github gist assignment which defines a simple REST interface, please write it and add some tests I've seen this many times too, but I like to think ours is a little different, and has a bit of a different focus. Without giving away too much about our problem (we've had it leaked online before), it's essentially a simple simulation problem. With some relatively simple data structures knowledge, and some careful thought, it's possible to complete in the 3 hours we give. It's nothing about REST, nothing about any specific technologies, nothing specialised at all, because we want to see maintainable code, in a nice structure, that the rest of the team could pick up and work with easily - not the fact you know React or something. I'll emphasise, this really only works when we know the problem really well, and can compare solutions to those from other developers. It gives us a good feel for what the passing grade should be. We also aren't looking for things like testing tools, or deployment strategies, or infrastructure stuff, as we would typically interview about that, and it's stuff that's a little more ingrained in a team, so not something that is going to matter from day 1, it's more something that the candidate could input into the direction of in the future - their code on the other hand will run in production from day 1, so that is vitally important.