Seven ESP32 boards, a pile of AliExpress sensors, and ESPHome on Unraid. Wiring up every room for $72 with no cloud dependencies.
// andrew le
I build things
and write about
what I learn.
I like self-hosting, tinkering with hardware, and figuring out how things work. Most of what's here started as a problem I wanted to solve for myself.
About
I'm Andrew. BS in Electrical Engineering from Cal State Long Beach. I work in industrial automation in Orange County. Outside of work I run a small homelab and write about the things I build.
I got into self-hosting because I wanted to understand the full stack, not just the parts I use at work. One NAS turned into four machines, a bunch of Docker containers, and more blog posts than I expected to write.
Writing
Notes and deep dives from running a homelab.
A deep dive into Unix philosophy, sysfs, systemd, and udev. Why writing strings into files to control hardware isn't a hack, it's the whole point.
Fine-tune 70B models, real-time video style transfer, voice cloning in 3 seconds, autonomous browser agents. All running on a single i9-14900K with dual GPUs.
Every Ollama model I could throw at a 4090 + 4070, benchmarked. Tier lists, speed breakdowns, and which models actually matter for daily use.
How I got a second GPU running through an M.2 slot with DIP switch hacks, pin 9 wire snips, and a GPU sitting on cardboard behind my PC.
8x PCIe bandwidth improvement, 289% speed boost on split models, and 20W less idle power. All from a $30 M.2 adapter and some DIP switch detective work.
61W vs 68W. One is a 14nm overclocked chip with an idle 1080 Ti. The other has four 7200 RPM platters fighting friction. Different waste, same bill.
Taking a former gaming PC from audible and power-hungry to silent and sipping 61W. Headless NVIDIA driver, iGPU display, and aggressive service cleanup.
Three Ollama instances on different hardware, all feeding into one chat interface. How Open WebUI merges model lists and handles sleeping GPUs.
Factory thermal paste with 40% die contact, ACPI fan controls that were completely fake, and the BIOS key combo nobody tells you about.
39 MCP tools, 5838 tests, RAG over 11,900 Rockwell docs. The only tool that generates complete Allen-Bradley PLC projects from markdown specs. Nothing else like it exists.
Turning Claude Code session logs into a pixel art Twitch-style stream with AI-generated viewer chat, esports narration, and a Master Control Room dashboard.
Exploiting the RTX 4090's two NVENC chips for parallel AV1/HEVC batch encoding. TUI dashboard, researched encoding flags, and auto-cleanup for files that got bigger.
Frame capture from mpv via IPC, sent to vision LLMs for analysis. A floating PyQt6 panel that lets you ask questions about what you're watching.
19 Dell laptops with NVDA screen readers, Vietnamese TTS, and Tailscale remote fleet management. Deploying to orphanages in April 2026.
Paste an Amazon URL, get a fully populated Homebox inventory item. Product scraping, manual finding, and vision AI for identifying items.
OFDMA tuning, country-code TX power boost, AdGuard DNS, and 6GHz 160MHz channels hitting 1814 Mbps. Plus the neighbor interference analysis.
Auditing irreplaceable photos, music, and documents across a homelab NAS. Three-layer preservation model, format longevity assessment, and 10TB of organizational debt.
FireWire for bit-perfect MiniDV, USB capture for VHS. The gear, the workflow, and why you should do this before the oxide flakes off.
Projects
Three Ollama nodes (RTX 4090 + GTX 1080 Ti + Apple M3) feeding into Open WebUI. 37+ models benchmarked, 70B Q2 models running at 25 tok/s via dual-GPU split. K43SG adapter delivering 8x PCIe bandwidth improvement to the 4070.
Programmatic PLC project generator for Allen-Bradley Micro800/ControlLogix. 39 MCP tools, 5838 tests, reverse-engineered file formats. Nothing else like it exists.
10 workflows handling infrastructure monitoring, Docker update checks, disk space alerts, daily digest emails, Roon library changes, and Paperless document webhooks. Real-time push via ntfy.sh, scheduled digests via Gmail SMTP.
Took a former Windows gaming PC from 120W idle to 61W - a 50% reduction with zero performance loss. Headless NVIDIA driver, iGPU display, fan curve tuning, and aggressive service cleanup. The 1080 Ti still has full CUDA compute on demand.
Paperless-ngx with automated processing webhooks. Incoming documents get OCR'd, tagged, and trigger push notifications via n8n workflows to ntfy.sh.
Infrastructure
Four machines connected over Tailscale. About 50TB of storage, mostly photos and music.
- AndrewServer // Unraid NAS, 37 Docker containers, always on
- 14900K Workstation // Dual-GPU AI inference and gaming, sleeps when idle
- 8700K Server // Ubuntu, always-on compute, optimized down to 61W
- MacBook Air M3 // Mobile dev, overflow Ollama node
3 data disks + 1 parity + 2 NVMe pools
50TB usable, ~56% full
Services
The highlights. There are about 37 containers total, but these are the ones I actually use every day.