It’s been a bad week ending with another bad hire.
This time I got a contractor to implement the C++ and stored procedures side of the database. We agree on $1500 for his estimate of 30-40 hours of work done over two weeks. One week later he does his first check-in. It’s about 100 lines of C++, two stored procedures, and some project changes, which breaks the build for 4 days. Repeated requests to fix it did not get addressed promptly, so I had to stay up to 4:30 AM on the 4th night to fix it myself. Generally speaking, when 3/4 of a contract duration passes by with no significant work done, the contract isn’t going to get done. So I send him an email canceling the contract and offer him $100 for the effort. He replies that he was actually 80% done, and wanted to finish, but if I cancel now I owe him 80% of the payment ($1200).
We finally agree that I will make the full-payment if he works over the weekend to get everything done. To his credit he put in effort, working about 20 hours over the weekend, and some more hours the following night. However, I effectively had to write all the C++ myself. I didn’t have time to check when he claimed to be finished. Grateful that he did work over the weekend, I sent him the payment. This turned out to be a mistake, since even a cursory check reveals bugs with every query, and his work was incomplete as well. There is still about 10 more hours of work to do. My email to him asking him to finish never got a response.
End result is that he did about 50% of the total work, I did about 30%, and I still have to do about 20%.
Lessons learned:
1. Stick with your gut feelings
2. A contract should have clear payment milestones, and only on acceptance of a milestone is any payment for that milestone due.
3. Short-term contracts are a good way to judge a potential hire because they limit your loss on a bad hire. Test potential hires through contracts before offering a regular position.