Tor Loch Senior Software Engineer · full stack
I build the software that builds things.
Memphis, TN · on-site, hybrid or remote (US)

20+ years building the applications a business runs on: a service floor's operations platform, a 22-brand .NET platform, analytics and applied AI. C#/.NET, PHP, SQL and TypeScript, from the user's workflow to the release and the 2 a.m. fix.
- 70+ tools on one operations platform
- 22 brands on one .NET template
- 24× faster on a measured report request
Built and owned.
Three systems people use at work, each one mine from the first question to the last fix.
2016 – 2022 · Manufacturing operations
The software a service floor ran on
Production tracking, repair and returns, inventory, imaging stations that program firmware identity, labels and reporting. Manual steps became automation: imaging went from one unit configuration an hour on hand-made USB drives to 12 to 24 an hour, dozens at once. By May 2022 it was one PHP platform of 70+ tools with five back ends; its record counters set upper bounds of about 805,000 order status entries and 61,000 imaging sign-ins.
explore the operations platform →2022 – 2026 · .NET web platform
One template for twenty-two brands
The developer a home-services company's marketing sites depended on: 20+ migrations from WordPress and Kentico to Umbraco, Umbraco 13 to 17, sites moved into Azure, then one .NET template with 16 sections (first released November 2025) and a deploy path to two hosted projects.
explore the CMS platform →2026 · Analytics and applied AI
Faster reports, with the numbers checked
An analytics platform in production, built to replace an estate of 822 legacy reports. One fix swapped a count over 5.26 million rows for a maintained summary: 1.549 s to 0.064 s, equal results on 220 of 220 date ranges; six more slow pages went from 7–17 s to 0.4 s or less, with 0 differences in 461 checks.
explore analytics and applied AI →
Building right now.
The newest pages from the lab. Each one states the problem, the plan and what shipped, and a new one lands whenever the work does.
Oct 2026 · Web platforms & CMS
Ten years of interfaces, five frameworks, redrawn
New screens for archived tools, drawn in the frameworks of their decade: Metronic on Bootstrap 3 and 4, MDB, Bootstrap 5, Metronic 8. Placeholder data, not screenshots.
production · read the page →Oct 2026 · Building with AI agents
Teaching the crew to print: one skill, five jobs
A fortnight of PETG parts became one skill for every agent harness: design from the load path, preview early, verify the STL, send only what was asked, keep what works.
daily use · read the page →Oct 2026 · Building with AI agents
An agent that remembers
My chief-of-staff agent keeps its memory in a versioned vault that six agent harnesses share. It reads its notes first, works from evidence and checkpoints each change.
daily use · read the page →Oct 2026 · Apps
A grocery list that works the store by aisle
A standalone shared shopping list in PHP and htmx: plan at home, then walk the store in aisle order with live product search from the grocer's API.
daily use · read the page →Oct 2026 · Apps
HyperCaps: Caps Lock as a hyper key
A cross-platform window manager, launcher and clipboard history that lives under Caps Lock, built in Rust for macOS, Windows and Linux.
daily use · read the page →Oct 2026 · Apps
One search across the media library, and a contract for grabbers
One mobile-first search over the lab's media library, then a shared contract so any new source is a small service with the same seven routes.
production · read the page →
How I ship.
I still enjoy programming. I write the spec, make the design calls and own the release; a crew of AI coding agents works under tests and a separate reviewer, and multiplies what I can ship. In the lab it runs as a software factory: a hyper key for the keyboard, a shared budget, a grocery app that applies the coupons, a camera on the 3D printer.
- Users first: I stand at the bench and watch where the technician's eyes go before I draw a screen.
- Own it end to end: the problem, the data model, the front end, the deploy, the monitoring and the 2 a.m. fix.
- Spec first: my features start as a written spec and a task plan, and a prototype when a constraint needs measuring.
- Review: a separate reviewer before release, a model from another vendor on big releases, and the release decision is mine.
- Evals, not vibes: on a text-to-SQL chat I'm building in the lab, an execution-scored eval showed the prompt was the bigger problem: one model scored 5 of 12 through it and 9 of 12 with a neutral prompt. I removed a hidden date filter and swapped 139 fixed examples for the 12 closest, cutting the prompt from about 22,000 to 9,700 tokens.
- Tests: never weaken a test to pass.
- Guardrails: Semgrep and Gitleaks scan each file Claude Code writes; CI pipelines run their own checks.
- Agents on live systems: MCP connections on test and development tiers only, a written playbook (audit first, drafts, batches of 50) and my check between batches. The playbook is instructions; the test-and-development connection is the hard boundary.
- Virtual everything: vSphere benches on the service floor; Proxmox guests and Docker containers in the lab, with scheduled backups and versioned configuration. After a backup failed silently, I added mount checks and alerts.
- Frontier and local: frontier models do the building and the reviewing; open models run on the lab's own hardware, are tested against them, and take over wherever they earn it.
Principles: Spec first, then code. The best part is no part. Automate or perish. The best model for the job: frontier for the build, local wherever it earns it.
Six months of commits
7,866 commits · 40 repositories · by me and my agents
Activity snapshot, April 13 to October 13, 2026, across the 40 repositories included; duplicate copies and automated vault-sync commits left out. Last updated
The track record.
I started programming with tools that cut call times in call centers. I pick up new tools by putting them to work. All of it comes from 25+ years of curiosity: learning, building and taking things apart to see how they work. I have been the freelancer, the agency developer and the in-house developer, and most often the one developer a whole operation depended on. I have managed projects, production and people, and worked with outside agencies in nearly every role, from SEO manager to backend developer.

- 2026 — nowSenior Software EngineerAn analytics platform built to replace 822 legacy reports and a browser recording studio (release gate: 1,332 tests passed, 0 failed). Education company.
- 2022 — 2026Senior Web DeveloperThe developer behind a 22-brand customer-facing .NET platform: 20+ CMS migrations, Umbraco 13 → 17, sites into Azure, CI/CD from one repository to two hosted CMS projects, Cloudflare DNS and HTTPS for 400+ domains; a shared template that took brand migrations from months to days. Planned my own hand-off: recruited my replacements and moved design and email work to the teams that would own it. Home-services company.
- 2016 — 2022Service Operations Manager / Application DeveloperExtended the operations platform I had started, updated its PHP stack and built the shop-floor imaging application: production tracking, repair and RMA, inventory, imaging stations, labels, reporting, APIs. Back after the agency years, 12 years there in all; my earlier tools were still in use. Hardware manufacturer.
- 2013 — 2016Digital Services DeveloperCustomer-facing web for health plans and insurers: landing pages, email and integrations, built from creative decks, tested in BrowserStack and Litmus. Agency.
- 2007 — 2013Level III Support Specialist / Application DeveloperStarted the internal platform the service operation ran on: the support knowledge base and imaging system; legacy ASP.NET tooling ported to PHP. Hardware manufacturer.
Skills: C# and .NET · PHP · SQL Server, MariaDB and MySQL, Oracle, SQLite · TypeScript, React and Lit · Python · REST APIs · Docker, Proxmox and VMware · Azure, AWS and Terraform · CI/CD, testing and monitoring · applied AI: text-to-SQL evals, MCP, coding agents · PostgreSQL for self-hosted services
Certifications: CompTIA A+ and Network+ · Red Hat RHCE (not current) · Microsoft Certified Professional
The lab.
Where I build, and where a tool gets proven before it goes near a user. The lab's log holds most of the major projects since 2013, each with the problem, the plan and what shipped. The experiments that never saw daylight stay in the lab.
- The crew: Claude Code, Codex, OpenCode and local models share one memory vault. A voice hub on the Claude Agent SDK lets me talk to them.
- Local models: open models for code, speech, image and video on my own hardware, served with vLLM, Ollama and MLX, with ComfyUI for the pictures.
- Characters: ten AI personas with voices and lip-sync video, a living portrait, and one scene taken from illustration to a realistic take, each written up with what it took.
- The factory: bespoke software for everyday problems: HyperCaps, the shared budget, and a Kroger app that applies coupons, takes the shopping list by voice and feeds the budget.
- The workshop: a camera app for the 3D printer in the next room, and a skill that taught the crew to design, check and print PETG parts.
- The build log: most of the major projects since 2013, from a service floor's tools to a multi-brand web platform to the lab itself, with the problem, the plan and how it went.
- Up next: game development. Posts start soon.
06
Need it built,
and built right?
I'm looking for senior application and full-stack roles where the software runs a factory, a fleet or a whole operation. Based in Memphis, TN: on-site, hybrid or remote across the US. Tell me about the role, the team and the problem, or just say hello.