John Ericson (@Ericson2314) first installed NixOS in 2014, and has been contributing back to the ecosystem in various ways every since. Since joining Obsidian Systems in 2017, he was able to complete his dream of seamless cross compilation as a first-class feature in Nixpkgs. In 2020 he started getting into the Nix codebase itself, working on the IPFS integration and Content-Addressed derivations. Over the years, John has become increasingly interested in the leveraging the layering of Nix as means of both taming complexity and broadening our community.
Beneath NixOS, Nixpkgs, and the Nix expression language is the “Nix store” interface — a deceptively powerful interface that includes includes both storage itself and also building. Although we rarely use it directly, it’s at the heart of what makes Nix great. By understanding the semantics of the Nix store interface in isolation, intermediate and advanced Nix users can expand their intuition and problem solving skills while working with Nix. The ways we both use and implement the interface will keep evolving in myriad ways, but the interface itself, or at least the core ideas behind it, have remained remarkably stable, anchoring everything else we do.