Undo – The Ghost of the Past Package

Why Your CI Pipeline is a Corporate Séance

A vintage, steampunk-inspired keyboard featuring a prominent red 'APPROVE' button, alongside a steaming mug of Earl Grey tea. A handwritten note warns, 'The previous package is still breathing. Do not wake it.'

Let’s be honest about how software delivery actually works in the wild.

For decades, the enterprise software ritual has followed a comforting, highly choreographed liturgy. You write some code. You sacrifice a chicken to the Jenkins gods. The CI pipeline turns green—a soothing, celestial lime-green glow that whispers sweet nothings into your ear, assuring you that all is right with the universe.

And then you deploy to production, and the server spontaneously combusts into a heap of weeping stack traces, leaving you frantically rummaging through the digital equivalent of a burning attic trying to find last Thursday’s release artifact.

Because here is the dirty little secret that the agile certifiers don’t want you to know: Most pipelines only ask one question: Does the new build work?

It’s a polite, forward-looking question. It’s optimistic. It’s hopelessly naive. In a real-world incident, the question that actually makes your stomach drop into your boots is far more brutal: Can we still run what we had before?

A stylized logo featuring a geometric fox design within a shield, accompanied by a green checkmark, set against a dark digital background.

Enter Undo: Necromancy for Cloud Run

That specific brand of existential dread is what birthed Undo—my entry for the GitLab Life After Code / Transcend hackathon over on Devpost.

The premise is delightfully cynical. Instead of blindly trusting that tomorrow’s shiny container image won’t accidentally erase your user database and summon ancient Sumerian demons into your AWS/GCP VPC, Undo implements a strict regime of digital necromancy.

It runs on a simple, ruthless loop:

  1. Prove: On every push to main, GitLab CI doesn’t just build the new toy; it resurrects the previous package, forces it to look into the mirror, and hits /health (ROLLBACK_OK) to verify it hasn’t lost its mind.
  2. Ask: If the past is still breathing, an event-driven GitLab Duo flow (no chat-theatre chatbots, just cold, hard automation) triggers automatically on pipeline success, reads the rollback proof, and opens a Work Item.
  3. Approve: I reply with one word: approve. (Because even in an age of autonomous silicon agents, a human being should still be the one holding the smoking revolver when production goes sideways).
  4. Promote: A manual promote_production job ships the exact same verified image out to the world.

You can prod the corpse yourself right here: Undo Live Health Check.

Why GitLab and Google Cloud Made the Séance Possible

This wasn’t about building another clever wrapper chatbot that hallucinates python scripts while you sip your flat white. This was about life after code: verification, packaging, release, configuration, and governance.

GitLab became the spine—handling everything from the single .gitlab-ci.yml file to the staging gates and agent session history where judges can peer into the machine’s little mechanical soul.

And Google Cloud? That was the missing proof. A green pipeline on a local laptop is just a comforting delusion. Wiring GitLab CI directly into GCP—service accounts, Cloud Build, Artifact Registry, and Cloud Run—meant the app had somewhere real to land. It stayed tiny and razor-focused on the lifecycle, because when you’re staring down an infrastructure failure, you don’t need a bloated UI; you need to know if the last thing that didn’t break can still boot up.

The Builder’s Post-Mortem

If you’re diving into the next hackathon or trying to drag a legacy enterprise kicking and screaming into supervised autonomy, keep a few hard-earned truths in mind:

  • Event-driven flows beat chat demos. Stop chatting with your agents; make them trigger on structural events like pipeline passes and leave an audit trail that won’t disappear when the Slack tab closes.
  • “Green” is a polite fiction. A green pipeline does not mean “safe to promote” until you have physically verified that the previous artefact can still answer the phone.
  • Keep a human on the tripwire. Agents and CI can handle the heavy lifting in the middle, but a human still owns the final, glorious privilege of pushing the button.

Undo’s rule is simple, brutal, and effective: Don’t treat the next package as ready until the last one still boots—and don’t promote until a human says so.

A dimly lit, dilapidated room with overgrown plants and moss. In the center, a server rack displays the message 'ROLLBACK_OK'. The room features broken windows allowing rain and mist to enter, with an old sofa and table in the corner.

Life After Code: building “undo” with GitLab, Devpost, & Google Cloud

Most pipelines only ask one question: does the new build work?
In real incidents, the question that hurts is different: can we still run what we had before?

Logo for Undo, featuring a stylized fox and shield design with the word 'undo' in light blue and the phrase 'Supervised Deployments' underneath in smaller text.

That idea became Undo — my entry for the GitLab Life After Code / Transcend hackathon on Devpost. It’s a small app with a big lifecycle: prove the previous package still boots, ask a human to approve, then promote to Google Cloud Run.

What Undo does

On every push to main, GitLab CI:

  1. Tests and packages the exact build
  2. Starts the previous package and hits /health (ROLLBACK_OK)
  3. Builds an image, runs Cloud Build into Artifact Registry, and deploys staging on Cloud Run
  4. A custom Duo flow — Undo — triggers on pipeline passed, reads the rollback proof, and opens a Work item (PASS or FAIL)
  5. I reply with one word: approve
  6. A manual promote_production job ships the same image to production

Live health check: https://undo-pjcvzfkkzq-nw.a.run.app/health

Supervised autonomy in practice: agents and CI do the middle work; a person still owns the final call.

Why GitLab made this possible

This hackathon isn’t “write a clever chatbot.” It’s about life after code — verify, package, release, configure, govern — with Duo Agent Platform in the loop.

What stood out for me:

  • Pipelines as the spine — one .gitlab-ci.yml from test through staging and a visible promote gate
  • Duo flows, not chat theatre — Undo runs on Pipeline events → Passed, then posts a Work item. No prompt from me mid-demo
  • Everything in one place — code, packages, jobs, issues, and the agent session history judges can click through
  • GitLab wasn’t just the host repo. It was the product surface I was building on.

Why Devpost helped (more than “submit here”)

Devpost keeps a solo hackathon sane: clear Path A / Supervised rules, a place for the story, try-it-out links, and a video deadline you can’t ignore.

The structure forced me to explain Undo the way judges will see it — not as a pile of YAML, but as a loop: prove → ask → approve → promote. That clarity made the build better, not just the form.

If you’re entering: treat Devpost as a design brief, not a last-minute paste box.

Why Google Cloud was the missing proof
A green pipeline is nice. A public URL is better.

Wiring GitLab CI to Google Cloud — service account, Cloud Build, Artifact Registry, Cloud Run staging and production — meant anyone can open /health and see the version we just approved. That’s the Google Cloud bonus path done properly: deploy config in the repo, human still on the gate.

Cloud Run gave me somewhere real to land. The app stayed tiny on purpose so the story stays on the lifecycle, not a fake product UI.

  • What I’d tell another builder
  • Event-driven flows beat chat demos for this challenge
  • “Green” ≠ “safe to promote” until the previous artefact still answers
  • Credits, group projects, and CI variables are part of the craft — budget time for them
  • Ship a live URL if you can; it turns “I deployed” into “click this”


Links

Project (GitLab): shielyule-group/ShielYule-project
Live demo: https://undo-pjcvzfkkzq-nw.a.run.app/health
Hackathon: GitLab Life After Code on Devpost
Video: https://youtu.be/dI7f7ozZu6Y

Huge thanks to GitLab for the platform and the brief, to Devpost for a submission experience that keeps builders honest, and to Google Cloud for a place to prove the promote step in public.

Undo’s rule is simple: don’t treat the next package as ready until the last one still boots — and don’t promote until a human says so

Little Fluffy Clouds, Big Digital Problems: Navigating the Dark Side of the Cloud

It used to be so simple, right? The Cloud. A fluffy, benevolent entity, a celestial orb – you could almost picture it, right? – a vast, shimmering expanse of little fluffy clouds, raining down infinite storage and processing power, accessible from any device, anywhere. A digital utopia where our data frolicked in zero-gravity server farms, and our wildest technological dreams were just a few clicks away. You could almost hear the soundtrack: “Layering different sounds on top of each other…” A soothing, ambient promise of a better world.

But lately, the forecast has gotten… weird.

We’re entering the Cloud’s awkward teenage years, where the initial euphoria is giving way to the nagging realization that this whole thing is a lot more complicated, and a lot less utopian, than we were promised. The skies, which once seemed to stretch on forever and they, when I, we lived in Arizona, now feel a bit more… contained. More like a series of interconnected data centres, humming with the quiet menace of a thousand server fans.

Gartner, those oracles of the tech world, have peered into their crystal ball (which is probably powered by AI, naturally) and delivered a sobering prognosis. The future of cloud adoption, they say, is being shaped by a series of trends that sound less like a techno-rave and more like a low-humming digital anxiety attack.

1. Cloud Dissatisfaction: The Hangover

Remember when we all rushed headlong into the cloud, eyes wide with naive optimism? Turns out, for many, the honeymoon is over. Gartner predicts that a full quarter of organisations will be seriously bummed out by their cloud experience by 2028. Why? Unrealistic expectations, botched implementations, and costs spiralling faster than your screen time on a Monday holiday. It’s the dawning realisation that the cloud isn’t a magic money tree that also solves all your problems, but rather, a complex beast that requires actual strategy and, you know, competent execution. The most beautiful skies, as a matter of fact, are starting to look a little overcast.

2. AI/ML Demand Increases: The Singularity is Thirsty

You know what’s really driving the cloud these days? Not your cute little cat videos or your meticulously curated collection of digital ephemera. Nope, it’s the insatiable hunger of Artificial Intelligence and Machine Learning. Gartner predicts that by 2029, a staggering half of all cloud compute resources will be dedicated to these power-hungry algorithms.

The hyperscalers – Google, AWS, Azure – are morphing into the digital equivalent of energy cartels, embedding AI deeper into their infrastructure. They’re practically mainlining data into the nascent AI god-brains, forging partnerships with anyone who can provide the raw materials, and even conjuring up synthetic data when the real stuff isn’t enough. Are we building a future where our reality is not only digitised, but also completely synthesised? A world where the colours everywhere are not from natural sunsets, but from the glow of a thousand server screens?

3. Multicloud and Cross-Cloud: Babel 2.0

Remember the Tower of Babel? Turns out, we’re rebuilding it in the cloud, only this time, instead of different languages, we’re dealing with different APIs, different platforms, and the gnawing suspicion that none of this stuff is actually designed to talk to each other.

Gartner suggests that by 2029, a majority of organizations will be bitterly disappointed with their multicloud strategies. The dream of seamless workload portability is colliding head-on with the cold, hard reality of vendor lock-in, proprietary technologies, and the dawning realization that “hybrid” is less of a solution and more of a permanent state of technological purgatory. We’re left shouting into the void, hoping someone on the other side of the digital divide can hear us, a cacophony of voices layering different sounds on top of each other, but failing to form a coherent conversation.

The Rest of the Digital Apocalypse… think mushroom cloud computing

The hits keep coming:

  • Digital Sovereignty: Remember that borderless, utopian vision of the internet? Yeah, that’s being replaced by a patchwork of digital fiefdoms, each with its own set of rules, regulations, and the increasingly urgent need to keep your data away from those guys. The little fluffy clouds of data are being corralled, fenced in, and branded with digital passports.
  • Sustainability: Even the feel-good story of “going green” gets a dystopian twist. The cloud, especially when you factor in the energy-guzzling demands of AI, is starting to look less like a fluffy white cloud and more like a thunderhead of impending ecological doom. We’re trading carbon footprints for computational footprints, and the long-term forecast is looking increasingly stormy.
  • Industry Solutions: The rise of bespoke, industry-specific cloud platforms sounds great in theory, but it also raises the specter of even more vendor lock-in and the potential for a handful of cloud behemoths to become the de facto gatekeepers of entire sectors. These aren’t the free-flowing clouds of our childhood, these are meticulously sculpted, pre-packaged weather systems, designed to maximize corporate profits.

Google’s Gambit

Amidst this swirling vortex of technological unease, Google Cloud, with its inherent understanding of scale, data, and the ever-looming presence of AI, is both a key player and a potential harbinger of what’s to come.

On one hand, Google’s infrastructure is the backbone of much of the internet, and their AI innovations are genuinely groundbreaking. They’re building the tools that could help us navigate this complex future, if we can manage to wrest control of those tools from the algorithms and the all-consuming pursuit of “engagement.” They offer a glimpse of those purple and red and yellow on fire sunsets, a vibrant promise of what the future could hold.

On the other hand, Google, like its hyperscale brethren, is also a prime mover in this data-driven, AI-fueled world. The very features that make their cloud platform so compelling – its power, its reach, its ability to process and analyse unimaginable quantities of information – also raise profound questions about concentration of power, algorithmic bias, and the potential for a future where our reality is increasingly shaped by the invisible hand of the machine. The clouds would catch the colours, indeed, but whose colours are they, and what story do they tell?

The Beige Horseman Cometh

So, where does this leave us? Hurtling towards a future where the cloud is less a fluffy utopia and more a sprawling, complex, and potentially unsettling reflection of our own increasingly fragmented and data-saturated world. A place where you don’t see that, that childlike wonder at the sky, because you’re too busy staring at the screen.

The beige horseman of the digital apocalypse isn’t some dramatic event; it’s the slow, creeping realization that the technology we built to liberate ourselves may have inadvertently constructed a new kind of cage. A cage built of targeted ads, optimized workflows, and the unwavering belief that if the computer says it’s efficient, then by Jove, it must be.

We keep scrolling, keep migrating to the cloud, keep feeding the machine, even as the digital sky darkens, the clouds would catch the colours, the purple and red and yellow on fire, and the rain starts to feel less like a blessing and more like… a system error.

From Zero to Data Hero: My Google Data Analytics Journey

Just a few short months ago, the world of data analytics felt like a vast, uncharted ocean. Now, after completing Google’s Data Analytics Professional Certificate (or at least the 12+ modules that make up the learning path – more on that later!), I feel like I’ve charted a course and am confidently navigating those waters. It’s been an intense, exhilarating, and sometimes head-scratching journey, but one I wouldn’t trade for anything.

My adventure began in October 2024, and by February (this week) 2025, I had conquered (most of) the learning path. Conquer is the right word, because it was definitely an intense learning curve. 2000’s dev junior SQL skills? Yeah, they got a serious dusting off. And my forgotten Python, which was starting to resemble ancient hieroglyphics? Well, let’s just say we’re on speaking terms again.

The modules covered a huge range of topics, from the foundational “Introduction to Data Analytics on Google Cloud” and “Google Cloud Computing Foundations” to more specialized areas like “Working with Gemini Models in BigQuery,” “Creating ML Models with BigQuery ML,” and “Preparing Data for ML APIs on Google Cloud.” (See the full list at the end of this post!) Each module built upon the previous one, creating a solid foundation for understanding the entire data analytics lifecycle.

But the real stars of the show for me were BigQuery and, especially, Looker Studio. I’ve dabbled with other data visualization tools in the past (mentioning no names… cough Microsoft cough Tableau cough), but Looker Studio blew me away. It’s intuitive, powerful, and just… fun to use. Seriously, I fell in love. The ease with which you can connect to data sources and create insightful dashboards is simply unmatched. It’s like having a superpower for data storytelling!

One of the biggest “aha!” moments for me was realizing the sheer power of data insights. Mining those hidden gems from large datasets is incredibly addictive. And the fact that Google makes it so easy to access public datasets through BigQuery? Game changer. It’s like having a data goldmine at your fingertips.

This learning path has ignited a real passion within me. So much so that I’m now pursuing a Data Analysis Diploma, which I’m hoping to wrap up before June. And, because I apparently haven’t had enough learning, I’m also signing up for the Google Cloud Data Analytics Professional Certificate. I’m all in!

I have to say, the entire Google Cloud platform just feels so much more integrated and user-friendly compared to the Microsoft offerings I’ve used. Everything works together seamlessly, and the learning resources are top-notch. If you’re considering a career in data analytics, I would wholeheartedly recommend the Google path over other options.

I’m especially excited to dive deeper into the machine learning aspects. And the integration of Gemini? Genius! Having it as a code buddy has been a huge help, especially when I’m wrestling with a particularly tricky SQL query or trying to remember the correct syntax for a Python function. Seriously, it’s like having a data analytics guru by my side.

Stay tuned for future posts where I’ll be sharing more about my data analytics journey, including tips and tricks, project updates, and maybe even some data visualizations of my own!

Coursera do an official course = https://www.google.com/url?sa=E&source=gmail&q=https://www.coursera.org/professional-certificates/google-data-analytics – this you get a recognised formal professional certificate.

Or jump into Google Cloud Skills Boost: https://www.cloudskillsboost.google/ and get yourself a Cloud account and friendly with Gemini.

Modules Completed:

  • Work with Gemini Models in BigQuery
  • Analyzing and Visualizing Data in Looker Studio
  • BigQuery for Data Analysts
  • Boost Productivity with Gemini in BigQuery
  • Create ML Models with BigQuery ML
  • Derive Insights from BigQuery Data
  • Developing Data Models with LookML
  • Google Cloud Computing Foundations- Data, ML, and AI in Google Cloud
  • Introduction to Data Analytics on Google Cloud
  • Manage Data Models in Looker
  • Prepare Data for Looker Dashboards and Reports
  • Prepare Data for ML APIs on Google Cloud