Daniel Brooks — Rust Hacker Extraordinaire

home Daniel Brooks db48x@db48x.net
(832) 549-7425 home
11905 SW Center St
Apt. 79
Beaverton, OR 97005 , USA
https://db48x.net/

Goal

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.

Relevant Skills

  1. UI code: , , , , , , ,
  2. Back-end code: , , , , , others
  3. Server side: , , , , , . etc
  4. Version Control: , , ,
  5. Other: , , , , , many others…

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.

Work & Experience

Headline:

January ’22May ’23 Senior Software EngineerMaintained and extended data–gathering systems.

Internet Archive:

December ’18February ’20 Software EngineerI 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.

Open Source Programmer:

January ’00
present
Self EmployedVolunteer 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.

Freelance Programmer:

July ’00
December ’19
Self EmployedProgramming contracts for companies/individuals, and for the public good. Includes a wide range of projects, some of which are detailed below.

Fornova

August ’15
September ’16
Software Engineer, consultingPorted 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.

Solarpermit.org

December ’13
August ’14
Software Engineer, consultingA 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.

Ask Partner Network

May ’11
May ’13
Software EngineerBrought 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.

Pioneers of the Inevitable

Aug ’09
March ’10
Software EngineerPOTI'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.

Mozilla Corporation

June ’08
January ’09
Software EngineerMozilla 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.

MozDev Group, Inc

March ’06
May ’08
Software EngineerMDG 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.)

RavenWerkes Tech Centre:

June ’02
February ’04
Manager/TechIn 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.

Wal-Mart:

October ’01
June ’02
Front End ClerkHad 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.

Computers Unlimited:

April ’00
July ’01
Manager/TechManaged 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.

Winn-Dixie:

June ’98
January ’01
Stock/Produce ClerkStocked/leveled shelves, cleaned the store. Graduated(!) to produce, where I cut and packaged the produce, etc.

Hobbies & Interests

Computers (what else?!):

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.

Computer games, of course!

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.

Math:

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.

Music:

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.

Books:

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.