What do you do at Mozilla?
Officially, I am the the Software Architect for the Socorro project. Unofficially, I spread chaos and confusion as a self proclaimed Cowboy Programmer. I proudly stand as the only member of Webdev that does no Web development. My work is all behind the scenes at the server and daemon level.
Socorro was handed to me in May of 2008 as a non-working system that needed to be functional for the June Firefox 3 launch. Even with short schedule, I met the deadline, but the result was a pure unadulterated hack. With ambiguous to nonexistent specs, I continued development as a solo performance art piece. Some features still in use today went from concept to production in less than thirty minutes. Eventually, a team formed around me and we began the slow process of applying standards and retroactive forethought to the codebase. Today the system serves terabytes of data and handles millions of transactions per day.
Any fun side projects you’re working on?
All of my side projects are fun, but they’re not all software related:
- I run a wholesale nursery specializing in roses. I’ve literally thousands of varieties in a rose garden that spans an entire acre. I’m a plant nerd with seven greenhouses and an appetite for strange plants.
- I’m constantly tinkering with my 2008 Harley FX-STB. I added a USB port to it. I’m writing software to monitor engine performance and tweak the fuel injectors. Maybe I can find a way to make a B2G app for it.
- I play Baroque oboe and recorder for my own amusement. I’ve also just placed a foot in the world of electronic instruments with a Yamaha WX5 MIDI woodwind instrument that drives a synth. I’m suddenly writing MIDI interface code in Python.
How did you get started in web development or programming?
I’ve been captivated by computers and programming since 1974 when my high school math lab got its first timeshare account on the local university mainframe. I wrote games. By 1992, I had educated myself out of the local job market moving to the proverbial Silicon Forest of Oregon.
My first actual Web development project was in 1999 when I opened the nursery. Written in C++ with Rogue Wave and Microsoft tools, it was brittle, but fast. I rewrote the system in 2002 using an open source stack: Python, Apache and Postgres. In the era of Netscape and IE6, I learned very quickly that I am not a user interface designer: getting a consistent and aesthetic user experience is hard. My career doing user facing web design mercifully ended when I sold the retail part of the nursery business in 2007.
How did you get involved with Mozilla?
In the mid aughts, I worked for Oregon State University at the Open Source Lab. My fearless leader volunteered me to work on Mozilla projects. At the time, Mozilla was primarily hosted at the OSL. On leaving the University in 2006, I ran into Shrep, then CTO of Mozilla, at OSCON and he offered me contract work. I converted to full time employment in 2008.
What’s a funny fail or mistake story you can share?
I was asked to review the work being done in Ramora, a version of AMO. I thought what they were doing with MySQL was absurd and I expressed the sentiment giving some suggestions as to an alternative direction that could work better. I also recall pointing out the flaws in my own method: too many joins for MySOL to handle. I expected to start a lively discussion, but the debate never came and I forgot about it. I was horrified to discover a month later that my word had been taken as gospel. It was implemented and sent to production, warts and all. I shudder to think of how long it took the AMO team to undo that ill advice.
What’s something you’re particularly proud of?
I was instrumental in the creation of DBTools.h++, an object oriented database abstraction class library in C++ for Rogue Wave Software in the early nineties. Think of it as a C++ version of SQLAlchemy, created ten years before that software came into existence. The class library became very popular with phone companies, airlines and investment banks. This evolved into a lucrative career for me later in the decade doing lectures and code reviews for Rogue Wave customers. Imagine me in my Harley t-shirt and jeans walking into a Wall Street investment bank ready to critique code written by the suits…
What’s coming up that you’re excited about?
In Socorro-land, I’m excited about the adoption of Configman. The project started as a unification library for configuration and became a dependency injection framework. With the ability to load classes at run time, Socorro will be able drop in storage schemes, alternative processing algorithms, or swap out any number of other subsystems. Configman is the key that gives Socorro the ability to scale from a tiny installation receiving a handful of crashes per day, to huge systems like ours that processes millions.
What question do you wish you’d been asked?
There is great wisdom in the aphorism, “everything old is new again”. Just like most aspects of human endeavor, programming is subject to the whims of fashion. Perfectly legitimate languages and engineering practices fall from favor because something new and shiny comes around. The old technologies are a gold mine of ideas and techniques that can solve today’s problems. Take time to explore Lisp, Smalltalk, APL or even Fortran. Don’t let dogma limit freedom of expression. Monoculture is a bad idea in software engineering just like it is in agriculture.
What kind of app do you want to see on Boot2Gecko?
Good Lord, I can’t just think of just one. I want a full spectrum of apps on B2G. GTD (Getting Things Done) software plays an important part in my daily life. Omnifocus is what keeps me tethered to iOS. Liberate me!