Blog posts

Broken Promises: The Nix Governance Discussions

See the update at the end of this post

This post presupposes some level of familiarity with the ongoing work to establish new governance in the Nix project. If you don't know what's been going on, this is almost certainly not interesting to you.

Summary: I have been unjustly suspended from the NixOS governance discussion. The manner and rationale of the suspension reveals corruption of the promised objective process, and the fact of the suspension deprives the project of valuable contributions. Everyone should accept that the NixOS Foundation Board has made its decision that certain positions are not up for discussion, and either engage on their (actual, not promised) terms or part ways.


Today marks a huge milestone in my software engineering career. In my role of VP of Engineering at Scarf, we've announced Nomia! In one form or another, I've been working on the ideas underlying Nomia since 2012, and a major part of my role at Scarf is to make it a reality.

Irreversible Damage

Some quick thoughts on Target's removal of Irreversible Damage from their assortment

Announcing ConSciEnt and The Texture of Understanding

Update 2024-07-18: The ConSciEnt-specific pages of my site have been taken down for the time being, links have been removed

Today I'm excited to go public with ConSciEnt, my R&D effort to understand consciousness, through my first project: The Texture of Understanding!

A Declaration of Cattiness

This weekend at my community's Independence day cookout, we held a declaration competition. This was my entry, in favor of gossip and drama.

הליכה לקיסריה

Recorded myself singing one of my favorite modern Hebrew songs:

Minion vs Mastermind

In my professional life as well as in various volunteer contexts, I've noticed (at least) two kinds of roles people can fall into. Understanding their dynamics can help both someone trying to recruit or manage others in a project and someone deciding whether to jump in or understanding their own role.

Wrapping My Head Around Cubical Path Types

Last weekend, annoyed yet again at a lack of proper quotient types, I decided to dig into cubical type theory. A weekend's reading and pondering does not an expert make, but I wanted to highlight some surprising structural ways in which these theories differ from previous type theories, which none of my sources noted.

Understanding Nix's String Context

Note: This post assumes some familiarity with and interest in Nix. In particular, a basic understanding of the distinction and relationship between the Nix language and the Nix store is required.

In the Nix expression language, all strings have some metadata associated with them called "context". At a high level, this context is used to track dependencies in our build scripts to ensure we have all of the packages we need available during our builds. In this post, we'll go into more detail about why this context is necessary, how to interpret it, and the technical details of how this feature interacts with other aspects of the language.