My dev environment: Nix, git, just, backlog, Claude Code

The development half of my stack: Nix for reproducible software on any distro, git as the decentralized transport, just as the one command surface humans, AI agents, and CI all share, and backlog to keep tasks in git instead of racing to a server. Claude Code drives it: no MCPs, no giant third-party stacks, just context engineering over low-friction local tools. Local-first, and no containers for development.

My machine: Linux, NixOS, zellij

The machine half of my stack: declare the whole computer in one NixOS file and roll it back from the boot menu. Why Linux is unbeatable and too big to trust, why the distro barely matters, why Ansible is a mutato, and a terminal-first desktop (XFCE, zellij) reached over WireGuard, mosh, and xpra.

Nucleus-rs: porting for ~free

Write a parallel algorithm once, with no workers, buffers, or barriers in it. A separate schedule maps it onto threads, an MPI cluster, or a microcontroller — so trying a new decomposition, a new transport, or a whole new platform becomes a small edit instead of a rewrite. The compiler synthesises the communication and proves it can't deadlock.

Niche: a Nix-native blog engine

The engine behind this blog: a small Rust binary wrapped by a Nix flake, built as a compiler toolchain — compile each post, link cross-references, compose the site. Nix is the config language and the build cache; there is no YAML.

About This Blog

The colophon: this blog is a small content-and-theme instance wrapping the niche engine in a thirty-line Nix flake. What lives here, what lives in niche, and the design principles.

about:mark

Who I am: an engineer from the schematic to the type system. Compilers, embedded firmware, and owning your own machines.