I’m an engineer at Google working on the Protocol Buffers team. This blog is where I write about things I find personally interesting. Opinions are my own and I do not speak for my employer or my team.

I am interested in low-level software and how to make it as small, fast, and simple as possible. The software projects I most admire are Lua, LuaJIT, zlib, and SQLite.

I wrote Bloaty McBloatface to make it easier to understand what makes binaries big. Bloaty includes its own ELF, Mach-O, and DWARF parsers in order to deeply analyze the binary. I enjoy learning the dark esoterica that comes from delving this deep into the stack.

I created upb, a small implementation of Protocol Buffers written in C. This library is used in the official Ruby and PHP libraries for Protocol Buffers.

Some of the things I write about on this blog are far from my expertise. Sometimes my primary motivation for writing a blog entry is to learn enough that I can bring clarity to some topic that I don’t understand very well. That said, I check my facts and strive for everything to be correct; please let me know if you find material errors.