profile for theMikeSwan at Stack Overflow, Q&A for professional and enthusiast programmers

Check out my résumé

I've been interested in computers and electronics for as long as I can remember. When I was a kid, my dad bought one of those computers that needed a TV for the monitor and a cassette deck with a counter for the disk drive. While I don't remember much about what that computer could do, I do remember putting tapes into the player, setting them to the right point and loading them into memory. During the same time, I was building lots of Legos and playing with one of  those 100-in-1 electronics kits with the springs. It didn't take very long before I switched from the pictographic instructions showing the layout to the schematics. Eventually, I got bigger kits and started combining parts of circuits to build my own things. Later on my parents got an Apple IIc and I started playing with BASIC. I even made my own simple startup disk that asked for a password as soon as it started. It wasn't even close to secure since there were three plain text passwords for the three levels of access it allowed, and you could easily interrupt the program for full access anyway. Even so it was fun to figure out what files were needed for a startup disk and how to get my own code to run at startup. In the eighth grade I took a class on programming in BASIC. The only thing I remember is getting an assignment to create a flowchart for making a hamburger. Not long after that I got distracted by film effects and theatre lighting. I wasn't one of those theatre geeks that was obsessed with the shows themselves, I was focused on the technology, it was a great combination of electronics and computers. By the end of my first year in theatre, the teacher was calling me with questions on how to use the new lighting console.

When I graduated high school, I joined the U.S Air Force and my parents bought me a Mac Classic II to take with me There, I worked as a communication and navigation systems specialist. The Air Force taught me a lot more about electronics as well as how to clean bathrooms, paint walls, pump fuel onto planes and. Part way through my four year tour, I got switched to a special unit that was a mobile command center. There, I dealt with the communications systems that were being swapped over from customized hardware to stock PCs with removable hard drives (so they could be secured if they had classified data on them). Each mobile command center had a network of four machines running Windows 3.11. Part of my job was to maintain the network and the connections to the satellite communications radios. Early on in the process we had issues with the radios losing their encryption codes when we connected them to the computers. After getting one of the cables from the training unit near us, I determined that the documentation was incorrect and that some of the pins were flipped. Once that was fixed everything worked as expected.

After the Air Force I went to school for theatre lighting and have been doing that since. It has been a good career, but somewhere along the line I realized it isn't what I want to be doing. In the years after getting my first Mac I had experimented with writing software for it. At the time, There weren’t very many resources to help me learn, and I was always busy with one thing or another so it never went very far. I learned a bit of HTML playing around with Geocities pages, spent some time with HyperCard, and got a book about Thin C but that was largely it.

When I moved to NYC in 2004, after working on cruise ships for a while, I got a six month job running a show and monitoring a self running multimedia presentation. That gave me the time to learn more about software, and as Apple had switched to Objective-C and Cocoa by then, it made learning easier. I started with Programming in Objective-C (by Stephen G. Kochan) and then moved onto Cocoa Programming for Mac OS X (by Aaron Hillegass). Once I learned those, I wrote my first app.   It  took a DMX address (1-512) and showed you which DIP switches to turn on to get that address on lighting fixture. After that I spent more time learning and experimenting with different ideas. At one point I wrote a 12 channel lighting controller that used a USB to DMX converter. When the iPhone SDK came out I took my DIP switch app for the Mac and ported it over to iOS. A few months later I created a new app that included that functionality, along with a few other utilities for dealing with DMX, that became my second iOS app, DMXRef. At the same time I had been working on a better way to keep track of how much money I had made and who had paid me yet. Every year I would get around a dozen W-2s and several 10-99s. It was challenging to keep  track of who I worked for on a given day, how much I had made, and if I had been paid for it yet. There were plenty of options for independent contractors that would generate invoices, link to your bank account and such, but I wanted something simpler. First, I created a spreadsheet that I entered everything into, then I added formulas referring between sheets to  and a column indicating whether I had been paid (that became checkboxes when Numbers came out). Once I had figured out what I wanted, I started writing an app, myIncome, using Core Data. I used it for a while (with its little quirks) before I had it to the point I was ready to release it in beta. Not long after that I ported DMXRef from iOS to Mac.

I started taking capoeira classes near the end of 2011; there I met my friend Amy Cheung. She had an idea for an Ashtanga Yoga app using some cute drawings she had made. She brought in another friend, Jonas Rådahl, to work with us as well. Since the images were basically done and the app itself had a really simple concept it only took a couple months to build Ashtanga Yoga. Building the app allowed me to work with parts of iOS that I hadn't done anything with yet, such as playing back audio files and working with animations.

Lately I have primarily been experimenting with different ideas, mostly involving Core Data and iCloud, as I continue to learn more about software development. When Apple announced Swift I started experimenting with it and have become quite comfortable with it. While I still have more personal projects that I'm working on, I am ready to start taking on contract projects at this point. Currently, I am looking mostly for subcontracting style work rather than contracts for full projects. If you are a developer that needs some help with a Mac or iOS project feel free to get in touch.