After getting my new wheel I started working on putting together a USB charger to be powered by the hub dynamo. I found plans online that looked simple enough, but I’m in no way skilled with electronics. As luck has it, I know and work with a guy who not only studied electronics, but still dabbles in it as a hobby: Andrew Booker. He was the man behind the iron on this project.
The adventure started with us making an outing to a nearby Maplin during our lunch break and picking up most of the parts. It continued that night with me ordering a couple more parts online to avoid the outrageous prices for USB extension cables at Maplin. During the weekend we struck! I cycled over to Andrew’s house with all of the parts that we would need to make the charger. Once I got there the whole family got involved in building a little bit of electronic kit. His son watched as bits were soldered together and his wife helped by boring a whole in the plastic end cap for the wires to enter the casing.
As we worked Andrew filled me in on how he had gotten into software. Andrew’s story started a little tangential to software when he was eight years old and ill in bed. His mother had bought him a magazine on electronics to keep him occupied and the he has been with electronics since. He even pulled out the magazine from the bookshelf that his mother had bought all those years ago. He still finds the various electrical diagrams it contains to be a useful reference. I was a little surprised to find out that the electronics were not really his path to programming.
In some ways I would say that Andrew got into programming a bit by accident. He had a data entry job and started busying himself with writing VBA macros to make the job less repetitive. He ended up teaching himself programming so that he could be better at his job. VBA offered a great way of learning too, because of the IntelliSense support in the editor. The entire language and library was discoverable to him.
At this point things started moving quickly. Andrew met another programmer who would become a bit of a mentor and was brought on at the startup that this other programmer had created. Andrew was put in at the deep end when he transitioned from VBA to C++ in a short time-span. The startup worked on creating billing and intranet systems and was building these for some clients that they had won. After successfully building those systems they moved on to a new project that involved writing a data import system.
The data import system contract followed the common cycle of a prolonged negotiation phase followed by development of what had been agreed upon. This meant that for around 3 months Andrew didn’t really have any specific programming to do and was tasked with working out a design for the system that was under negotiation. Andrew said, “I had time to just think. That is something that we don’t get to do very often.”
After the project really got underway, Andrew’s design was put to the test and passed with flying colors. The system went together with few problems and any changes needed slotted in nicely. In the end the company was in a way too good. The projects finished and they ran out of work.
“Did you spend that time reading up on design principles and such,” I asked. “No. I hadn’t even heard of design patterns until much later,” was his reply.
Andrew moved on to another job and admits to coasting for a while. He recalled that at some point he noticed that he was coasting and decided to do something about it. He started attending ACCU conferences and that is where he first started hearing people talking about design patterns, principles of design, and related topics.
Unfortunately at this point we needed to concentrate on the building of our USB charger again and the conversation of Andrew’s entrance into the Software Engineering Life Cycle was replaced with discussions about soldering, finding wires, determining where to drill holes, and figuring out which are the correct power leads for a USB cable.
After we finished the rest of the charger by mounting it in a case and testing it out I hopped back on my bike and cycled home. I was happy that I had collected my first story, had a great time, learned something about electronics, and was one step closer to having everything ready for the next big road trip.