Skip to content
View zmitchell's full-sized avatar

Organizations

@savikhin-lab

Block or report zmitchell

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
zmitchell/README.md

Zach Mitchell (@zmitchell)

Hey, I'm Zach. I'm a software engineer and a professional curler1. I'm also a CPython contributor2.

Background

My background is physics, but that's not what I do anymore because lasers don't have unit tests or version control. I did a PhD building various kinds of laser spectrometers to study how energy moves between molecules (specifically inside proteins involved in photosynthesis). The lasers I built spit out pulses of light as short as 20 femtoseconds (femto = 10^-15), and sometimes they even worked! I also did quantum mechanics simulations. If you call me "doctor" I'll simultaneously feel extremely uncomfortable and proud. Do with that what you will.

I developed an interest in systems programming during my PhD, and now I spend my free time doing things like building eBPF-based profilers (like everyone else). I feel at home in Rust and Zig, but I spent several years knee-deep in Python. I have a healthy fear of C++, and C macros scare me a little bit. It's my professional opinion as a doctor that header files should be illegal.

I spent about 9 months on the Nix documentation team (if you've seen the documentation you'll understand why). I don't do that anymore, but I do still use Nix to configure all of my machines (yes, even my macOS laptop). You can see my Nix configurations here: zmitchell/nixos-configs. For a few years I was the program chair for the Planet Nix conference.

Interests

I'm particularly interested in systems software of various kinds. I constantly have an itch to build tools that other developers can use because I see so many of our tools as suboptimal.

Lately I've been on a build system kick. Nix gets close to what I want, but falls short on a few fronts. I ended up working at Flox for a few years, which is a big leap forward in user experience, but a step backwards in flexibility and interoperability.

If you want to be my best fried in the whole world, please write a tool for local code review that (1) doesn't suck, (2) is jujutsu-compatible, and (3) isn't written by vibe coders for vibe coders.

Most of my personal projects these days are written in Zig, but I'd like an excuse to use Gleam for something.

Writing

I write infrequently, but I enjoy doing it when I have something to teach. Much of the documentation at flox.dev/docs was written by me (especially the Concepts section).

A few highlights:

Talks

I'm genetically incapable of shutting up, and being on stage temporarily quenches my thirst for power, so I frequently find myself speaking at conferences or working booths.

The full list of my appearences is here: https://tinkering.xyz/talks/

The highlights:

Footnotes

  1. In the sense that I somehow convinced my employer to sponsor my curling team. I'm not kidding: https://flox.dev/blog/flox-named-exclusive-media-sponsor-of-the-rock-bottom-curling-clubs-2025-season/

  2. Look, someone had to do it. Also, no one else volunteered to be an accomplice in my Python crime.

Pinned Loading

  1. flox/flox flox/flox Public

    The Deterministic Foundation for your SDLC

    Rust 4k 125

  2. flox-debugger flox-debugger Public

    Rust 2

  3. floxdocs floxdocs Public

    Forked from flox/floxdocs

    Curated Flox Documentation

    Shell

  4. proctrace proctrace Public

    A high-level profiler for process-level events such as fork, exec, exit, setpgid, and setsid

    Rust 61

  5. polsim polsim Public

    A command line utility for doing polarization simulations

    Rust 17

  6. annotation-abuse annotation-abuse Public

    Rust-like macros in Python by abusing type annotations

    HTML 63 2