The Kotlin team I mentioned earlier was also responsible for writing an app that controlled a piece of experimental technology. The technology was brilliant in that it was smart enough to determine the intent of a user and to perform an action in response, without the user ever knowing it was there. Due to an NDA, I cannot describe its function in further detail. I can, however, tell a story of how I got involved in its development. I will refer to it as the “Unit” from now on.
The app is developed in Sweden by a consulting company. The purpose of this app is to provide a maintenance interface for technicians to do maintenance. The Unit had a proprietary protocol and a proprietary port. It also had an advanced detachable adapter.
The hardware and its firmware was developed by another company in another country. It was far away, but remained in the same time zone. They handed off the manufacturing of all their hardware to a company in China. This turned out to be a big problem, because the Chinese company would deliver the Swedish company a Unit to test against, but they forgot to deliver the adapter. Because of this, we had no way of talking to it. Seeing as I had some experience with marrying software to hardware, I was asked if there was anything I could do. The alternative was to wait for up to six weeks for the adapter to arrive, which would hurt productivity quite a lot.
I contacted the hardware designers, who gave me schematics and a description of the protocol. It turned out that I couldn’t easily produce the connector the adaptor was using, but I could solder new leads onto the board. This was tricky, as the Unit was very small, but using the finest soldering tip I could find and a magnifying glass, I succeeded.
It turned out that communication could be done quite simply with some scrap we had laying around the office. One of the most important parts came from an Arduino. These boards use a TTL for programming and communication, and you can access it from your computer by connecting the reset pin to ground. The RX and TX pins can then be used as a TTL. Most of the complexity came from the software itself. I hooked the leads into the Unit and used the software specification to write my own adapter software in Python. This unblocked a team that would have been much less productive for well over a month, and it only took me a day and a half. I’m pretty proud of this, and the CEO at the time even decided to give me a little reward for it.