Technology

What I build, and what I build on

Platform thinking starts with being intentional about your foundation: what you create, what you borrow, and how it all fits together. This page is my own answer, kept current — the open-source projects I build and maintain, and the technology I choose to stand them on. I wrote this page for my platform; you should be able to write one for yours.

What I build · Platform pieces

Open-source pieces of a connected-product platform

A connected product spans firmware, an edge gateway, and the cloud. These are the pieces I kept rebuilding on client projects until it made more sense to build them once, in the open.

go · cloud + edge

Simple IoT

An application and framework for connected systems. One Go binary runs in the cloud and on embedded Linux gateways, with configuration and data synchronized between them.

embedded linux · oe/yocto

yoe build

An efficient embedded Linux build system and infrastructure, optimized for small teams building complex edge systems. Built on OpenEmbedded and Yocto.

hardware · plm in git

GitPLM

Product lifecycle management in Git. Part numbers, BOMs, and releases live as plain files in version control, so hardware and software follow one workflow.

methodology · tracking

HFID

Human-friendly industrial device IDs: a practical scheme for identifying and tracking versions, parts, units, and locations across the life of a product.

What I build · Tools & utilities

Smaller tools that earn their keep

Focused tools from the device end of the system and from the workflow around it. Each one solves a problem I hit on real projects.

zephyr · firmware

Simple IoT for Zephyr

Brings Simple IoT patterns to the Zephyr RTOS, so MCU-class sensors and controllers join the gateway and cloud as one system.

zephyr · networking

Zephyr SNMP

SNMP support for the Zephyr RTOS, for devices that need to participate in managed industrial networks.

embedded linux · display

Yoe Kiosk Browser

A full-screen browser for embedded Linux kiosk and HMI displays, designed to drop into a Yoe or Yocto/OE image.

linux · serial

linux-serial-test

A utility for stress-testing Linux serial ports: throughput, latency, and error rates. Packaged in Buildroot and widely used for board bring-up.

workflow · builds

brun

A simple way to define and run native build workflows. No containers required.

ai · claude code

Claude Code plugins

Plugins for Claude Code that encode development workflows, so AI-assisted work follows the same process as the rest of the team.

infrastructure · ansible

Ansible roles

Roles for the self-hosted infrastructure a small team runs alongside its product: Gitea, Caddy, Grafana, InfluxDB, and more.

What I build on

The foundation I choose to stand on

When you borrow a tool, you also borrow the process behind it: the maintainers, review, CI, and security response that keep it healthy. That makes choosing your foundation one of the highest-leverage decisions in a product. Here is what I currently reach for, and why.

Languages & runtimes

Go

One language from cloud to edge: static binaries, painless cross-compiling, and a standard library that covers most of what a connected system needs.

The glue: scripts, data processing, and quick tools around the main system.

A modern RTOS with a real build system and an active community, for MCU-class devices.

The build framework under yoe build, flexible enough to produce exactly the Linux system a product needs.

Running systems

Messaging and data synchronization that runs equally well in the cloud and on an edge gateway. The backbone of Simple IoT.

Dashboards for everything a running system produces.

Efficient time-series storage that stays small enough for modest hardware.

A web server with automatic HTTPS, simple enough to trust in front of everything.

Repeatable server and edge deploys, stored as plain text in Git.

Design & development tools

Git

The center of the workflow for everything: software, hardware designs, documents, and this website.

Open-source electronics design, with file formats that Git and AI agents can work with directly.

Open-source mechanical design, chosen for the same reasons as KiCad.

An AI agent that reads and writes the same open file formats we do. Open tools matter more every year for exactly this reason.

A fast static site generator. This site and several others run on it.

Could you write this page for your product?

Every product stands on a platform, whether anyone has defined it or not. If you would like help defining yours — what to build, what to borrow, and how it all fits together — I would enjoy the conversation. The rest of my public work lives on GitHub.