Hi! I am Chris Fallin. I’m a software engineer and/or computer scientist and/or generalist nerd. I’ve worked on many things but I specialize in compilers. I love thinking about code that thinks about code.
I’m currently a software engineer at Mozilla, where I work on the compiler-y bits of Firefox: I did some work on SpiderMonkey (the JS just-in-time compiler) but now mostly focus on Cranelift, an optimizing compiler for WebAssembly. Previously, I did my PhD at Carnegie Mellon, where I studied compilers, static and dynamic analysis, and before that, CPU microarchitecture. My dissertation was on a type of high-level alias analysis to enable loop parallelization, and more generally, on program analyses that try to understand higher-level data-structure semantics. I’m still an academic at heart, though I’m happy to be building things in industry these days. In the middle of the PhD, I took some time off to work on a microarchitecture team at Intel, and then hack on C++ infrastructure at Google (the protocol buffers data-serialization library, including arena memory allocation and some language bindings).
I believe in free and open-source software and try to align my work in a way that contributes to this shared public good. I like to build systems that are based on small well-defined core abstractions; this is probably why I enjoy compilers (and previously, out-of-order CPU design) so much. I find the precision and correctness that comes with strongly-typed high-level programming languages to be immensely valuable; I write most code in Rust these days. I believe that there’s a lot of work still to be done to improve the security and performance of modern systems: software is too important for us to be sloppy about it.
In my spare time I can often be found hiking, riding my bike, or continuing at my futile attempt to read books faster than I buy them. I spend most of my time staring at glowing rectangles and pushing buttons, though.