Maintaining

projectlighthouse

I'm writing a shelf of hands-on books on the fundamentals of software engineering: C, DSA, operating systems and networking, then Go and Rust.

Each one ends in projects you build from scratch, like your own HTTP server and DNS resolver, or the 1 Billion Row Challenge.

luxctl

The CLI for projectlighthouse, written in Rust.

It runs the tests against your solution in an isolated runtime and walks you through the ones that fail.

Paperkites

A quiet, offline-first Markdown notes app for macOS, with Linux coming soon.

Notes are plain files you own, with Vim keys, backlinks, a graph view, tasks and full-text search built in.

The paperkites home screen: the capture box above a list of recent notespaperkites with a note open beside the graph viewGraph view of a whole vault of notesGraph view of one note and the notes linked to itThe ⌘K finder searching notes and tags for “file”

sleepwalk

Zero-perceived-downtime rebalancing for Firecracker microVMs, in Rust.

It moves a running VM to another host by snapshotting it, streaming its memory across and lazily restoring it with userfaultfd, only once the workload is verified to be idle. No Firecracker fork, no kernel patches.

sentinel

The engines behind the virtual labs on projectlighthouse, which I wrote in Rust.

A Kubernetes-style reconciler provisions Firecracker microVMs and Docker containers for each lab session and cleans them up when they expire, a WebSocket-to-SSH proxy powers the in-browser terminal, and a sandboxed code runner checks the DSA labs.

devsweep

Finds and cleans what's eating a developer's disk, in Rust: target/, node_modules, Docker images, old toolchains, local AI models and about 50 tool caches.

Git decides what's safe to remove, and each tool cleans its own mess with its own command, like cargo clean, asking first.

doctl

The official command line interface for the DigitalOcean API.

I added commands to get an app's running instances and exec into a specific one, instance aliases, and DRA driver support for DOKS.

godo

DigitalOcean's official Go API client.

I added App Platform instance support (listing an app's instances, exec into a specific one, instance aliases), edge control settings, and DOKS GPU partitioning with the AMD and NVIDIA DRA plugins.

mcp-digitalocean

DigitalOcean's MCP server, so AI assistants can work with DigitalOcean resources.

I added optional WebSocket logging, end-to-end tests for logging and insights, the remote MCP docs, and fixed the Cursor and VS Code setup.

openapi

The OpenAPI v3 specification for DigitalOcean's public API, which the clients above are built against.

I specced app instances, instance aliases, edge controls, the atl region for apps, and GPU DRA and partition mode.

terraform-provider-digitalocean

DigitalOcean's Terraform provider.

I added App Platform edge controls, email and Slack alert destinations, and DOKS DRA plugins with GPU partition mode.

Archived

Logflow

An nginx log collector that pushes log data to Kafka over gRPC.

Skridi

A simple project management tool.

I kept juggling different project management, notes and todo apps, and none of them stuck, so I started building one.

Skridi logoProjects overviewThread listThread detailsTeam settings

trust

A TCP implementation in Rust, running on a tun/tap device inside Docker.

I started it to see what actually happens inside a TCP handshake, and got about halfway there.