I work for Futurewei Technologies where I am a member of the Rust team. I have also worked for Apple, Mozilla, and National ICT Australia. I have worked remotely since 2009. My LinkedIn profile has a detailed work history.

I have a blog on this site, and an old Mozilla blog. Many of the links below are to posts from those blogs.

I like the Rust programming language. I am a member of the Rust compiler team where I have “maintainer” status.

I have a lot of experience making code faster and more memory-efficient. Examples: the Rust compiler (1, 2), pdf.js (1, 2), JavaScript parsing, Clownshoes allocations.

I have written a number of profilers. Examples: DHAT, ad hoc profiling, Firefox’s about:memory (1, 2, 3, 4), Firefox’s memory reporting (1, 2), DMD (1, 2), Rust’s -Zmacro-stats.

I have often overhauled ugly code to make it simpler, more reliable, maintainable, and performant. Examples: Rust dataflow analysis, Firefox static atoms, Firefox prefs parser, Firefox startup, Gecko Profiler, Firefox BMP decoder, Firefox fatal compiler warnings, Nanojit.

I have run some projects and teams. Examples: MemShrink (1, 2, 3), Project Uptime, Project Candle, Mozilla’s Low-Level Tools team.

I like explaining things. Examples: The Rust Performance Book, Power profiling docs, Browser memory measurements, Memory consumption, Firefox memory improvements, Buffer growth, 64-bit Firefox, N-ary trees in C, Jury duty.

I sometimes do things that don’t fit neatly into the above categories. Examples: A home free from fossil fuels, Firefox stack fixing, OS X Activity Monitor deep-dive, Power estimates, SegmentedVector, Tracking protection experiments, Bio-poem.

I have a PhD in Valgrind and other publications. I co-won the Most Influential PLDI Paper Award for a paper about Valgrind.