On legacy systems, web hooks, and building something that outlasted everyone’s expectations — including mine.
There is a particular kind of problem that only exists at the intersection of old systems and new expectations, and it goes something like this: the thing works. It has always worked. It was built by someone who knew exactly what they were doing, in a language that made sense at the time, and it has been running reliably in the background ever since, doing its job, asking nothing of anyone. The problem is that the world moved on and the thing didn’t, and now someone needs to make it look like it belongs in the current decade without breaking the thing that works.
That was my introduction to serious web development.
Login Canada, circa 2007
Around 2007 or 2008 I was working as a marketing coordinator for Login Canada, a book distributor based in Winnipeg that supplies books to retailers all over the country. If you have ever bought a book at a Canadian bookstore, there is a reasonable chance Login Canada had a hand in getting it there. They are good at what they do. They have been doing it for a long time.
Their website at the time reflected this. It worked. It had always worked. It was also, by the standards of 2007, approximately one geological epoch behind.
The back end was Business Basic, a programming language that, by 2007, most of the web development world had either never heard of or was actively trying to forget. The database was a flat text file that regenerated every night. Every night the system would wake up, do its work, and produce a fresh snapshot of the world in plain text. From that text file, the Business Basic system would generate the website. In HTML 1.0.
To be clear about what HTML 1.0 means in 2007: this was not retro. This was not intentional minimalism. This was a system that had been built when that was what websites were, and had been running faithfully ever since, and had simply never been updated because it never needed to be updated to keep doing its actual job.
My job was to make it look like it belonged in the twenty-first century.
Ted Berg and the Art of the Possible
The programmer behind the system was Ted Berg. Ted knew Business Basic the way some people know a language they grew up speaking — fluently, instinctively, with the specific confidence of someone who has never had to think about the grammar because it’s just how thinking works. The system he had built was solid. It ran every night and produced its output and did not complain and did not fail, which is more than can be said for most software.
Ted and I had to figure out how to work together across what was essentially a generational divide in web technology — and we had to do it entirely over phone and email. No shared screen. No video call. No Slack thread where you can paste a code snippet and get an answer in thirty seconds. Just two people describing technical problems to each other in words, which is a discipline that I think made both of us better at what we did. You cannot be vague over the phone. You have to know what you’re talking about well enough to explain it out loud to someone who can’t see what you’re looking at.
He understood the system completely. I understood what the web needed to look like and do. Neither of us could fully do the other’s job, and neither of us needed to. We just needed to find the seam between them.
What we came up with was a system of “web hooks”. Specific, deliberate output points that Ted built into the Business Basic code, places where the nightly regeneration would write out markers that I could then target with HTML 4 and CSS. The underlying system kept doing exactly what it had always done. My layer sat on top of it, latching onto those hooks, and turned the raw output into something that looked and functioned like a modern website.
It was, in retrospect, a surprisingly elegant solution to a genuinely awkward problem. We weren’t rebuilding anything. We weren’t replacing anything. We were extending something carefully, surgically, in a way that didn’t require the existing system to change at all, just to provide a few handholds.
What the Work Actually Was
For me, this project was the first time I had to do all of it myself. Not just the design, not just a piece of the code, but all of it. Organizing the approach, presenting it to stakeholders, writing most of the code, and then putting it into production on a live system that served real customers and real business needs.
There is a difference between doing pieces of a thing and being responsible for the whole thing. I learned that difference on this project. The accountability is different. The thinking is different. You can’t hand off the hard part to someone else because there is no someone else. You figure it out or it doesn’t get done.
I figured it out.
The site went into production. It worked. The nightly regeneration kept running. The hooks kept firing. The CSS kept doing what CSS does, which is mostly what you told it to do plus a few things you didn’t ask for. The customers could find their books. The business kept running.
The Part I Didn’t Expect
I left that job. Years passed. The web kept moving, responsive design, mobile-first, CSS3, JavaScript frameworks, the whole relentless forward march of the industry. I moved with it, building other things, learning other approaches, occasionally looking back at 2007 with the fond bewilderment you feel toward your younger self when they did something that somehow worked.
At some point, I can’t tell you exactly when, I looked up lb.ca again, the way you occasionally check on a place you used to live.
The scaffold is still there. Not in every detail, not unchanged, things get patched, things get added, a system that’s been running for almost twenty years accumulates modifications the way an old house accumulates renovations. But the underlying structure, the approach, the architecture of hooks and layers that Ted and I worked out over a series of phone calls and emails all those years ago — it’s still pretty much what they use.
I don’t know exactly how to feel about that. Proud, mostly. A little amazed. Slightly humbled by the reminder that good solutions to real problems tend to outlast the conditions that produced them.
Ted is retired now, living somewhere considerably warmer than Winnipeg. I hope he knows that the thing he built is still running. I hope someone told him. It deserves to be said.
The text file still regenerates every night. Somewhere in Manitoba, a system written in Business Basic wakes up, does its work, and goes back to sleep. And the web hooks are still there, waiting.
Some things just work.
This was the first project I think of when someone asks me how long I’ve been doing this. The answer is: long enough to have built something that’s still running. That feels like the right kind of answer.