Things I have built: the problem, the approach and what I learned.