Before January 2016 was up I had already finished and tested the race management software, which obtains results from the electronics and posts them online. Our goal was to create a fast-paced event that boys would find exciting but that was also fair and precise. Our most crucial novelty is the photograph of each car that is displayed on a projector screen along with the participant's name for each race. The participants see their car and their name and know it is their turn. The race operator simply confirms the correct cars are in the correct lanes, pushes a button to start the race, then resets the starting gate for the next race. The operator doesn't need to check numbers on cars (those number stickers don't stick on very well anyway) or enter times into a spreadsheet. Results are automatically saved for each car. Parents can see results online. All of this automation means that we usually average about one race every 60 seconds. This means that for a race with 20 boys, each boy waits an average of 5 minutes between turns to race.
Race heats are also automatically generated by the software. A rarely advertised feature of my software is that when generating the heats, it organizes cars according to times in previous heats, so that similar performing cars race together. This leads to closer, more exciting races, and improves the chance that boys with slower cars will win at least one race. Of course this also homogenizes the playing field, meaning a boy might be racing the same cars each race (after the first one or two heats, that is) but since we score according to absolute time, this doesn't matter. And anyway, the boys get plenty of time to race against whomever they like before or after the official race.
So I had this brilliant software ready to go for our very first race in May 2016, and then it didn't work. Some strange bug prevented me from checking in any cars. We could still see the times as each car crossed the finish line so we were able to use a spreadsheet to keep track, but it was painful. Luckily, this first event was Aaron's own Cub Scout pack, and not a paying customer. But I was so disappointed that I scrapped the entire code base, which was written in C#, and created a new race manager using Node.js, with Angular as a front-end (probably a strange choice but I'm rather partial to these programming languages). Our next event was a paying customer, and the new software was a huge hit, and I've been improving it ever since. Most cubmasters are surprised when I tell them the race is over. When they ask how long before we will have the results, I hand them my phone and say, "Here they are."