<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Stagecoach on words on sand</title><link>https://drone-ah.com/tags/stagecoach/</link><description>Recent content in Stagecoach on words on sand</description><generator>Hugo</generator><language>en</language><lastBuildDate>Tue, 14 Apr 2026 20:57:40 +0100</lastBuildDate><atom:link href="https://drone-ah.com/tags/stagecoach/index.xml" rel="self" type="application/rss+xml"/><item><title>I Chose to Keep Going</title><link>https://drone-ah.com/2026/04/14/i-chose-to-keep-going/</link><pubDate>Tue, 14 Apr 2026 20:52:10 +0100</pubDate><guid>https://drone-ah.com/2026/04/14/i-chose-to-keep-going/</guid><description>&lt;p>In 2008, we all watched Pivotal crash and burn. They&amp;rsquo;d taken a year and nearly
£900k to build a new ticketing system for the fringe. On launch, they realised
that it could serve only one customer at a time.
&lt;a href="https://drone-ah.com/saving-the-fringe.md">We built an interim ticketing system for them over the weekend&lt;/a>.&lt;/p>
&lt;p>It was time for kraya to take a leap. We should take the megabus.com ticketing
system to the next level and build a distributed ticketing system that could
potentially scale infinitely.&lt;/p></description><content:encoded><![CDATA[<p>In 2008, we all watched Pivotal crash and burn. They&rsquo;d taken a year and nearly
£900k to build a new ticketing system for the fringe. On launch, they realised
that it could serve only one customer at a time.
<a href="https://drone-ah.com/saving-the-fringe.md">We built an interim ticketing system for them over the weekend</a>.</p>
<p>It was time for kraya to take a leap. We should take the megabus.com ticketing
system to the next level and build a distributed ticketing system that could
potentially scale infinitely.</p>
<p>I&rsquo;d picked JBoss because it was backed by Red Hat - it had all these features
and capabilities - a lot of which we needed. The other option we considered was
Glassfish, but it just didn&rsquo;t have the features we needed. There were other
options but that involved prohibitive licensing fees.</p>
<p>We costed it out at £650k and a year. It was unrealistic but I could not imagine
Stagecoach paying more, or giving us more time. They wanted it for £500k and in
six months. I should&rsquo;ve pushed back, but we&rsquo;d built a booking system over the
weekend, only a few months back - this should be possible, right?</p>
<p>It wasn&rsquo;t.</p>
<p>We got a year in the end — we didn&rsquo;t ask for it, and we didn&rsquo;t know until we
were most of the way down the path. When I heard about the delay it was a mix of
relief and regret. We&rsquo;d burned through most of the budget on getting in
contractors who were leaving imminently. We could have got fewer people on
board, but as permanent staff.</p>
<p>We launched to Canada first, and that wasn&rsquo;t too bad. Then it was the US, and
the nightmare started. The UK launched last on my birthday in 2010.</p>
<p>In the intervening years, we had a budget shortfall of £150k and because we&rsquo;d
rushed to build the product, we&rsquo;d cut corners, and all the contractors had left.
We even had to let go of some of the permanent staff. I asked Stagecoach if
they&rsquo;d fund us the extra £150k as we&rsquo;d asked at the start. They said no. They
renegotiated the contract. They demanded more oversight - and increased our
reporting obligations.</p>
<p>Load testing was already a part of our process and we tested the new system
under load. We identified issues and fixed them. On paper, it looked good.</p>
<p>It wasn&rsquo;t.</p>
<p>The problem wasn&rsquo;t load per se. It was the stability of the system. It struggled
to stay up for extended periods of time. The more nodes there were, the worse it
was.</p>
<p>It was exactly the kind of problem that was hard to replicate and hard to test.
The main option we had was to think through what all it could be and to take
stabs in the dark. I put together a hit list and worked through it methodically.
Convincing Stagecoach to spend the money was sometimes harder than solving the
problem.</p>
<p>Ultimately, the one thing that pushed us over the line in terms of stability was
staggered nightly automated restart of each node.</p>
<p>I thought I was done working with
<a href="https://drone-ah.com/it-gets-everywhere.md">software that needed regular restarts to stay functional</a>
and at first resisted this. We are running enterprise level software, and that
too on Linux. If I was comfortable with such shenanigans, I might have stayed
with Windows. But we were running out of options. It was a hail Mary - it
worked.</p>
<p>I had been working with Linux and related software for years by that point. I,
in fact had servers that had not been restarted for literal years at that point,
with services that were running just as long. A lot of these services didn&rsquo;t
even need a restart on config change - just a reload.</p>
<p>None of these services even had a paid tier. That should have been the clue.</p>
<p>I cannot imagine having to restart PostgreSQL nightly or even Apache. I still do
not understand how something slated for the enterprise market can have leaks
that would warrant a regular restart to keep it working.</p>
<p>Years later, when I looked up issues around JBoss, I realised that it was
notorious for a whole slew of problems with JGroups and clustering. I remember
scouring the internet for details on any kind of issues and coming up empty.</p>
<p>I&rsquo;d fallen into a marketing trap. JBoss was no Apache — it was the commercial
product of Red Hat. I thought all enterprise open source software would be of
the same calibre. It wasn&rsquo;t.</p>
<p>From what I understand, Stagecoach spent millions and maybe two years building
the whole ticketing system inhouse. kraya limped along for a few more years
before being shuttered.</p>
<p>The people involved, though, fortunately seem to have gotten through it largely
unscathed. It gives me a great deal of joy to see so many of the juniors I&rsquo;d
hired now CTO&rsquo;s, VP&rsquo;s, Directors.</p>
<p>I believed that every victory was ours but when something went wrong, it
belonged to me. After all, I made every choice. I chose to pursue the Java EE
ticketing system. I chose JBoss. I chose to keep going.</p>
<p>I was in a narrowing path, with fewer and fewer options.</p>
<p>I knew I was the only one holding that line - I didn&rsquo;t know that there was
another option.</p>
<p>Bit by bit, I lost all sense of what I was paying to fix these mistakes.</p>
]]></content:encoded></item></channel></rss>