Meddling since 1989 · still going

I build the software nobody asked for. Correctly.

Meddling Idiot Software is a one-person shop running on stubbornness, regulatory footnotes, and a congenital inability to leave a solved problem alone.

// some of these I've written from scratch more than once. on purpose. for fun.

Meddling Idiot Software logo
37
years writing software (since 1989)
same engine, rewritten from scratch
5
projects worth showing
1,869
tests passing
The idiot in question

So who's meddling, exactly?

Sole proprietor, principal engineer and entire staff. The org chart fits on one line.

Portrait of the Meddling Idiot
The Meddling Idiot, c. 2026.
Oil on overconfidence. Artist unknown (and, one assumes, relieved).

Programming is the day job, the hobby, and — let's be honest — most of the personality. I write code because I genuinely enjoy it: the puzzle, the fight, the moment a hard problem finally gives.

I've been at it since 1989 — long enough to have shipped products that no longer run on hardware you can no longer buy. When the workday ends, I don't really stop; I just switch to the problems I want to be solving.

Case in point: in the 90s I built the Hours-of-Service rules engine for RapidLog, one of the first electronic logbooks for truck drivers. In the 2000s I built it again for Logbook.com. Then — recently, for nobody, for free — I built it a third time, because it was still bugging me.

That's the whole shtick: find a hard problem, solve it properly, then solve it again, better, long after any reasonable person would have stopped. The "Idiot" part is affectionate. Mostly.

— sole proprietor, principal engineer & entire staff
How I work

A short manifesto, for a company that doesn't strictly need one.

Five rules. There's no one here to enforce them, which is exactly why they're written down.

  1. 01

    Make it easy to use.

    The software should do the hard part so the person doesn't have to. If a user has to read a manual to do the obvious thing, the obvious thing was built wrong.

  2. 02

    Keep it simple, stupid.

    The clever solution and the simple solution are rarely the same one. I ship the simple one. The clever one I keep in a drawer to feel smug about.

  3. 03

    A small learning curve is okay.

    Powerful tools earn a few minutes of your attention. I won't dumb it into uselessness — but you should be productive on day one, not week three.

  4. 04

    Don't repeat yourself.

    Every fact lives in exactly one place in the code. Copy-paste is a loan against your future self, and the interest is brutal.

  5. 05

    I live for continuous delivery.

    Small changes, shipped often, beat a big-bang release every single time. Done and improving beats perfect and theoretical — so the work is never really finished, and I wouldn't have it any other way.

/* always shipping */

The evidence

Stuff I made instead of relaxing.

Five projects, one stubborn developer, zero meetings about any of it.

Trip + hours · Windows · Web · iOS & Android soon

HOS Planner

Plan the trip and your hours before you start the engine.

Map a point-to-point route, mark your stops, then drag duty-status markers onto a visual timeline and watch violation bands appear the instant you cross the 11-hour, 14-hour, 8-hour, or 60/70-hour limits. Route overlay, fuel-stop search, sleeper-berth split detection — the works. This is the rules engine I've now written three times. It's the best of the three.

Blazor Avalonia hand-coded CFR 395 engine
See HOS Planner Open in browser Windows installer available
HOS Planner showing a route map and duty-status timeline
Greenlight app window listing recent CI/CD builds with green and red status squares
Desktop · Windows system tray

Greenlight

A quiet little status lamp for your CI/CD pipeline.

Sits in the tray and tells you whether the build is green, amber, or red with a glance. No dashboard, no noise, no 200 tabs — just a lamp that changes color and, optionally, a custom audio cue for each state so the whole office knows who broke main without anybody checking email.

Avalonia CI/CD status system tray Web Audio
Desktop · For teachers

PixelProctor

Author, print, scan, and grade paper assessments.

An assessment studio for teachers: design pixel-precise printable forms, generate PDFs and OCR/OMR templates, then batch-scan the completed sheets and grade them automatically. Powered by my own recognition toolkit, because of course it is.

Avalonia EF Core + SQLite SkiaSharp ML.NET
PixelProctor assessment studio interface
StoryTeller audiobook shelf listing books with covers, progress bars, and a now-playing bar
Desktop · Audiobook player

StoryTeller

Your audiobook shelf, exactly where you left it.

Point it at a folder of audiobooks and it builds a shelf: covers, authors, per-listener progress, and a resume button that actually resumes. Multiple people can share the same library without stepping on each other's place in the book. No account, no subscription, no cloud — just your files and a play button.

Avalonia per-listener progress local library
See StoryTeller Windows installer available
Toolkit · .NET library

MeddlingIdiot.Icr

The recognition engine, available on its own.

The OCR/OMR toolkit behind PixelProctor's scanning: template-driven form reading, registration-mark alignment, ICR text and OMR mark detection, batch folder automation. Pull it into your own .NET project and point it at a stack of scanned sheets.

ML.NET / Encog ImageSharp template-driven OMR

// yes, there's a usage guide. nobody asked for that either.

icr.recognize(sheet_0421.png)
1
2
3
ICR field A7B-04
▸ parsed
{
  q1: "B",
  q2: "C",
  q3: "D",
  id: "A7B-04",
  conf: 0.991
}
The toolbox

Things I reach for, and why.

One language does most of the work. Everything else earns its place.

C# / .NET
The whole shop runs on it. One language, every platform, no apologies.
JetBrains Rider
Where the code actually gets written. Refactors I trust, and it never nags me to log in.
Avalonia
Cross-platform desktop XAML. Greenlight, PixelProctor, and StoryTeller live here.
Obsidian
Where the thinking happens before the code does. Plain Markdown, on my disk, mine forever.
GitHub
Version control and the closest thing this one-person shop has to a coworker.
ML.NET
The brains behind the OCR/OMR recognition, without leaving C#.
.NET MAUI
How the mobile builds happen. (Yes, the "coming soon" ones.)
Listary
Hit a key, type three letters, open the thing. My hands rarely have to find the mouse.
OneCommander
A dual-pane file manager that treats power users like adults. Windows Explorer could never.

// notably absent: a cloud bill, a "platform team," and seventeen JavaScript frameworks.

Honest answers

Questions you might reasonably have.

Answered with the candor of a company that has no marketing department to object.

Is "Meddling Idiot" the actual company name? +

It is. Meddling Idiot Software, LLC — registered, taxed, the whole bit. The name is a promise: I will meddle with a problem long past the point of good sense, and feel slightly foolish about it the entire time.

Do you take freelance or contract work? +

Sometimes, for the right problem. If you've got something gnarly — a rules engine, a recognition pipeline, a desktop app that has to be correct rather than merely shippable — get in touch. If you want another generic CRUD app, we both deserve better.

Why build things that already exist? +

Because the existing versions got the edge cases wrong, stopped being maintained, or annoyed me personally. "It already exists" and "it exists and is good" are very different claims.

Where does my data go? +

Nowhere. It stays on your device. No account, no server, no analytics, no cloud sync. I don't want your data — I have enough of my own problems.

Are the rules and recognition actually correct? +

The HOS engine has been written by the same person three times and has, on occasion, out-argued a DOT officer about that officer's own regulation. That said: I'm a developer, not your compliance attorney — verify anything that actually matters against the current regulation or a qualified professional. But the engine itself? It's probably fine.

Who works here? +

Me. That's the org chart. Hello.

Get in touch

Found a problem worth meddling with?

A bug report, a freelance inquiry, or a strong opinion about CFR Part 395 — I read everything myself, because there's no one else to read it.

// no contact forms. no newsletter. no "book a demo." just an inbox and a person.

An unhandled error has occurred. Reload 🗙

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.