This went on for about six months.
The modeling team at SCAG kept bringing up the same problem in our coordination meetings. Their dashboard was broken, and they needed it back. These are the people running the housing, traffic, and pollution models that take days to finish, and they couldn't see what any of it was doing. Which server was working, who was on it, whether a model had stalled out hours ago and nobody noticed. They were flying blind on the work that basically is SCAG.
I run those meetings, so I heard it every time. And I agreed with them. The problem was the price. AWS had floated covering the fix with credits, then pulled that right when it counted and quoted around $60,000 instead. So the answer from up top stayed the same. Our CIO kept reminding the team we didn't have the bandwidth or the money approved for it. She wasn't wrong. We didn't.
So it sat. Six months, the same conversation on a loop. Real need, no budget, nothing moving.
At some point I stopped believing those were the only two options. Pay $60K we didn't have, or keep telling people to wait.
So Hien and I took a run at it ourselves, off the clock. I should explain where the confidence came from. I came up through infrastructure, not software development, but at home AI has quietly become part of how I work. I've used it to build real, working things I never could have built on my own. The biggest is RoleScore, a full web platform I designed and built with AI, the kind of thing that used to take a whole team. There's plenty of smaller stuff too, tools and automations that would have been out of reach for someone with my background a few years ago. I wasn't guessing about how capable these tools are. I'd lived it.
What I didn't know yet was whether Copilot could pull this off with us on a real production build, with real infrastructure behind it. The broken dashboard was the perfect place to find out. So we made it a side project. Nothing on anyone's roadmap, no budget request. Our own time, a real problem, and a tool we wanted to put through its paces.
That part felt low-stakes, because it was. The only thing we were spending was our own evenings. The bigger call was further down the road, and I knew it was coming. If this actually worked, I'd be putting infrastructure's name on an application, something outside our lane that we would then own and support in production. That is not nothing. But you don't settle that on night one. You just start.
The first thing we did was the obvious thing. We fixed the old one and got it limping again. But fixing it meant getting under the hood, and once we were in there, we could see how the whole thing was built. It was wrong. Badly set up underneath, the kind of design that keeps falling over no matter how many times you patch it. So we made a second call, and it was the harder one. Tear it down and rebuild it right, from the ground up.
What we built is serverless, and kind of boring in the best way. A small function wakes up every three minutes, finds the modeling servers, and asks each one how it's doing. It pulls that through AWS's own management agent, so there are no passwords sitting around. It writes the snapshot to storage as a plain file, and a static web page reads that file and shows it. Server status, who's logged in, which models are running, which ones have gone stale. The stuff the team had wanted to see for months. Took about two weeks.
The old dashboard looked like it crawled out of the early 2000s. Clunky, hard to read, fighting the company's own branding instead of using it. Since we were rebuilding from scratch anyway, we made it good. The new one is clean and modern. Clear labels, easy to scan, easy on the eyes, and it actually matches how SCAG presents itself. Then we documented all of it. There's a plain FAQ and a "how it works" page built right into the site, so if I move on someday, whoever inherits it isn't stuck reverse-engineering what we did at 2 a.m. They just read it. That part matters to me. If you're going to own something, build it so the next person can actually keep it running. That is the decision people skip, and it's usually the one that bites later.
The part that still makes me laugh is what the $60,000 was actually for. People. That number never had anything to do with servers or licenses. The going rate to have this built for us covered a whole team: a project manager, an architect, a DevOps engineer, designers, front-end developers, the crew a consulting shop puts on a real project. That is what sixty grand buys you, and none of it is hardware. We were two infrastructure guys who don't build software for a living, and we knocked it out in two weeks. The dashboard runs for pennies too. No server sitting on 24/7, the function fires for a few seconds at a time, the storage costs almost nothing. But the number that stuck with me was the people-time. Two of us, plus AI, collapsed a whole consulting team's project into a couple of weeks.
There's a rule every project person knows by heart. Fast, cheap, good, pick two, because you can't have all three. We came in cheaper than the quote, faster than a staffed project, and better than the thing we replaced. All three.
It earns its keep on top of that. One of the main things it watches for is waste, the big modeling servers left awake and idle with no work on them, quietly burning cash by the hour. Nobody could find $60,000 to manage that spend. The thing that finally surfaced it runs for almost free.
Now the AI part, because that is what people actually wanted to know. We aren't developers by trade, and the thing came out clean enough that people figured AI was in the mix. It was, heavily. I won't pretend otherwise, and I wouldn't want to. Two infrastructure guys don't ship a polished production app in two weeks without it. Copilot did real work. It helped us shape the build, work out where the pieces connected, write scaffolding, and it walked us through steps neither of us would have known cold. Take AI out of this and there is no dashboard. Full stop.
What AI didn't do is the part that actually mattered. It didn't notice the need was real and central. It didn't see that pay-or-wait was a false choice. It didn't decide to spend our own evenings on it, or weigh what it meant to put infrastructure's name on an application we'd own. It didn't read the room with the CIO. We made those calls. Copilot helped us execute them faster and better than the two of us could have alone. Both of those things are true at the same time, and that is the whole point.
Once we had something real, before any of it went near production, I walked the CIO through it. She loved it on the spot. "Yes. Finish it." That's the moment it stopped being a nights-and-weekends side project and turned into a real, sanctioned one. The $60,000 stayed in the budget. Modeling finally got their visibility. And infra went from the team that says no to the team that found a way.
That visibility matters more than it sounds, and it's the part I actually care about. SCAG models for the whole region, six counties and 191 cities across Southern California. Transportation, housing, growth, the planning behind how millions of people get around and where things get built. These models run for days at a stretch. When one stalls overnight, or quietly never starts, and nobody notices until morning, that is real time lost on work the region is counting on. Now the team sees it the moment it happens. A model finishes, they shut the server down. One gets stuck, they go fix it. One didn't start, they catch it that hour instead of the next day. That is the reward I keep coming back to. The people doing essential planning work for Southern California move faster now, and a lot less blind, and the work the region depends on keeps flowing.
I think about this one a lot, because of where things are going with AI.
AI made the building cheap. That's real, and it's only getting more true. But if building is cheap, then building something isn't proof of much anymore. Anybody can stand up a working tool now. So what's left? The judgment. Knowing the need was real and not just noise. Seeing that pay-or-wait was a false choice. Choosing to build it on our own time instead of waiting on a budget that was never coming, then bringing it to leadership the moment it was real. Knowing where Copilot's help stopped and ours had to start.
The building, in the end, is the part the AI could carry. What sticks with me is everything around it. Reading the room. Making the call. Being willing to own it if it broke. That part was ours, and I'm not sure AI can do it yet. It's the part I'm proud of.