How It All Started

I've been a software engineer or technical leader for most of my career, which approaches on 20 years (I just recently hit 40 earlier this year). I started coding when I still lived in Kharkov, Ukraine, not too far from where the war is raging right now (a fact I am still finding hard to believe). I wrote my first program sometime in 1988, which was a keyboard driven version of "Paint": you could move a cursor that drew a line on your screen, and save and recall your creations. This was all before the mouse made it over there.

Just around my 40th birthday I wanted to fix a subwoofer that I intended to use for the birthday party that day. It was a Mackie powered subwoofer, about 500W (plenty loud), but it's been broken since the last Burning Man, when it quietly died in the 110'F heat. I opened it up, found some wires that seem inappropriately disconnected, and soldered loose ends to what I thought was the right receptacle with a crappy giveaway soldering iron I received at some Java conference more than a decade ago. I wasted two hours of my life aimlessly trying to "fix" the subwoofer, and while I was doing that a realization dawned on me: I have absolutely zero idea about how any of this electronics actually works... I did remember some facts about resistors and capacitors, but I surely couldn't tell what was what in front of me, how it all fit together, and more importantly: how was I going to fix this thing.

In the end I was not successful in my quest. I've assembled the subwoofer back to it's original form, and it's currently sitting in my garage waiting to be delivered someone with trained hands at JK Sound SF, someone who can actually fix it. But in the meantime, I signed up for a soldering class at the TechShop, and purchased a "pro" level soldering iron – Weller WES51 on Amazon. This is how it all began.


Shortly after that I discovered Arduino, Arduino programming environment, Eclipse plugin for Arduino, Beaglebone Black running Debian Linux, sensors, robots, wheels, chassis, ... the list goes on. As I write this my obsession is exactly six weeks old, and on my desk I have exactly five robots, three of them assembled and in the full working condition, able to move around, avoid obstacles, and drive anywhere from very very slow (Sparki I am looking at you!), to very very fast (4 DC Motors with a 3000mAh battery). I purchased about 7 books, 4 on Arduino, 2 on BeagleBone, and one on general electronics.

In the meantime I realized that despite a ton of information everywhere online, it is actually rather difficult to find the right stuff to build things when you are just starting out, but not as a typical complete beginner, but as an experienced software engineer. It's hard to find well written examples of Arduino sketches. It's hard to find well written libraries. It's impossible to find any design patterns applied to the software that runs hardware. And it's most definitely not realistic to find any unit tests :)

This is when I decided to start documenting my journey, so that if someone else gets this bug and finds my blog they might just have a slightly easier time getting up to speed in this fascinating world of hardware.

Given that most folks at work call me "KIG", after my initials, it only was a matter of time until Kiguino was born. I welcome you to read, participate and contribute to any of the projects or code I am working on. You know why? Because this is really fun. After decades of writing software and staring at the computer screen, I am working with my hands, dropping shit on the floor, swearing (although that part is common with software), and making real objects from atoms and molecules. It's a fascinating process and I am just a little bit obsessed. Perhaps you are too?

Small Robot Army on my desk

Friday, August 1st, 2014, –– Konstantin.