Software architect by day. Rootshed by night. Garage always.

I build the thing under the thing.

Identity systems, release pipelines, desktop plumbing, and the apps I make for people who work with their hands.

By day: Software Architect at LifeMD.

Shipping
A Wayland desktop, built from small separately versioned parts.
Designing
Something for Rootshed.
Printing
Better connectors for tube marble runs, for my kids.

Open source, shipped

The bench

A Wayland desktop built from small, separately versioned parts, each with a spec and decision records beside the code.

The Vigil greeter: a large clock above a password field, with two characters typed.
  • Rust
  • Slint
  • Wayland

Vigil

Graphical Wayland greeters need a compositor, so a routine desktop upgrade can break the one thing that must never break: login.

Vigil is its own display backend. One Rust binary drives every monitor straight over KMS/DRM and draws an independent, themeable scene on each.

The full login flow is tested end to end in QEMU.

  • Rust
  • Hyprland

hyprstate

Lid, monitors, lock, suspend and USB wake all fight over the same session, and each fix breaks another.

One event-sourced state machine over Hyprland, logind and UPower, with a reconciler that re-asserts the hard invariants.

Effects are isolated from a pure transition function, so the logic is testable.

  • Rust
  • Agents

hyprhands

An agent driving a desktop needs eyes and hands, without trampling the person sitting at it.

Capture, accessibility tree and input over a small framed stdio protocol, with detection for when the owner takes back the mouse.

  • TypeScript
  • Node-RED
  • Spec

open-comfort-engine

People know when they are too hot or too cold. They do not know what setpoint they want.

Thermostats learn preferred warmth from plain votes, and drift toward idle to save energy.

A language-neutral spec, a TypeScript reference, and Node-RED nodes.

Everything else on the bench

One-person app studio

Rootshed

Rootshed is my studio for small, honest phone apps for people who work with their hands.

The first ones are in the works.

Things I build with my hands

The shop

The apps exist because of the garage: bikes that need logs, a printer that needs tuning, a marble run that needs better connectors, and a cluster that runs the house.

  • Dirt bikes

    A small fleet that needs maintenance logs, and gets them.

  • 3D printing

    An Ender 3 running Klipper, tuned until it stops complaining.

  • Marble runs

    A connector spec and an OpenSCAD library, so parts from different sets finally fit.

  • Home lab

    A small cluster that runs the house, built to be rebuilt.

Three rules

How I work

  • Write down why

    Every repo keeps decision records, so the next change keeps the intent.

    Example: Vigil design doc

  • Clone it and run it

    No machine names in the repo. Config comes in through one door and defaults are generic.

  • Read the source

    Summaries are pointers, not facts.

    Example: Steam internals notes

Open to new opportunities

Say hello

I'm open to new opportunities. If you're hiring for a role in platform, developer tooling or identity, write me and I'll send a full resume.

me@masonrhodes.dev