- What do you currently do?
I am the founder and proprietor of Red Sweater Software, a company best known for MarsEdit, the blog editing app for the Mac. I am also the co-host with Manton Reece of Core Intuition, a podcast about Mac and iOS software development. I write sporadically on a blog called Bitsplitting, and I also host an in-depth interview podcast of the same name, where I chat with folks from the greater tech community about their lives and careers.
- How did you get started in Mac and/or iOS programming?
My dad was a compiler engineer, so from a young age I was always surrounded by computers. We also lived in the Bay Area of California, so it was easy to find other kids who were also into nerdy stuff. That said, I never really used a Mac until I was 17 or 18, and through my circle of friends, got to know a guy who worked at Apple on the QuickTime engineering team. I was so enamored with the Mac that I lobbied hard for my parents to buy me one, and I immediately set to teaching myself what I could from the API reference that shipped with Think C, a popular compiler and editing environment at the time (around 1993).
- What was the first app you created and what did it do? Where did you get the idea for the app?
Before I got a Mac I had been primarily using UNIX systems, of all things. I was hooked up through friends at UC Santa Cruz with the internet from a very young age. Being a kid, however, I was interested in games and found some fun stuff to play with on those UNIX machines. One of them was a ASCII-art graphics game called “robots” that was roughly inspired by the Daleks from the Doctor Who television show. When I got my first Mac, I set out to create a pixel-graphics equivalent of the game, and to use the challenge to learn more about programming in general and about the various APIs in the Macintosh Toolbox (what would later become Carbon).
One funny thing about that first project is I was working on a Mac (a PowerBook Duo 210) that didn’t have a color display. Everything was grayscale, which was itself a step up from earlier Macs that only had black & white. I drew all the icons for my game on that Mac, hoping that the colors looked the way I expected they would. It wasn’t until some time after the game had “shipped” that I got the chance to see it in all its full-color glory. I wrote about the game on Red Sweater Blog several years ago, and you can read more about it if you’re interested: http://www.red-sweater.com/blog/131/vintage-code
- What went well? What could have gone better?
I was still very uncertain about how to handle lots of things, so for example in my game, none of the characters on the screen animated when they moved. Every time the player moved a character one space, the entire playing board was redrawn to reflect the new state of the game. In this way it was very much like the text-based UNIX version I was emulating, but in neglecting to take advantage of the features of the Mac, I drew some criticism from people who understood more clearly how it could be better.
- What is your favorite among the apps you’ve developed?
To me this is like asking a mother to select a favorite child. I have lots of favorite moments with the apps that I have developed, and with the various technologies I’ve worked in when working, for example, at Apple, where I wasn’t working on apps per se. I think that any software developer needs to stake out areas for minor victories here and there, and celebrate them in isolation. Obviously it would be great to have major victories all the time, but in the context of the achievement, every app I’ve worked on has had its moments of being fully gratifying for a moment, a day, a week, whatever.
- What advice do you have for young people who want to make apps?
Don’t be ashamed or intimidated by whatever shortcomings you think you have. You might not be as limited as you fear, and even if you are, nearly all the limitations can be overcome by starting less ambitiously and working your way up. The kinds of software I was able to build when I first started seems comically simple to me now, but I remember struggling to wrap my brain around concepts that just didn’t fit my then-understanding of the world. Time passes and like anything else you will become more comfortable with the techniques and mindset you need to tackle bigger problems. Don’t let anybody tell you that “Hello World” is not a big deal. Whatever level you need to start at, it’s the starting that is a big deal. Work your way up from there.
Help more girls learn software development. Contribute to the App Camp For Girls Indiegogo fundraiser, get a cool perk, and enjoy the feeling of having helped the next generation of software developers.