A few years ago I helped build a truck routing system for a logistics company. It was a real project — real trucks, real delivery stops, real time windows, real money. The client spent around $2 million on it. Then the pandemic hit. The project died. And the code sat on my hard drive doing nothing.
Last week I turned it into a web app.

Let me back up.
The system we built is called a VRP — Vehicle Routing Problem. You have a warehouse. You have trucks. You have a list of deliveries, each with a location and a time window (the customer is available between 9am and noon, say). The question is: which truck goes where, in what order, to deliver everything on time while minimizing total drive time? It sounds straightforward. It is not straightforward. It’s actually one of the classic hard problems in operations research, and it gets harder fast as you add trucks and stops.
We built the whole thing in C# using Google OR-Tools, a free solver library from Google that’s specifically designed for this kind of problem. It ran inside a proprietary cloud backend that no longer exists. The client had custom integrations, a database, a dispatch interface — the works. We spent months tuning the parameters. And then the pandemic happened, the company’s clients disappeared, and the whole thing went dark.
The C# code still worked. I just had nowhere to run it.
What do you do with dead code?
Most people delete it. I kept it. Partly out of stubbornness, partly because I knew the model itself was solid — the hard work was the tuning, and that lived in the parameters. Throwing it away would mean throwing away years of calibration.
I’ve been doing something lately that I’ve mentioned before: taking the OR models I’ve built over 20+ years — all locked inside Excel files — and converting them into web apps. The first one was a staff scheduler I built for a Fiverr client who changed his mind. That one was already in Python (PuLP), so the conversion was relatively clean.
The routing model was different. It was in C#. It used a different solver. It had a distance matrix pulled from a third-party API. It had a warm-start feature that fed the previous day’s solution back into the next day’s run. It was, in other words, a real production system — not a prototype.
So I ported it to Python.
Why bother?
Honestly, the same reason I finished the staff scheduler when that client walked away: the problem is interesting and the work was already mostly done. Letting it rot felt wasteful. And the routing problem is one of the more impressive things I’ve worked on — it deserves to run somewhere.
There’s also a practical angle. I’ve been FIRE for a while. I don’t need to sell this to anyone. But I do find it useful to have working demos of what OR models can actually do. Most people who’ve heard of “route optimization” have vague ideas about delivery companies and GPS. Showing them a running web app — one where you can upload a spreadsheet and get back a map with color-coded routes — makes it concrete in a way that explaining algorithms doesn’t.
The app is live at routing.kindoflost.com. You can download the sample workbook, hit Run, and watch it route 10 trucks across 113 stops in Ohio. It takes a minute or two — it’s fetching real drive times from OSRM and running a metaheuristic solver — but it works.
What’s next in this series
This is the first post in a short series. I’m going to walk through how the VRP model actually works, how I ported 1,500 lines of C# to Python without losing my mind, how I wrapped it in Flask and deployed it for $7/month, and what I’ve learned along the way.
If you read the staff scheduler series, same idea. If you didn’t, that’s fine too — this one stands on its own.
The code is on GitHub. The app is live. The pandemic is (mostly) over. And the routing model finally has a place to run.
Things that I use, like, and am affiliated with:
Mint Mobile offers great cell phone service for $15 flat, get $15 off using the link. Get discounted phones with service activation and no contract.
I never spend money before I check Mr Rebates or Rakuten to get cashbacks, rebates, discounts, coupons or cheaper gift cards.
