
About
Robert McDowell
I build and repair production software on Linux and Windows: CMS sites, custom apps, servers, and databases. When the same problem keeps biting me at home, I sometimes turn it into an open tool.
Work has case studies. Contact is the form (no public email on this site).
Background
I started with an AAS in Networking in 2004. Help desk and Active Directory paid the bills for a bit; I wanted to build systems, not only clear tickets.
I’ve been building websites professionally since 2006. The next decade was mostly self-taught PHP, Python, SQL, and C# on real projects. In 2013 I went back for a BS in CIS focused on web development (the code side, not design). I finished in 2015 with Objective-C, modern JavaScript, and some formal project management, while working full-time for the same company I’ve been with since 2010.
The catalog since then is messy in a good way: WordPress, Drupal, Magento, Episerver, Concrete CMS; MEAN, Rails, PHP and C# frameworks; Linux and Windows; NGINX and Apache; MySQL, MSSQL, PostgreSQL, MongoDB. A few mobile apps I’d rather forget. Pattern that stuck: keep live systems honest, then modernize when the business can afford the change.
Work I take
Legacy repair and modernization. Fragile C#/.NET or PHP estates. Stabilize first, then move toward headless or Next.js / Astro when that earns its keep.
Servers and databases. OS hygiene, patching, cloud moves, MySQL/MSSQL and friends so environments stay available.
Second opinions. Debt, query bottlenecks, and “what breaks first if we wait another year.”
SEO and AEO. I’ve worked alongside SEO firms on CMS and custom sites, and I’m Google Analytics certified. On builds I care about crawlable markup, sane information architecture, structured data when it helps, and making pages readable for search and answer engines (AEO) without stuffing keywords. This site’s llms.txt, schema, and docs hub are part of that habit.
Products when the product is the point. Monitoring, prompt tooling, IoT ingest. I’d rather ship the thing than another slide deck.
Freelance work includes server setup and Concrete CMS for stjohnnorfolk.org (still live), with PCI/DSS help when they need it. Packages and marketplace add-ons (Page List Map, Date Counter, more coming) are listed under Concrete CMS. WordPress plugins including Inkbound (serialized fiction), Volunteer Impact Tracker, Oral History Archive (interview finding aids), and Public Shop Floor (made-to-order WooCommerce) are listed under WordPress. Older ecommerce and cinema pieces are also linked from Work.
How jobs usually go
Inherited stacks almost never need a full rewrite on day one. First wins are uptime, backups, query performance, and patching. Fashionable front ends come later.
When we do modernize, I try to keep years of content and business logic intact and put a maintainable edge in front. Docs and operator notes matter; Castcut and ProbeHarbor both reflect that habit.
Open products
Castcut is an MIT-licensed Next.js app for local AI character filmmaking with ComfyUI: Cast → Look → Outfit → Day → Cut film. Castcut 2.9 has talking clips with sound and room tone, Cast voices (auditioned or your own recording), narration, an original score for each cut, Cast homes that keep marks, props, and a wardrobe, widescreen cuts with close-ups, review links, and export to an editor’s timeline, alongside identity lock, the pose editor, optional Castcut nodes, Heal & ready, Mobile Studio, desktop and Docker. Docs on this domain; operator reference on GitHub Pages; a live instance runs in my homelab.
Prompt Studio is where Castcut started. The classic prompt, image, video, and audio tools now ship as their own app, built on the shared prompt-studio-core package, so Castcut can stay focused on films.
ProbeHarbor (formerly ThermalTrace) is open monitoring at probeharbor.dev for garages, workshops, and similar spaces. ESP32/Pico (and other) ingest with a browser flasher for ESP32 boards, freeze, heat, and flood alerts, a public pipe-freeze forecast with free freeze-night emails, history, household sharing, companion apps (Android, iOS, Desktop, Bay Buddy), integrations (Matter, Home Assistant, Node-RED, Influx), and a claim puck for field installs. Built around hardware people already own.
Shelf is a self-hosted personal library on .NET 10 and Blazor: the catalog, reading log, quotes, and loans for a household, with a full-screen page-turning e-book reader, an audiobook player, Kobo and KOReader sync, imports from Calibre, Goodreads, and Audiobookshelf, books found and fetched the way Sonarr fetches shows, and shelves read from a photo of the spines. One Docker container, AGPL-licensed, with documentation on GitHub Pages.
All of them are running software, not mockups.
Outside the day job
Homelab services on this domain (media and library stuff) keep me honest about reverse proxies and TLS. Side projects like the Wallhaven Plasma 6 wallpaper plugin are the same idea: ship something people can install.
Quick facts
- Professional web work since 2006 (networking AAS 2004; BS CIS 2015).
- Same day-job employer since 2010; freelance and open products on the side.
- CMS and custom stacks from WordPress/Drupal/Magento/Concrete through PHP/C# to Next.js and Astro.
- Google Analytics certified; past work with SEO companies on site implementations.
- Live products: Castcut docs here; ProbeHarbor at probeharbor.dev; Shelf, PrintBridge, and Prompt Studio on GitHub.
Common questions
What kind of work do you take on?
Legacy repair and modernization, Linux/Windows server maintenance, MySQL/MSSQL administration, technical audits, SEO/AEO-minded site work (I’m Google Analytics certified and have worked with SEO companies), and product work like Castcut or ProbeHarbor when that fits.
Do you do SEO as a standalone service?
I don’t run a pure SEO agency. I implement and advise from the engineering side: structure, performance, analytics, schema, and content that search and answer engines can use. Happy to work with your SEO people or pick up the technical pieces.
Do you only do greenfield builds?
No. Most useful work starts with what’s already running. Greenfield only when the old stack really can’t carry another year.
What is Castcut?
Local character films with ComfyUI — Cast → Look → Outfit → Day → Cut film, now with talking clips, a score, and re-cuts in any shape, and export to an editor (Castcut 2.9). It began as Prompt Studio; the classic tools now ship separately as Prompt Studio. Docs: /castcut.
What is ProbeHarbor?
Garage and workshop freeze, heat, and flood monitoring with ESP32/Pico ingest, alerts, a pipe-freeze forecast, companion apps, and Matter/HA/Node-RED hooks. It was called ThermalTrace until October 2026. Write-up: /work/probeharbor. Product: probeharbor.dev.
What is Shelf?
A self-hosted library for a household’s books, e-books, and audiobooks, with lending between readers. Write-up: /work/shelf. Docs: doodersrage.github.io/shelf. Source: GitHub.
Where should I start?
Use the contact form. Include stack, constraints, timeline, and what “done” looks like. I usually reply within a couple of days.
LinkedIn · GitHub · Work · Contact
Page updated October 2026.