In 1994 while visiting my local library I found a book on how to create web sites using HTML. With it I wrote my first web page on my grandmother’s IBM486. I didn’t even have a browser to test my code on, I had to put the files on a floppy disk and take them to the local university’s computer lab to see what my pages looked like.

The next year my mother bought our first computer, and with it dialup access to the internet through the local university. I immediately took to hanging out on IRC, and at the time the best IRC client available for the Mac was Ircle. Ircle supported extensive scripting support by way of AppleScript, an automation language built into the Mac OS. This was my first exposure to programming, adapting other people’s scripts to perform the functions I wanted them to do, and eventually writing all my own scripts from scratch. I signed up for a web hosting account through a local users group and started making web pages to publish my scripts on.

When Netscape 2 came out I picked up JavaScript, again by tinkering with examples and other people’s code, applying what I already knew about programming. At the same time I started working in a (then) new language on the Mac called REALbasic which inspired by Microsoft Visual Basic, but was created from the ground up to be a pure Object Oriented language and did not suffer from many of the issues that early VB had. The language was easy to learn but extremely powerful, and I developed many applications using it. This included a couple paid contract jobs: the Mac OS Classic version of’s IP Updater software, and a cross-platform video editing application for a home movie conversion business. It was also in Rb that I wrote my two most successful applications, iTunes Tool (a floating playback controller for iTunes which received almost as many downloads on VersionTracker as iTunes itself), and AthenaIRC (later renamed Minerva IRC).

In 2000 I created a web simulation of the Mac OS desktop using HTML and JavaScript. It had working menus, draggable/resizable windows, functioning icons, all sorts of jazz. By todays standards this is pretty basic stuff, but in 2000 it was cutting edge JavaScript. At the same time a startup called (not to be confused with HP webOS) was creating a similar system themselves. I mentioned their work on my site, which allowed them to find my project through Google. They offered me a job on the development team creating the second version of their system, a JavaScript adaptation of the Java Swing API.

The work was way over my head, but I learned a lot on the job just from looking at the code that the guys I worked with were creating. That winter the bubble burst and web startups started folding like wet newspapers. We finished the product but then realized that we had nobody to sell it to. The investors pulled out and over the course of a month 90% of the team was laid off. I went back to college and got a job at a bookstore.

In 2003 I started using PHP and wrote my first non-static website, This included a searchable blog that used static files to store each entry, as I didn’t have access to a database at the time. Over the next five years I gradually built up my knowledge of the language by trying new things and tinkering with ideas. In 2007 I created a web front-end for accessing my iTunes collection remotely which I named Musiker. This project imported the iTunes Library XML file into a MySQL database, which the web front-end used to present playable links in a layout very similar to iTunes itself. This project impressed the heads of Netfinity, Inc and they offered me a senior developer position.

In my 4 years at NFY Interactive I continued to expand and enhance my skills in all fields of web development to become well versed in PHP5.3 object-oriented programming conventions, MySQL 5 database structuring, building dynamic and interactive front-ends using HTML5, CSS3, JavaScript and AJAX, interfacing with external APIs using XML and JSON, LAMP server administration, and numerous other responsibilities. In 2010 NFY closed their office and virtualized the company, and for two years I worked remotely from my home office.

In January of 2013 I accepted a position with Synacor as a front-end developer, building JavaScript libraries and components. This position puts me in a good place to learn caching and load distribution techniques that are necessary for hosting a web platform viewed by literally millions of users per day.