How we built a semaphore puzzle