meklab.net

Salt Lake City · CS, University of Utah · 2028

Michael Ekstrom

Software DeveloperApollo EnthusiastMusician

I want to know why things work, and I'm even more curious about why they break. So I run a small datacenter in my basement to learn how the big ones do it, build tools for family members who will never see a terminal, and hope to spend my career making the software people trust with their lives a little safer.

  1. About meV06 N01
  2. ProjectsV06 N02
  3. HomelabV06 N03
  4. RésuméV06 N04
  5. ContactV06 N05

Apollo Guidance Computer DSKYApollo's flight software is a big part of why I want to write my own. This one is also the site's menu: pick a section and it keys itself in, or press VERB 0 6, NOUN 0 2, ENTR.

UPLINK ACTY TEMP NO ATT GIMBAL LOCK STBY PROG KEY REL RESTART OPR ERR TRACKER ALT VEL
COMP
ACTY
PROG
Verb 06 (display) · Noun 01 (About me) VERB NOUN
R1: Class of 2028
R2: 14 months as an intern
R3: 7 public repositories

Verb 06 (display), noun 01 (About me). R1: Class of 2028 · R2: 14 months as an intern · R3: 7 public repositories

About the DSKY

The DSKY (display and keyboard) was how Apollo crews talked to the guidance computer. They keyed a two-digit verb, the action, and a two-digit noun, the data, then pressed ENTR. Verb 06 really did mean "display in decimal"; the nouns here are made up for this site. The lights that come on when the page loads are V35, the lamp test crews keyed in to check every lamp and digit. On the real DSKY it ran for five seconds; here, any key cuts it short. If you want the clock, try V16 N36.

V06 N01

About me

Most recently I spent fourteen months at SimpleCitizen. I was hired as an intern, and by the end I owned the company's internal AI search tool. I wrote the first requirements document, built it, and shipped it to production. The title on my paperwork still said intern.

At home I run meklab, a Kubernetes cluster that I break more often than I'd like to admit. Every outage teaches me something a textbook didn't. The things I build on it have real users: a grandfather with a shelf of DVDs, a box of handwritten recipe cards, a family garden. The best compliment I've gotten is that none of it feels like it runs on a server in someone's basement. It does, of course.

  • Most interested these days in flight software, aviation safety, and applied AI
  • This semester it's algorithms and computer networks
  • Away from the keyboard I've played cello and piano since 2005, sing in a choir, and fly a drone
Michael Ekstrom

V06 N02

Selected work

All 11 projects
  1. Live 2025
    The server rack in the basement today, door open: the switch at the top, the servers on shelves below, and the console screen and keyboard on an arm at its side.

    Meklab Home Cluster

    A Kubernetes cluster in my house, run like production so I can learn how production fails.

    k3s · Flux · Vault · Longhorn

  2. In progress 2026
    The OpenClef library in grid view: a search bar, filters for composer, key and difficulty, and one piece so far, shown by its first page.

    OpenClef Sheet Music Library

    An open-source, self-hosted sheet music library for performers.

    Python · FastAPI · PostgreSQL · SQLAlchemy

  3. Live 2026
    The DVD archiver's job list: each disc with its state, its type, and the folder it was filed into.

    One-Button DVD Archiver

    A 2009 MacBook Pro, rebuilt so a grandfather can archive his own DVD shelf.

    Python · FastAPI · htmx · SQLite

  4. In progress 2026
    The vinyl inventory: the next accession number, a record search, and sides waiting to be recaptured or reviewed.

    Vinyl Record Digitizer

    An inherited record collection, digitized one side at a time.

    Python · FastAPI · ffmpeg · Chromaprint

  5. Live 2026
    The family recipe app, a grid of recipe cards with photos and tags.

    Recipe Card Digitizer

    A grandmother's handwritten recipe cards, read by OCR and served from a family recipe app.

    Python · FastAPI · Ollama · Mealie

  6. Live 2026
    A Scribe thread in Slack: it acknowledges a link with the times the summary and audio will be ready, then posts the summary.

    Scribe Summary Bot

    Send a link, PDF, or image to Slack; get a summary, the full note, and a narrated version back in thread.

    Python · Slack API · Ollama · Kokoro TTS

V06 N03

The homelab

Tour the homelab

Six servers in a basement rack. Most of the projects on this site live here.

Hardware
6Proxmox hosts
60CPU cores
181 GBmemory
Cluster
142running pods
104workloads in 26 namespaces
35HTTPS services
Work
315tickets completed
35tickets in progress
852merged merge requests
The server rack in the basement, door open: the switch at the top, the servers on shelves below, and the console screen and keyboard on an arm at its side.

V06 N04

Résumé

Fourteen months owning an internal AI search tool at SimpleCitizen, four and a half years of campus passenger service, two years leading volunteers in Romania, and the projects on this site.

Open the résumé

V06 N05

Contact