AboutCapabilitiesPortfolioExplore

Software

thumbnail

Setting up kopano video conferencing in mattermost

2018-11-7

Diagnosed a Go runtime panic in Kopano's kwmserverd by tracing a nil pointer dereference to a missing --iss flag and patching the Docker startup command

Software
Short Posts
thumbnail

Writing GatsbyJS configuration in Typescript

2019-11-21

Migrated GatsbyJS node configuration to TypeScript using ts-node, exposing implicit assumptions about GraphQL result shapes and making page-generation logic verifiable at compile time

Software
Short Posts
Philosophy
thumbnail

Recovering disk space in NixOS

2020-5-7

Diagnosed NixOS disk space usage with ncdu to identify the largest space consumers across system and user directories

Software
Nixos
Short Posts
thumbnail

Determining why docker command hands at startup in WSL2

2020-1-29

Diagnosed a 30-second Docker startup delay on WSL2 by tracing syscalls with strace and identifying a stale DOCKER_HOST pointing to an unreachable TCP endpoint

Software
Short Posts
thumbnail

Worse is Better: Setting up Gatsbyjs drafts

2019-11-17

Replaced a feature-branch workflow for article drafts with a filesystem-based approach using a dedicated drafts folder in Gatsby.js

Software
Short Posts
Philosophy
thumbnail

Replacing X window system with wayland and sway

2020-3-20

Migrated NixOS desktop from X11 to Sway and Wayland, restoring dual monitor functionality after a BIOS update broke the second display

Software
Nixos
Short Posts
Wayland
thumbnail

Using Windows 10 to fix UEFI after BIOS update

2020-3-27

Restored dual-boot functionality after a BIOS update overwrote UEFI boot entries, recovering access to a NixOS / Windows 10 system

Software
Nixos
Short Posts
Windows
thumbnail

Adding Jupyter Notebook (and Rust) to Gatsby

2019-12-11

Integrated Jupyter Notebook execution into a Gatsby static site using gatsby-transformer-ipynb to render live code output at build time

Software
Short Posts
Rust
thumbnail

Correcting a bug in notebook-render

2019-12-11
1st article in Adding Jupyter Notebook (and Rust) to Gatsby

Debugged a server-side rendering crash in @nteract/notebook-render caused by remark-rehype producing unhandled "element" AST nodes

Short Posts
Adding Jupyter Notebook (and Rust) to Gatsby
Software
Oss
thumbnail

Simplifying Jupyter integration by eliminating heterogenous lists

2019-12-23
2nd article in Adding Jupyter Notebook (and Rust) to Gatsby

Resolved heterogeneous content-type problem by embedding Jupyter notebooks as markdown custom blocks instead of abstracting into virtual post types

Short Posts
Adding Jupyter Notebook (and Rust) to Gatsby
Software
Philosophy
thumbnail

Software Engineering

2019-10-20
Software
Capabilities
thumbnail

Native and Hybrid App Development

2019-10-20

Developed native iOS applications using Objective-C and Swift for platform-optimized mobile experiences

Capabilities
Software Engineering
Software
thumbnail

Full Stack Web Development

2019-10-20

Delivered full-stack web applications spanning frontend design with Adobe XD, React/TypeScript middle-end, and backend services in Python, Go, and Rust

Capabilities
Software Engineering
Software
thumbnail

Layered Backup Workflow

2023-1-15

Built host-specific Borg backup automation with per-machine pattern files, session logging, and centralized archive management

Projects
Software
Nixos
Python
Backup
Bash
thumbnail

ESP32 development in NixOS using VSCode

2020-3-12
3rd article in Hanging Plotter

Built reproducible Nix derivations for the ESP-IDF SDK and xtensa-esp32 toolchain on NixOS

Projects
Hanging Plotter
Software
Nixos
Embedded
Esp 32
thumbnail

Spinning a Stepper

2020-3-12
4th article in Hanging Plotter

Set up a reproducible ESP32 ESP-IDF development environment on NixOS by patching Nix packages and debugging the VSCode Espressif extension from source

Projects
Hanging Plotter
Software
Nixos
Embedded
Esp 32
thumbnail

Android development on NixOS

2020-3-19
5th article in Hanging Plotter

Configured a reproducible Flutter and Android development environment on NixOS using shell.nix with custom package overlays

Projects
Hanging Plotter
Software
Nixos
Android
thumbnail

Connecting an ESP32 to android with bluetooth

2020-3-20
6th article in Hanging Plotter

Established BLE GATT server on ESP32 using ESP-IDF, upgrading the SDK to resolve core panic memory allocation issues

Projects
Hanging Plotter
Software
Nixos
Bluetooth
Android
Flutter
thumbnail

Using an ESP32 as a logic analyzer

2020-3-31
7th article in Hanging Plotter

Repurposed an ESP32 as a SUMP-compatible logic analyzer by integrating esp32_sigrok with sigrok and Pulseview for capturing stepper motor timing signals

Projects
Hanging Plotter
Software
Embedded
Esp 32
thumbnail

Using an Arduino as a logic analyzer

2020-4-1
8th article in Hanging Plotter

Repurposed an Arduino Uno as a multi-channel logic analyzer to capture and inspect digital signals on ports 8 through 11

Projects
Hanging Plotter
Software
Embedded
Esp 32
thumbnail

Driving steppers with the RMT module

2020-4-19
9th article in Hanging Plotter

Resolved ESP32 RMT looping artifacts by disabling software transmit interrupts before enabling hardware loop mode, achieving precise square wave generation

Projects
Hanging Plotter
Software
Embedded
Esp 32
thumbnail

Using Nix to write rust on the esp32

2020-5-9
10th article in Hanging Plotter

Packaged a reproducible Rust cross-compilation toolchain for ESP32 microcontrollers using custom Nix derivations

Projects
Hanging Plotter
Software
Nixos
Embedded
Esp 32
Rust
thumbnail

Using a smooth stepper driver on the esp32 in rust

2020-5-14
11th article in Hanging Plotter

Replaced L298N H-bridge with TMC2208 stepper driver to reduce GPIO overhead, eliminate overheating, and simplify microstepping control

Projects
Hanging Plotter
Software
Embedded
Esp 32
Rust
Stepper
thumbnail

Translating an esp32+esp-idf bluetooth example to rust

2020-5-19
12th article in Hanging Plotter

Implemented ESP32 Bluetooth Low Energy heart rate service in Rust using the NimBLE stack by translating and adapting C reference implementations

Projects
Hanging Plotter
Software
Embedded
Esp 32
Rust
Bluetooth
thumbnail

Local LLM

2026-5-12

Engineered a reproducible local coding-agent environment using Nix and llama.cpp, enabling Pi to run against a shared Qwen model on an RTX 3090

Projects
Software
Ai
Developer Tools
Nix
Infrastructure
thumbnail

Northwest Waxworks

2024-6-30

Built a digital fabrication pipeline converting mountain terrain data into 3D-printed candle molds, automating geometry tuning too complex for manual adjustment

Projects
Software
Fabrication
Cad
Manufacturing
Product Design
Entrepreneurship
thumbnail

What Is the Project?

2025-3-10
1st article in Northwest Waxworks

Built a CAD/CAM workflow to transform real terrain data into iteration-ready geometry for wax sculptures

Projects
Northwest Waxworks
Software
Fabrication
Product Design
Entrepreneurship
thumbnail

Mountains Into Geometry

2025-4-28
2nd article in Northwest Waxworks

Built a reproducible terrain-to-geometry pipeline using Jupyter notebooks, TouchTerrain, and CADQuery to iterate on 3D mountain models for fabrication

Projects
Northwest Waxworks
Software
Cad
Fabrication
Manufacturing
thumbnail

Repeatability and Product Shape

2025-6-10
4th article in Northwest Waxworks

Implemented dict-hash-based memoization and disk caching for mesh generation to eliminate redundant geometry computation during iterative design

Projects
Northwest Waxworks
Software
Cad
Manufacturing
Product Design
thumbnail

Jar Candles and a Second Toolchain

2026-4-28
6th article in Northwest Waxworks

Migrated a CAD toolchain from Jupyter to marimo by forking and refactoring cad-viewer-widget, creating marimo-cadquery, and building purpose-built map and mesh viewer widgets

Projects
Northwest Waxworks
Software
Fabrication
Manufacturing
Entrepreneurship
thumbnail

Obsidian Remotion

2026-1-28

Extracted TypeScript blocks from Markdown and synthesized them into virtual TSX modules for live, type-checked Remotion previews inside an Obsidian plugin

Projects
Software
Developer Tools
Typescript
Obsidian
Remotion
thumbnail

Building My Portfolio Into a Publishing System

2019-8-30

Evolved a static site into a full publishing and editorial system through seven years of iterative tooling changes

Projects
Software
Writing
Gatsby
Developer Tools
thumbnail

From Static Site to Publishing System

2019-8-30
1st article in Building My Portfolio Into a Publishing System

Migrated portfolio from Zola to Gatsby and React to gain component-driven layouts, richer plugin ecosystem, and more flexible theming

Projects
Building My Portfolio Into a Publishing System
Software
Writing
Gatsby
thumbnail

Inventing a Content Model for Real Projects

2019-11-23
2nd article in Building My Portfolio Into a Publishing System

Designed a Gatsby content architecture supporting articles, series, clusters, and tags with custom page-generation logic

Projects
Building My Portfolio Into a Publishing System
Software
Writing
Gatsby
Typescript
thumbnail

Publishing Dense Technical Work Without Watering It Down

2020-1-12
3rd article in Building My Portfolio Into a Publishing System

Built a custom Gatsby remark plugin to embed Jupyter notebooks inline within markdown articles, preserving experiments and code as narrative evidence

Projects
Building My Portfolio Into a Publishing System
Software
Writing
Gatsby
Notebooks
thumbnail

Owning the Seams: Plugin Forks and Toolchain Drift

2021-4-30
4th article in Building My Portfolio Into a Publishing System

Recovered a broken Gatsby publishing stack from years of toolchain drift by pinning dependencies to GitHub commits and vendoring unstable components

Projects
Building My Portfolio Into a Publishing System
Software
Gatsby
Maintenance
Dependencies
thumbnail

Turning the Site into a Portfolio Editorial Machine

2025-8-11
5th article in Building My Portfolio Into a Publishing System

Built a content-addressed blob storage system to deduplicate project media across repos while preserving git-driven directory structure and rsync-based recovery

Projects
Building My Portfolio Into a Publishing System
Software
Writing
Ai
Tooling
thumbnail

LLM Tooling for Portfolio Writing

2026-5-27
6th article in Building My Portfolio Into a Publishing System

Built a git-narrative tool that analyzes commit history, file churn, and diffs to produce structured article scaffolds with development arcs and problem summaries

Projects
Building My Portfolio Into a Publishing System
Software
Writing
Ai
Tooling
thumbnail

The benefits of trad-coding

2026-5-28
7th article in Building My Portfolio Into a Publishing System

Migrated a portfolio from unmaintained Gatsby to Astro after evaluating Next.js and Contentlayer trade-offs

Projects
Building My Portfolio Into a Publishing System
Software
Trad Coding
thumbnail

Staübli Reborn: Industrial Robot with a Modern Control System

2024-6-30

Reverse-engineered a legacy Staübli RX90 robot controller and replaced its failing floppy boot disk with a ZuluSCSI SD card emulator after six disassembly iterations to derive a working boot image

Capabilities
Mechanical Design
Integration
Welding
Embedded
Web
Projects
Software
Fabrication
Cad
Nixos
Robotics
Python
Javascript
Portfolio
Type
Retrofit
thumbnail

Prototype Software

2025-1-9
5th article in Staübli Reborn: Industrial Robot with a Modern Control System

Built a terminal-based control workflow using Python over RS232 to program a Staubli robot after the teach pendant failed

Projects
Staübli Reborn: Industrial Robot with a Modern Control System
Software
Robotics
Python
thumbnail

Operating System & Deployment

2025-3-1
6th article in Staübli Reborn: Industrial Robot with a Modern Control System

Replaced fragile WSL serial passthrough with an internally mounted Raspberry Pi, solving persistent driver and USB connectivity issues for embedded robot control

Projects
Staübli Reborn: Industrial Robot with a Modern Control System
Software
Nixos
Embedded
Robotics
thumbnail

Framework & Dependencies

2025-3-4
7th article in Staübli Reborn: Industrial Robot with a Modern Control System

Built an 800-line frontend framework using signals and Web Components to implement functional reactive programming for state-driven UI updates

Projects
Staübli Reborn: Industrial Robot with a Modern Control System
Software
Robotics
Javascript
thumbnail

Implementation

2025-6-30
8th article in Staübli Reborn: Industrial Robot with a Modern Control System

Built web-based robot control interface with visual playback preview using JavaScript motion approximation

Projects
Staübli Reborn: Industrial Robot with a Modern Control System
Software
Robotics
Python
Javascript
Featured Work
Welding PositionerSurface Grinder Retrofit
Company Info
About UsContactAffiliate DisclosurePrivacy Policy
Specific Solutions LLC
Portland, OR