Electrical engineer writing down the hardware, home automation, and software projects I build at home. Mostly implementation notes, failure modes, command lines, and the details I know I’ll need again.
Free OTA TV Anywhere, Using a Box I Already Had
My TV antenna lived behind my TV in the living room. Reception was inconsistent: if someone walked between the antenna and the window, the signal dropped. If I forgot to pull it out and angle it before sitting down, I got nothing. I had an HDHomeRun FLEX DUO from a previous place where I had the antenna setup dialed in. I moved and never got around to setting it up again at the new apartment. The antenna behind the TV was the placeholder that never got fixed. This week I fixed it, and the same day I finished, I used it to watch the FIFA World Cup from an airport lounge and a plane on the way home from a trip, free, with no cable subscription. That felt worth writing up. ...
LaTeX Resume with Auto-Build on GitHub
My resume lives in a git repo. Every time I push, a GitHub Action compiles it to PDF and drops it on a stable URL. No local toolchain needed after the initial setup, no manually uploading PDFs anywhere. Why LaTeX Word docs drift. PDFs exported from Google Docs look fine until they don’t. LaTeX gives me exact control over layout and is just a text file — diffable, versionable, no binary blobs. ...
Self-Hosted Obsidian Sync on a Raspberry Pi with Tailscale
Two spare Pis sitting around. Already running AdGuard, so Pi-hole was off the table. I wanted something actually useful. I’ve been paying $10/month for Obsidian Sync. The vault lives on my hardware anyway — it felt like paying rent on my own stuff. The alternative: run CouchDB on a Pi, point the Self-hosted LiveSync plugin at it, and use Tailscale to make the Pi reachable from anywhere without port forwarding or a public IP. E2E encrypted, zero ongoing cost, fully under my control. ...
How This Blog Is Built and Published
This is how derek.engineer is wired: static Hugo site, PaperMod theme, Netlify deploys, Squarespace DNS, and a local writing workflow that keeps publishing from becoming its own project. The stack Hugo — static site generator, fast builds, zero frontend dependencies PaperMod — clean Hugo theme, installed as a git submodule Netlify — deploys on every push to main, custom domain + SSL handled automatically GitHub — source of truth, all posts are Markdown files in content/posts/ The flow is simple: ...
Reading Build
I recently asked Claude for book recommendations tailored to where I am in my career right now. Build by Tony Fadell came up. I started reading it and was really glad I did. It was written to help founders and executives build companies. The makers inside those companies get just as much from it. What it actually does is give you precise language for things you’ve already experienced but never had words for. Problems you felt but couldn’t name. Org dynamics you survived but couldn’t diagnose. ...
DIY Ambilight Part 2: Capture Working, LEDs Are Next!
The splitter finally showed up. This session was about seeing if the signal chain actually worked end to end — Apple TV → splitter → TV + B101 — and getting at least one real captured frame out of it. No LEDs wired yet, just proving the capture side works and figuring out the layout. Getting the B101 to see the signal First step after wiring everything up was setting the EDID so the B101 knows what kind of signal to advertise to the Apple TV: ...
Migrating derekwelty.com to Hugo + GitHub Actions
derekwelty.com was a Bootstrap 5 single-page site built on the Start Bootstrap Freelancer template. It worked, but it hadn’t been touched in years and updating it required wading through jQuery, a Gulp pipeline, and a bunch of hand-rolled CSS. Time to replace it. The new stack: Hugo with the Congo theme, deployed to GitHub Pages via GitHub Actions. Why Hugo I already run this blog on Hugo + PaperMod via Netlify. The toolchain was familiar, the build times are fast, and Congo gave me a clean profile layout that actually looked like a personal site and not a blog template with the posts removed. ...
Building a DIY Ambilight on a Raspberry Pi 3 with an Auvidea B101
I saw a FancyLEDs sponsorship on YouTube and figured I could build the same thing myself for less, with hardware I already had — including a B101 capture board from a prior project I never finished. Govee makes something similar but it only works with their own app — useless with an Apple TV or anything else plugged into HDMI. I wanted something source-agnostic, fully local, no subscription. This is a working log: capture pipeline is proven, splitter arrives tomorrow, LEDs not yet wired. ...
TRMNL X BYOS: Self-Hosting the Server Before the Device Arrives
I ordered a TRMNL X e-ink display to put on my desk. It’s a 7.5" e-paper panel that polls a server for images and refreshes on a schedule. TRMNL has a cloud service, but I’m not paying a subscription for a display I can host myself — and BYOS (Bring Your Own Server) mode is the whole reason I bought the X model over the cheaper ones. The device hasn’t arrived yet. The server is already running. ...
IKEA Varmblixt as a Home Assistant Status Light
I wanted a passive ambient display that tells me something useful without picking up my phone — weather at a glance during the day, a wind-down mode at night, green at 6:30am if it’s worth cycling to work. The IKEA Varmblixt is $30, Zigbee-native, and pairs directly to ZHA without an IKEA hub. Pairing Not obvious. There’s no reset button. To enter pairing mode, power-cycle the lamp 12 times in rapid succession — plug, unplug, plug, unplug… It flashes white 3–4 times when it’s ready. A smart plug makes this way easier than fumbling with the physical outlet. Source ...