Let’s start with the obvious: building an AI company was never on my bingo card. I didn’t grow up thinking, “One day, I’ll use Python to disrupt public service workflows and build municipal software so elegant it makes the DMV weep.” No. I wanted to be a writer and a musician. A sarcastic, caffeinated word nerd with a penchant for Ghostbusters and obscure horror movie references and an allergy to mediocrity.
And yet—here we are. Me, the reluctant co-parent of Madison AI, and this software that now does things like auto-write staff reports and OCR legislative history while I’m still trying to convince Barley not to eat another sock.
From ‘Blogging on the Porch’ to ‘Coding Through the Apocalypse’
Back in the day (read: Facebook circa 2012), my writing was a mix of mock philosophy and nerd rage: “Denting the universe, one head butt at a time.” “Life isn’t about accomplishing something great anymore. Now, it’s about making your shitty, mediocre accomplishments look good on Facebook.” And yes, I once declared “After all these years, the one true love I’ve had? Caffeine. You’ve always been there for me.”
That’s who I was: a word guy with a chip on his shoulder and a keyboard in his lap. And for a while, that was enough. But code came calling. First as a side hustle, then as a job, and finally as a mission wrapped in JavaScript, zip files, and civic guilt. Because somewhere along the way, I realized that governments—actual human beings in municipal buildings—were stuck doing the same boring crap I was trying to automate out of existence.
Madison AI Was Born Out of Frustration (and Maybe a Little Spite)
To be clear, the idea wasn’t mine. It came from Dave Solaro, a guy whose title (Assistant County Manager) sounds like he should be buying traffic cones but who is actually more like a policy rebel in a Patagonia vest. He and Erica Olsen (CEO of OnStrategy and cosmic force of nature) looked at government workflows and said, “Hey, what if we made these suck less?”
My job was to make that happen. So I did what any reasonable person does when confronted with miles of government paperwork: I wrote a bot.
def extract_legislative_data(url):
driver = setup_driver()
driver.get(url)
# click all the things, pray to the JavaScript gods
for button in driver.find_elements(By.CLASS_NAME, "expand-button"):
try:
button.click()
except:
pass # it's fine, everything is fine
This code—and I use that term generously—was the beginning of Madison. It scraped legislative records, downloaded PDFs, and basically did the digital equivalent of breaking into a filing cabinet and yelling “FOUND IT!”
It Wasn’t Just About Saving Time. It Was About Saving People
I watched staff engineers—literal engineers—spend days copy-pasting data into staff reports. This is like asking Shakespeare to proofread your spam folder. And worse, it was expected. I thought, maybe for once, AI could be the answer, not the punchline.
So we trained models, built interfaces, parsed public record systems so fragile they made Windows 95 look like NASA. And along the way, something wild happened: I started writing again. Not just writing code, but using my actual voice. Turns out, feeding a language model thousands of government documents teaches you two things: 1) the depths of human bureaucracy, and 2) that you miss being human.
Relearning Voice Through a Machine
Once, I wrote a blog post titled “My Voice,” which opened with me mumbling through self-doubt and ended with a line about a golem lurking in the shadows of my brain. If that’s not peak Todd, I don’t know what is.
That post was about finding clarity through noise. Now, I do that with AI prompts. It’s the same thing, just different syntax:
{
"role": "assistant",
"content": "Here is a draft municipal staff report based on your request."
}
But don’t let the JSON fool you. Underneath the automation is a story about trust. About giving humans the gift of time. About letting the experts do the expert things instead of formatting tables in Microsoft Word while quietly questioning their life choices.
“You’re Only as Old as the Sounds You Make Getting Out of Bed”
That’s what I posted on Facebook once. And boy, does that line hit different when you’ve pulled an all-nighter debugging a memory leak in a document parser. Or when Smidge starts barking at 4:00 AM because he suspects the neighbor’s cat is a witch.
Madison AI didn’t just test my technical chops—it brought me face-to-face with my own assumptions. That government would never change. That people didn’t care about efficiency. That I’d never really write again. Turns out, I was wrong on all counts. Especially the last one.
The Irony Is Delicious
I built something that lets other people do their jobs so they can go home on time. I built it while forgetting to go home on time. But every time I open a document and see it populate automatically—like some magical bureaucratic sorcery—I remember: this is what writing feels like. It’s just in a different language.
And yeah, I’m still sarcastic. I still refer to legislative histories as “chronological proof that policy meetings exist to test human endurance.” I still teach AI to be snarky in a polite, HR-compliant way. And I still write weird stuff on social media like “Snarkeling: when you’re being rude underwater.”
But I’m Also Back To Being Me
The version of me that builds tools. That tells stories. That spends hours tinkering with text just to make someone laugh—or automate a planning report. Sometimes both.
So no, Madison AI didn’t just make government more efficient. It reminded me that code and writing aren’t opposites. They’re just dialects of the same language. One meant for machines. The other meant for people. And the real magic happens when you remember how to speak both fluently.
Even if you’re still working on teaching your dogs the difference between weekends and weekdays.
Thanks, Madison. And thanks, caffeine. You’ve always been there for me.
Leave A Comment