This is long-winded, but it’s what I remember.
Years ago, I think I was nine, my grandfather decided that computers were going to be an important part of the future, and he wanted to make sure I didn’t miss out. So he took my dad and I to the RadioShack in the big mall across town. He spent $3,500 of his retirement savings, and we walked out with a brand new, top-of-the-line Tandy 2500 SX.
Pretty soon after we brought it home, my dad, a high-school teacher, taught me how to run a few BASIC commands that he learned while teaching a typing class to his students. It’s all pretty fuzzy at this point, but I remember telling the computer to print out some text and then a GOTO command to jump back to the top and print the text again…over and over.
I fell in love with that.
I dove into the reference manual and learned everything I could. What was probably GW-BASIC at the time, eventually led to QBasic when we upgraded to Windows 3.1. My own text-based games and simple computer graphic programs followed.
At some point I read in the QBasic help guide that you could build programs that used the mouse if you had Visual Basic. I found a copy of the software (in a box!) at the local computer shop and begged my parents to loan me the $99 to buy it. Instead, they surprised me with it for my birthday that year.
For the next few years I was glued to the PC. I built simple clones of my favorite arcade games and useful tools that went along with whatever else I was working on. When I took Japanese in high school, I put together a simple text editor that let me write kana and print out my homework using a hand-drawn font I built out of MSPaint bitmaps. A year later, it was a program that graphed simple calculus equations.
And while I loved what I was building, I hated that I couldn’t share my programs with anyone else. This was the mid-nineties and mainstream downloadable software was still years away – especially for those using a dial-up connection like myself.
But one day a new issue of Boot magazine arrived that had a short article explaining the basics of HTML and a list of some very early free hosting providers. The ability to make a website, upload it, and have it immediately available to the entire world changed me. I kept building desktop programs, but from then on, my new focus was the web.
In 2000, being around fellow nerds in my university’s Computer Science department led me to wipe Windows from my computer Freshman year and go all-in on Linux. That only deepened my connection to the web development world. And throughout the rest of college, I built website after website, some big, some small, did the occasional freelance job, and even attempted a few failed business ventures with other students.
And as much as I loved the immediacy and flexibility of building for the web, I still missed the concreteness and UX conventions of desktop software.
Following in the footsteps of another student a year ahead of me that I admired, I left Linux behind and bought my first MacBook in 2003. OS X’s Unix underpinnings meant I could keep doing my web work, but I immediately started learning Objective-C and the Carbon/Cocoa frameworks.
Building desktop software again was like coming home.
When I graduated in 2005, there were no jobs for Mac developers that didn’t involve moving to the West coast. So I fell back into web development. First at a miserable job doing C# (which I kinda enjoy) and Flash (which I hated). But then I got lucky and found a small agency doing open-source work, which led to bigger and even better opportunities.
In 2007, with the Indie Mac Developer scene in full swing and downloadable software a real shot at earning a living, I went back to my desktop roots and built my first commercial Mac app. I’ve launched a ton of other apps since then, but that first one is still going strong to this day.
When the App Store launched in 2008, moving to iOS was a natural progression. Same language. (Mostly) the same frameworks. A built-in distribution channel. And a gold-rush of companies hiring developers. I said goodbye to web development professionally, and never looked back.
So that’s where I am today. Building iOS apps for clients, but sticking to my love of the desktop with my own software company. Sixteen years of developing for Apple’s various platforms, and I’m still excited every day.