4 ms·
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 a
by paxy 10y ago
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??
• How do you filter out the candidates that aren't serious about the job but just want to make a quick buck?
• What about all the candidates out there who you can't legally pay (e.g. workers on a visa)?
This works when you are a small company that needs to pick 2 out of 6 total applicants, but otherwise completely unfeasible.
- ubernostrum 10y agoWhat 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.
- mahyarm 10y agoBeing on visa makes this payment thing harder unfortunately. Maybe the charity idea might work for those people.
- philipkglass 10y agoI read the money/difficulty calibration as "pick a problem that you think would take someone about 2 hours to implement and offer $200 for completion." Not "offer $100 per hour and then cough up $1600 when the following Monday the candidate swears that they spent two full days on it."
- mjevans 10y agoA key point of the specification for the solution is that the produced work //is not// a product. You are using the exercise as a test. Maybe it would be better to explicitly state that the results of the work are to be released under CC-BY?
- ohitsdom 10y agoExactly. Their example: > "Create a single page app that lets me enter movies in my home movie collection, store them in offline storage and search through them. I want to search by Genre, Title & Actors." Significantly more than 2 hours, unless you are looking for a quick hack and for the candidate to repeatedly explain "I would have done it this other way if I had more time..."
- silverbax88 10y agoI completely agree. I saw that and thought - um, that's not a 2 hour job unless you want a massively hacked together app. I might be able to do something modestly decent over a weekend, but 2 hours? Nope. You have to have ways of inputting/verifying data, tagging genres, etc. I've done a lot of similar code but that's why I know it's basic, but not quick. It would let me know that the job wasn't going to last because of the lack of knowledge in estimating software development.
- ebrenes 10y agoThat's only if you're expecting a candidate to provide a perfect solution; and don't make it clear that the time limit should inform their design and not just measure their speed of implementation. Part of software development is tailoring a solution to the scope of the problem, and this includes taking into account the time and effort available to come up with a solution. Someone who looks at that problem statement and designs something that will take a week has missed a very important requirement. You could reasonably scale up any problem to take an arbitrarily long amount of time, by adding onerous requirements (must have 7 9's of reliability). What I've found more rare and precious is the developer who can limit the scope so that items that are not up for negotiation like time (2 hours) & resources (1 developer) are respected. I fully expect a developer to state their assumptions up front, so that I can judge their design based on the stated assumptions and not some unstated imaginary assumptions. It also lets me see how or if they prioritize.
- closeparen 10y ago• 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? What whiteboard interview would?
- deleted 10y ago[deleted]
- deleted 10y ago[deleted]
- susam 10y ago> 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? Let me answer that with an example. In my previous job, I had to implement a simple username/password based authentication API in the first interview. The problem was explained to me. A two page document with a written specification of the problem was also provided to me. After I read the document, I was asked how long I would need to solve the problem. I asked for 40 minutes. Then the interviewer left me alone in the room with a laptop. After 40 minutes, the interviewer returned and went over the entire code I had written, discussed the API design decisions I had taken such as the corner cases that were handled or not handled, exceptions that were thrown, how empty or null usernames or passwords were handled, what error messages were generated, how concurrency was handled, what performance problems could occur if thousands of requests invoke the API per second per thread, how the password was secured, etc. After I got the job, I learnt that my colleagues had also gone through a similar coding interview with different problems of similar size and scope. Some people asked for 30 minutes while some asked for 90 minutes. Therefore, I believe that it is possible to have a tiny 30 minute to 90 minute project that lets a candidate demonstrate his or her software engineering skills. I felt this method was very effective because it evaluated a couple of key skills that were important to do the work that we were doing there: time and effort estimation, API design, writing clean and correct code, robust error handling, and design decisions from performance and security perspective. I didn't get paid for that 40 minutes but it was part of their half a day onsite interview process, so I did not have to spend any extra time apart from the time I had already scheduled for visiting their office. Also, they did provide me free lunch, snacks and drinks, so I didn't complain. I wish more employers did this.
- clifanatic 10y ago> 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? Well, the movie project suggested in the article was a pretty reasonable one.
- silverbax88 10y agoIf you write that in 2 hours, honestly I can't see that being code I'd hire someone for. You'd have to hack together garbage code and you'd look like someone who threw things together without thinking.
- nilkn 10y agoAlternatively, with that time limit it's just going to select for candidates who've been churning out Django/Rails/etc. webpages recently and have all the details committed to memory. That feels like premature optimization to me. I can see how it'd find generally good web developers, but I can also see how it'd produce just as many false negatives as Google's interviews do. So is it really that much of a step forward?
- silverbax88 10y agoI completely agree with that. I was thinking, 'yeah, you could hand this to a kid who only knows surface UI and he could crank this out using Rails or something, but it would just be the same garbage that you couldn't maintain later and it wouldn't prove much more than he knows how to write simple apps.' But then maybe that's all they want? I dunno...I've worked with a lot of people who could code a simple app but completely fail when it comes to serious programming.
- clifanatic 10y agoHm - fair point. If I was to do something like this, I'd definitely treat it as a throwaway - I'd do some cursory data modeling, put some tables into a local MySQL DB, reverse engineer that with (say) Hibernate and then throw some Jersey services and some Ajax in front of it. I wouldn't give any consideration to scalability, or security, or maintainability... one would hope that a hiring committee would take that into account, but you're probably right, the people doing the evaluating would likely immediately forget that this was supposed to be thrown together in a couple of hours, people being people as they tend to be.
- linkregister 10y agoSince this would be a 1099 contractor relationship and not an employee relationship, would there be any issue for Mattermark in this case? All they need is a TIN for their 1099 filing; it's up to the visa holder to know whether they are permitted to do contracting work.
- user5994461 10y ago> 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? Write a program that reads a text file, and output each unique word with the number of times it appeared. The program must be done in a programming language among: C, C++, C#, Go, Java, PHP, Python, Ruby.
- umanwizard 10y agoforeach word: ++(wordmap[word]) print wordmap This is on the level of a pretty simple first phone screen problem.