This is the third post in my Google Cloud Next '26 (Las Vegas) recap series. You can find the previous posts here 👇 Part 1: [Google Cloud Next '26 Recap #1] Hands-On with the Agentic Hack Zone Part 2: [Google Cloud Next '26 Recap #2] Three Unique Booths I Tried at the EXPO In Parts 1 and 2, I covered my experiences on the EXPO floor. This time, I'd like to switch gears and share one of the se
What if your Kubernetes cluster simply refused to run unsigned images? I spent some time experimenting with enforcing image provenance in a small Kubernetes setup using MicroK8s. The idea was simple: Only container images with valid cryptographic signatures are allowed to run in the cluster. For this I used: GitLab CI/CD (build + signing pipeline) Cosign / Sigstore (image signing) Kyverno (admissi
In my previous article about treating architecture documentation as a first-class asset, I had a great discussion in the comments about enforcing architectural rules. I promised to share materials from my recent Google Developer Groups workshop. The workshop is now finished! Here is the story of how I built an AI Quality Gate, how it helped me solve the internal "CEO, CTO, CFO, CISO" conflict, and
Most teams I have worked with have one auth test in their suite. It looks like this: test('valid token verifies', () => { const token = signSync({ sub: 'user-1', aud: 'api://backend' }, secret); const result = verify(token, options); expect(result.valid).toBe(true); }); That test is fine. It is also a smoke test, not a regression suite. It catches the case where verification is completely b
The on-call alert at 02:14 said auth_5xx_rate spiked from 0.01 to 31.4. Not a deploy window. Not a traffic spike. Just thirty-one percent of authenticated requests failing for ~four minutes, then back to baseline. The cause was a JWKS rotation on the issuer side. New keys came in. Old keys went out. Caches in our service didn't refresh fast enough. Tokens signed with the new key were rejected beca
In my previous article, I documented how I installed Terraform on macOS using Homebrew and fixed a Zsh autocomplete issue. In this article, I am going to be using terraform to provision, update, and destroy a simple set of infrastructure using the sample configuration provided by hashicorp The goal is to understand the basic Terraform workflow: Write configuration Authenticate to Google Cloud Ini
On April 30th I got an email from Google about something called GEAR, their new program for building AI agents using ADK, the Agent Development Kit. I signed up, watched the intro video, and had a strange feeling of recognition. The pattern was familiar. Define tools. Write descriptions. Connect an AI model to those tools. Let the model decide which tool to call based on what the user asks. I buil
VotePath -- an AI-powered multilingual voting guide for first-time voters. The Problem: Why Don't People Vote? What is VotePath? 🤖 Gemini-Powered AI Assistant: A conversational AI built with the Google Gemini API that answers specific election queries in real-time. 🛠️ The Tech Stack Building the UI components and wiring up the Gemini SDK went smoothly using an intent-driven development approach.