It has become quite common for companies interviewing engineers to give candidates take home tests. These consist of an interview problem (or problems) which they can work on in their free time. This gives the candidate the benefit of not being under pressure in a high leverage interview setting. This gives a company the benefit of seeing how a candidate works in a normal work environment.
I had one of these recently, and to say it could have gone better would be an understatement. Though I could start whenever I wanted, it was a timed exercise. I was given 3-4 hours to complete the exercise, though it was emphasized it should take 1-2. Time to completion would be a factor in determining how well you did. This is the first time that I’ve had a timed assignment, but it seemed fair to me.
The exercise itself is unimportant, and I can’t share the details of it, but I have no qualms about it. The only thing you have to know is that I had to generate a command line app, so the reviewer could run the app with variable command line arguments.
Just under two hours later, I had managed to complete the assignment and was ready to email it back to the company. I’d named the project the same name as the company, and so the binary that was generated was of the same name as well. I copied the binary to my desktop, to make it easier to drag into the Mail app, hit overwrite, and, wait… hit overwrite…
I deleted the folder holding all the code. All I had left was a binary. The reviewer would have no idea how it does what it does. I panicked, and quickly emailed the company to tell him that the dog had actually eaten my homework. I didn’t hear back, so a few minutes later I emailed them the generated binary from my assignment. I told them to run it, to verify that I did actually make something.
In the mean time I got started on restarting my assignment. I checked for the last Time Machine backup, and found one from over an hour back, and used that as my starting point. About 40 minutes later I was done recreating the assignment to the best of my abilities. I emailed them the assignment, along with a new binary, and hoped for the best. Amazingly. I almost did the same thing, copying the binary to my desktop, but this time managed to not hit overwrite.
Moral of the story, think before you overwrite.