My goal is the Singularity, and the means of achieving that goal is openness on the web and in our code. If that's too bombastic then my goal is the improvement of technology, and the web is the way to do that. Of course, this is a long term goal, and a pretty abstract one at that. I've found that web and browser related projects have been the best way to engage that passion.
Most of my professional experience comes from working on the Mozilla project, mostly the user interface code - my first major contribution was to rewrite the Page Info window from scratch. I did some work on some of the toolkit and xpfe widgets (XBL bindings), and corrected the UI code that used them. I've also had some experience in content code, and in writing both C++ and JS XPCOM components.
At MozDev Group, I expanded on this to build entire xul apps, extensions and even an old-style NPAPI plugin.
As part of much larger teams at Mozilla and Pioneers of the Inevitable, I've worked on major UI elements for Fennec (preferences) and Songbird (cdrip, video playback, device sync).
Working with Fornova I wrangled an embedded Gecko rendering engine. I ported the GTK widget forward to work with a more modern Gecko engine, and adapted their application to work with it even though embedding is no longer officially supported.
January ’22 – May ’23 Senior Software Engineer — Maintained and extended data–gathering systems.
December ’18 – February ’20 Software Engineer — I focused on tools for curating content, in addition to bug fixes and performance improvements. There was also an R&D project for audio fingerprinting using audfprint.
January ’00 –
present
Self Employed —
Volunteer contributor to Mozilla web
browser project and other open source applications. C++,
Python and JavaScript programming, as well as XUL/XBL. Much
experience with bug reporting/triage, debugging, code review,
and large scale application development in general.
Recently my open source contributions have been focused on Remacs, Archive Team and Reposurgeon. Remacs is a project to port the core of Emacs to the programming language Rust, Archive Team is a band of rogue archivists out ot download the web and save it for posterity, while reposurgeon is the best distributed version control repository manipulator there is.
Porting Reposurgeon from Python to Go was a great opportunity to learn the language. I fixed a number of important bugs, but the best part of the work was the performance tuning. I was able to significantly speed up Reposurgeon by reducing the amount of memory allocated, reducing garbage collection overhead, and removing unnecessary work.
July ’00 –
December ’19
Self Employed —
Programming contracts for
companies/individuals, and for the public good. Includes a
wide range of projects, some of which are detailed below.
August ’15 –
September ’16
Software Engineer, consulting —
Ported Fornova's embedded Gecko
rendering engine forward to a newer version for improved
reliability, performace, and feature support. Mostly C++ and
build-system work, with some Javascript and XPCOM.
December ’13 –
August ’14
Software Engineer, consulting —
A project
by Clean Power
Finance to help them smooth out interactions with local
governments. Took over development of the Django-based site,
leading a team to finish it on time and budget in spite of
prior missteps.
May ’11 –
May ’13
Software Engineer —
Brought the flagship product (a
browser toolbar) to Chrome, then used that to rearchitect the
Firefox and IE versions of the toolbar. This resulted in a
consolidated code base that supports all three platforms,
reducing development and maintenance costs.
Aug ’09 –
March ’10
Software Engineer —
POTI's product is Songbird, a
desktop media player. Built on top of the XulRunner platform
from Mozilla, Songbird encompasses video and audio playback,
library management and synchronization with portable mp3 and
video devices. I extended the existing UI elements to add new
features, fix bugs and provide better feedback to the user.
June ’08 –
January ’09
Software Engineer —
Mozilla is the force behind Firefox,
Thunderbird, and several other open source apps that have
entered the limelight in the past few years. My job focused on
Mozilla's new browser for mobile devices, Fennec. In addition
to the typical tasks of finding and fixing bugs, I created the
preference and shortcut user interfaces and assisted in
implementing the Fennec side of a data-sync extension called
Weave to allow users to sync their bookmarks, history and open
tabs between their PCs running Firefox and their mobile devies
running Fennec.
March ’06 –
May ’08
Software Engineer —
MDG contracts for many companies who
use Firefox or XulRunner as a platform for their own apps, or
who wish to create extensions for apps such as Firefox and
Thunderbird. Among the projects I worked on are a xul app for
McDougal-Littell (bundled with their science and math
textbooks), am NPAPI plugin for Microsoft (essentially just an
xpcom wrapper around the activex interfaces to one of their
apps), Nokia (performance improvements for their MicroB
browser which runs on the N810) and the Brooklyn Museum of Art
(I worked on their kiosk browser extension.)
June ’02 –
February ’04
Manager/Tech —
In many ways the same duties as I
had at Computers Unlimited, but here we focused on networking
and business clients, in addition to the residential
clients. On the network side we installed Wireless networks,
LANs, webservers, email and so on, largely in a corporate
environment.
October ’01 –
June ’02
Front End Clerk —
Had the glorious task of operating a
register for 8 hours a day. The only consolation was that they
said I picked it up remarkably fast, and that I got very high
marks for effeciency and accuracy on the register. Yay. Left
for a better job at RavenWerkes.
April ’00 –
July ’01
Manager/Tech —
Managed the Land O' Lakes location,
worked as lead tech at the Zephyrhills location. Duties
included everything from PC assembly and repair to training
customers. I left this job because the owner was shutting it
down.
June ’98 –
January ’01
Stock/Produce Clerk —
Stocked/leveled shelves, cleaned the
store. Graduated(!) to produce, where I cut and packaged the
produce, etc.
Programming is my personal favorite, because there's always some interesting problem to work on. I know Common Lisp, Scheme, Erlang, Javascript, Perl, Python, C/C++, and a few other languages. I've worked extensively with XML, SQL and HTML. A few good examples of my work are for Mozilla, an open source web browser. I also enjoy programming that isn't work related, such as the projects in my Mercurial repositories or on GitHub.
Real Time Strategy, First Person Shooter, MMORPG, pretty much everything. Planescape: Torment, Nethack, Starcraft, Civilization IV, Alpha Centauri, Ceasar III, Dwarf Fortress, A Tale in the Desert, Return to Castle Wolfenstein, Battlefield 1942, Unreal Tournament, Team Fortress 2, L4D2, Portal, nethack, Dungeons & Dragons, Guild Wars, Psychonauts (to list a few.) I have played many games, but strategy and RPG games are my favorite. On the other hand, lately when I've needed a break from work I've frequently choosen to do a little work on Mozilla instead.
I'm really into mathematics. Things like calculus interest me, as well as graph theory, game theory, etc. I'd like to be able to fiddle with with applications of math such as AI, neural nets, that sort of thing. I've written programs that used matrix/vector algebra, trig, etc — a good example would be my Space Elevator simulator. I even wrote a very simple 3D polygon renderer in C++ once.
Classical music is my favorite. I learned to play the French Horn in high school, and I'd like to buy my own horn so that I can take it up again. In the mean time I content myself with listening to as much music as I can. A few of my personal favorites are Shostakovich's "The Second Waltz" and symphonies, "The Ring" by Wagner, Mozart's horn and piano concertos, the "Peer Gynt Suite" by Edvard Grieg, and Dvorak's symphony "From the New World". I guess that's not really 'a few' after all.
I seem to always have liked reading, so I always try and find a good book. I'm mostly into science fiction, though there are plenty of other good books out there. I would have to say that my favorite books are Tolkien's stories of Middle Earth: "The Silmarillion," and "The Fellowship of the Ring." The way he constantly weaves references to the huge body of mythology and history he made for his world into the storyline is what makes these stories great; you really feel that the characters are embedded in a world that is much larger than themselves. Vernor Vinge is also a favorite of mine, particularly "True Names", "Fast Times at Fairmont High" and "A Deepness in the Sky." Charles Stross has also writen some excellent books, such as "Accelerando". Other good ones that I've just read are "True Names", by Cory Doctorow, and "The Book of the New Sun", by Gene Wolfe.