I've spent most of the past decade with a near-maniacal, laser-guided focus on one ambition: to become an indie software developer. It officially kicked off after seeing Daniel Jalkut give a talk at C4 in 2007. Success hasn't turned out to be exactly what I thought, though it would be churlish to complain overmuch: I run my own consulting business and I'm a full-time iOS developer.
But my ambitions to be a product maker have mostly faded. I think Josh Centers' column today for Tidbits really sums it up. Sure, it's totally possible to be successful, but I no longer believe there's profit in the venture for someone like me.
I spent a lot of the last couple months in some kind of funk. I'd been working on a "super-seekrit project" — yet another stab at creating a viable product business for myself. Rather abruptly I became convinced that there was no way this would ever work. How could it? I stopped working on it.
But I'm not here to talk about that. Instead, I'm here to tell you about what's replaced it right now. Not a hare-brained scheme to attain the independence and success I've always wanted, but a neat hobby that has been giving me a lot of joy. Electronics!
Zip. Clank. Pop.
As someone steeped in the world of software, it's sometimes easy to forget how ephemeral our work is. I can write thousands of lines of code and the result can be as banal as an image animating just so, which would only be appreciated if it didn't work correctly, and then not at all.
Diving into the world of electronics, it is shockingly (see what I did there?) tangible, ever-present even when not in use. When I work with electronics, it feels like I'm playing with Lego: I have to collect all the different kinds, and I'm engaged in finding the right ways to put them together. My most helpful guide on this journey, Stefan Arentz, joins me on what used to be my Monday night coding times at the local coffee shop. With our boards and wires and chips all over the tables there, it occurred to us that we look like young radicals building a bomb! Good thing we're not brown, huh?
That actually sounds like a freaking awesome idea.
My first learning project is actually something I want: a wearable thermometer. It consists of a temperature sensor, a four-digit, LED 7-segment array, power button, controller chip and battery. Here's an early prototype with the components laid out on a prototyping board:
The project is crazy-simple, of course, but fascinating and illuminating (see what I did there? Again?). That seemingly basic display actually introduces a host of problems, requiring some 12 pins to address all the segments. Which means I need to find a way to get a second controller in there to just handle the display.
There is software involved, of course. You start with an Arduino and write some pretty simple C code to control the signal. If you can write multi-threaded networking code and interact with Core Data, this'll be a cakewalk.
Ultimately, once I have this working, I want to re-build it from scratch, using smaller components (the temp sensor is HUGE, and that controller, the ubiquitous ATMega328P, comes in a package smaller than a postage stamp). I can design and have a professional printed circuit board made, then solder my components to it. Then I can design and print a case with a 3D printer, put the completed project inside, and clip it to my shirt. Boom, instant local temperature at a button push!
Okay, so maybe that's not interesting to you. But the more I learn about this stuff, the more interesting projects occur to me. I have access to a galaxy of components that can sense, act and communicate with the rest of the world; Creatron has become my new favourite store. Here's my last haul:
It's a limitless fun zone. And I love that it comes with no strings attached. No expectations, no business plan, no app review team telling me what's possible. It's the start of a new journey for me, one where I have a very dim understanding of how things work, and the near-maniacal, laser-guided focus to figure it out.