Nick Welch · résumé

Greetings Earthlings! Welcome to my home page on the world wide web. Established 2002.

Hobby Projects, Experiments, and Misadventures


Reading list:

Monolith to Microservices: Evolutionary Patterns to Transform Your Monolith

Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems


Reading list:

Crucial Conversations: Tools for Talking When Stakes are High

Staff Engineer: Leadership Beyond the Management Track

Team Topologies: Organizing Business and Technology Teams for Fast Flow

The Pragmatic Programmer: From Journeyman to Master


Reading list:

Domain-Driven Design: Tackling Complexity in the Heart of Software

Implementing Domain-Driven Design


Reading list:

Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations

Clean Architecture: A Craftsman's Guide to Software Structure and Design

An Elegant Puzzle: Systems of Engineering Management


A new fence for the yard. Made with western red cedar.

Garden beds made from incense cedar slabs

Reading list:

Patterns of Enterprise Application Architecture


Plywood dog crate with EPDM (rubber roofing) inner lining

Mini split heat pump for the basement. Mostly installed by me, except for the refrigerant work which was done by a licensed technician.


I dug a hole in the ground for a basement window. Would not recommend.

Paver driveway extension that doubles as a dry well for driveway runoff.

Simple 2x4/plywood scaffold for painting the gable end siding.


Urbanite path made from salvaged chunks of the old patio slab.

A new dinner table, made from ambrosia maple.


Cubbies for coats, hats, gloves, etc.


Juice Informant, a home energy monitoring tool, built with Python, Raspberry Pi, and an IR light sensor.

An experiment with GE's green bean board: A small node.js app to set a Geospring water heater to use different modes/temperatures according to a timer.

DIY restoration of our 1950 house's exterior: Removing vinyl siding, restoring cedar shingles, trimming and waterproofing windows.


Manually demolished a patio slab that was directing rain runoff into our basement.

Custom LiFePo battery pack for some bicycle lights.


Fund Stew, a data visualization tool for index fund holdings.
Binary tree layout for D3's treemap visualization.
DIY whole house fan for quickly cooling the house on mild evenings without AC.

A dual compost bin.


Portland Things, an aggregator for local blogs and feeds. Built using Python and Tornado's async HTTP client.
Multi-day fare optimizer for Portland public transit, built in JavaScript.


The low-car subreddit, a reddit community I started about reducing car use in favor of more sustainable transportation.
Elf, a tiny computer case made of laser-cut bamboo.
htpicker, a home theater frontend app for Linux machines.


Markovio, a random Super Mario Bros. level generator using a Markov chain algorithm.


mpris-remote, a command-line tool for controlling media players.
Corn, a small music playing daemon.


A nostalgic discussion of strategies for the Super Nintendo version of Sim City.


TinyWM, the tiniest window manager ever.
Whimsy, a highly programmable window manager written in Python.
py-libmpdclient2, a Python library for controlling MPD (Music Player Daemon).


Spook, a window manager written in C++.


Linux Format manazine article about Kahakai, a window manager I was hacking on at the time with a few other people.
pymp, a python music player.
thump, another python music player.


McData, my first attempt at creating open source software. I can't believe Freshmeat still has it. It's a crude blog engine written in PHP. The name is inspired by my employment at McDonald's around this time. I come from humble beginnings.
McPics, a small image gallery written in PHP.

The Junk Drawer

Older website detritus

Nick Welch <> · github