<?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>Polskibus on words on sand</title><link>https://drone-ah.com/tags/polskibus/</link><description>Recent content in Polskibus on words on sand</description><generator>Hugo</generator><language>en</language><lastBuildDate>Tue, 21 Apr 2026 09:52:10 +0100</lastBuildDate><atom:link href="https://drone-ah.com/tags/polskibus/index.xml" rel="self" type="application/rss+xml"/><item><title>Holding the Fort</title><link>https://drone-ah.com/2026/04/15/holding-the-fort/</link><pubDate>Wed, 15 Apr 2026 15:26:10 +0100</pubDate><guid>https://drone-ah.com/2026/04/15/holding-the-fort/</guid><description>&lt;p>For many years, I loved my job. I was working on a production system that saw
tens of thousands of orders across the world.&lt;/p>
&lt;p>By the time it was 2015, I did not.&lt;/p>
&lt;p>I had poured blood, sweat and tears into a ticketing system that kraya built —
first for megabus, then for Polskibus. It had broken me, and we were now just
limping along.&lt;/p>
&lt;p>By 2015, we were spending 101–286 hours each month on a support contract that
paid for 60. I raised this with the client and suggested a minimum of a 100%
increase. They refused. Instead, they minimised their requests to just about 80
hours each month. Without the development work, I was now making a loss each
month providing the resources for this support contract.&lt;/p></description><content:encoded><![CDATA[<p>For many years, I loved my job. I was working on a production system that saw
tens of thousands of orders across the world.</p>
<p>By the time it was 2015, I did not.</p>
<p>I had poured blood, sweat and tears into a ticketing system that kraya built —
first for megabus, then for Polskibus. It had broken me, and we were now just
limping along.</p>
<p>By 2015, we were spending 101–286 hours each month on a support contract that
paid for 60. I raised this with the client and suggested a minimum of a 100%
increase. They refused. Instead, they minimised their requests to just about 80
hours each month. Without the development work, I was now making a loss each
month providing the resources for this support contract.</p>
<p>I could cancel the contract, but that would involve letting them have the source
code, which was otherwise kraya&rsquo;s property. There was a six month notice period
— six months of providing all the support they need to run and to migrate the
system to their team.</p>
<p>At some point, I went from taking on the challenge to holding the fort.</p>
<p>I could see that any effort to make things easier would backfire. I built them a
feature for free — they complain about one bug in it — and they need it fixed
urgently. I loosen the rules and deploy an additional server just before the
weekend, letting them know about the risks. Something goes wrong and they are
surprised.</p>
<p>The hardest thing for me to change was the belief that the client&rsquo;s wins were my
wins. If anything, the client&rsquo;s wins were my loss. It meant more unpaid work in
the support contract. It meant more complex systems to support and maintain —
while every penny was being questioned.</p>
<p>I started to say no. No, we will not deploy new servers on a Thursday because
the weekend is too close. No, we will not reduce the QA time on this bit of
functionality you want. No, we will not restore reports which could display
erroneous data.</p>
<p>It all came to a head in one specific instance where the CEO insisted on
speaking to me because they needed something deployed urgently. They needed us
to work through the evening or the weekend. I said no. They offered to pay
double. I said no. They were not happy.</p>
<p>A few months later, they cancelled the contract.</p>
<p>I remember the meeting. It was amicable and friendly. They asked if I could keep
the staff on till the end of the year - they wanted backup in case anything went
wrong during the migration.</p>
<p>I wouldn&rsquo;t want to let them go before Christmas anyway.</p>
<p>I had a brief conversation with my brother to decide what to do next. I already
knew that there was nothing left to keep running. We kept it running for three
more months until the end of December.</p>
<p>I remember going into the main office, gathering everyone around and delivering
the news. Polskibus had cancelled. We are shutting kraya down. We&rsquo;ll keep going
until the end of December.</p>
<p>I remember the Christmas party. It had often ended up being drinks, and being
out all night. It didn&rsquo;t this year - we went home after the meal. The atmosphere
was one of sadness and relief. We&rsquo;d all been through the fires and made it out
the other end. It was over.</p>
<p>It was the end of what I&rsquo;d built over 15 years.</p>
<p>I felt nothing.</p>
]]></content:encoded></item><item><title>Always On</title><link>https://drone-ah.com/2026/04/14/always-on/</link><pubDate>Tue, 14 Apr 2026 19:51:09 +0100</pubDate><guid>https://drone-ah.com/2026/04/14/always-on/</guid><description>&lt;p>I knew as soon as my phone rang what it was about.&lt;/p>
&lt;p>It was the same every time. I would drag myself up to answer the phone - my
body, my mind screamed at me, but I had gotten good at overriding every instinct
through sheer willpower. I could hear the apologetic tone on the other side, and
I could recognise some of the voices after a while. I mustered up all of my
strength to be and sound as awake as possible. I needed to be professional even
if I was still in my underwear.&lt;/p></description><content:encoded><![CDATA[<p>I knew as soon as my phone rang what it was about.</p>
<p>It was the same every time. I would drag myself up to answer the phone - my
body, my mind screamed at me, but I had gotten good at overriding every instinct
through sheer willpower. I could hear the apologetic tone on the other side, and
I could recognise some of the voices after a while. I mustered up all of my
strength to be and sound as awake as possible. I needed to be professional even
if I was still in my underwear.</p>
<p>I had a glass of water on my bedside table. I&rsquo;d pick that up and head to my
office in the spare room. The computer was always on and always ready to go —
like me I guess. I&rsquo;d log on to the servers, and check the logs. If I can
identify which one fell out of the group, I can restart just that one. If I was
too late or if the issue had escalated, I&rsquo;d have to restart the whole cluster —
shut them all down, give them a few seconds, then bring each one up, while
keeping an eye on them. I could do it half asleep after a while.</p>
<p>Falling back asleep wasn&rsquo;t a breeze either - I was tired - exhausted - but I was
now also wired. Waking up in the morning was harder - the alarm would go off and
my body would be limp. I still remember the sheer power of will to drag myself
into the shower, then carry on with the rest of the day.</p>
<p>Of 266 incidents over about two years, I answered 156.</p>
<p>I remember one particular night, though I do not remember how many times I&rsquo;d
woken up beforehand. I was already tired.</p>
<p>megabus.com had gone offline. I got an alert. &ldquo;But someone else is on call
tonight,&rdquo; I told them. &ldquo;We already tried them twice,&rdquo; came the reply. I had to
deal with this. I had to deal with this.</p>
<p>I remember sitting at my desk at home working on fixing it. At some point,
something was different, though I don&rsquo;t remember what. While I was working on
fixing it, I remember being overcome with an overwhelming impulse to get up from
the chair and walk away — I almost imagined myself walking away. I resisted and
shut down that impulse. I fixed megabus as I had always done. In fixing megabus
though, something broke inside me, somewhere deep, in the very core of my being.
I was never the same again.</p>
<p>I analysed the system top to bottom, inside and out. I even waded through JVM
internals.</p>
<p>It got incrementally better, more stable. I think I rewrote every component that
wasn&rsquo;t the core ticketing system. In the end, what pushed it over the line were
two unexpected changes. Automated nightly restarts of each node in the cluster
and a rate limiter.</p>
<p>On the 10th December 2012, the system had a sale event. We had a bank of screens
on a wall with all the key stats for the system. It looked cool, and we felt a
bit like we were on a TV show. At peak, nearly 15,000 concurrent sessions — six
or seven times the average. Over 30,000 bookings in a single day, three times
more than the normal amounts across all systems.</p>
<p>We watched it closely, all day. Nothing broke. Nothing screamed. Everyone
smiled, but there was no celebration.</p>
]]></content:encoded></item></channel></rss>