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.