tl;dr; 
 I had an itch to run GitHub Actions on top of Google Cloud infrastructure with minimal overhead. I’ve decided to build a solution in public and document my journey. I plan to build this product exclusively through AI and document what is working and what doesn’t. I gave it access to my Cloudflare account with my credit card on file. So far it picked…

 
 

 Update, 29 April 2026 
 This post was picked up on Hacker News and crossed 100 comments. I love that this sparks emotions. As always, there is a fair mix of reactions, which is exactly what you would expect from HN. Scroll to the bottom for extra responses to some of the comments. 
 … 
 
 Cloud Next was intense. I wrote the first version of this post…

 This post extends on the Project honeypots.work kick-off and describes the first utility site instrumented to feed the honeypot data pipeline. 
 The Itch 
 Google Cloud Platform has thousands of IAM permissions. Finding the right one is tedious. 
 Google’s documentation works, but it requires multiple clicks to navigate. They have a permission reference with search, but it…

 I needed a CRC16 checksum implementation in Helm. This is not code I would have written before - it felt frivolous, not a good use of my time. But Claude Code gave me a working implementation with tests in one shot. 
 You might think this is another waste of valuable compute on a frivolous activity. Far from it - this implementation is driven by necessity and it simplifies our stack.

 As part of my day job, I look after a top 5000 website in the world. We serve hundreds of terabytes of content monthly - and unsurprisingly, that traffic attracts plenty of bad actors, scrapers, and bots. They make engineers’ lives harder. 
 There are commercial solutions for bots and scrapers. But I want to build my own - specifically, a system that ranks inbound requests by their…
With 2025 wrapped up I’d like to look back and reflect on the year and more specifically, a set of personal goals I’ve set. 
 2025 was fast-paced, really challenging at times, but overall, a really great year to reflect back on. 
 Key takeaways: 
 
 I am the fittest version of myself, both physically and mentally 
 AI assisted coding has allowed me to make a lot of…
tl;dr; 
 
 Claude for Chrome saved me close to an hour. Three wins: Grafana panel overrides, ArgoCD finalizer patching, and Cloudflare Pages setup. Browser-integrated AI assistance is here and it works. 
 The Trigger 
 Just yesterday I read about Simon Willison’s success with Claude for Chrome . He was stuck with Cloudflare UI and Claude did a great job navigating it.…

 
 
 
 
 
 GCP FinOps #001 Google Cloud Storage Location, Location, Location $ $ $ $ $ $ $ $ $ 


 This post marks a start of a series about Google Cloud Platform and FinOps.

 By default, Kubernetes schedules workloads (pods) onto nodes mainly driven by resource constraints (memory, CPU, ephemeral storage). This works fine for the vast majority of users where neither nodes nor pods have anything custom about them. 
 Now, imagine that subset of your nodes has a specific type of hardware, TPU, necessary for machine learning workloads. Only some of your workloads…
Certified Kubernetes Security Specialist (CKS) Preparation based on CNCF CKS curriculum. 
 Approach to this preparation guide 
 This guide is being authored before actual certification has went live. The best approach to be most prepared for this certification is to know all of the required domains and competences really well. I’ve based this preparation guide on the available…
TL;DR 
 Compress data and use cold storage tiers to achieve absolute minimum cost for long-term logs archiving at as little as $1.20 per TB per year. 
 Problem 
 Imagine you need to capture and store 1TiB of logs monthly and retain them for 10 years - what is the most cost-effective way of doing so (infrastructure cost and long-term maintenance overheads)? Google Cloud produces a lot…
Last updated on 11th of October, 2020. Certification is expected to go into GA on 15th of October. 
 Authors 
 Dmitri - knew GCP, didn’t know any of the ML stuff 
 Steven - knew ML, didn’t know any of the GCP stuff 
 Perfect reason to collaborate! 
 New certification 
 Google announced a new Machine Learninng Engineer beta certification in July with…
Problem 
 Recently, I’ve faced an interesting challenge around labels and Prometheus Recording Rules . I was writing a new Recording Rules and felt that labels available in the metrics composing recording rules were insufficient for my purposes of simplifying SLI, SLO and Error budget management with Prometheus. I’ve decided to find a way to add arbitrary labels to the prometheus…

 
 Hey Dmitri, I have explored options of looking into memory monitoring of dataflow. The thing is that we create dataflow jobs using terraform, and that does not have the –experiments option. Not sure what the option is there. 
 This is the message I’ve recently received from one of my colleagues who was looking into opportunities to scale down our Dataflow jobs. When you…

*Photo by Lianhao Qu on Unsplash*
 TL;DR 
 Kubernetes nodes set conntrack_max value proportionally to the size of the RAM on the node. High load applications (especially on small nodes) can easily exceed conntrack_max and result in connection resets and timeouts. There is several options to deal with this issue. 
 Theory 
 conntrack is a feature built on top of Netlifier…

*Photo by [Ricardo Gomez Angel](https://unsplash.com/@ripato) on Unsplash*
 As of now, Google Container Registry does not allow for granular access control to the images stored in the registry. By default , you can only grant access to users, groups of users for the entire registry. In addition, you only get one registry per project. Therefore creating more registries to provide unique…

*Photo by JOSHUA COLEMAN on Unsplash*
## Theory
[RFC 1918](https://tools.ietf.org/html/rfc1918) defines 3 core ranges of IPs for private networking usage: 10.0.0.0/8, 172.16.0.0/12 and 192.168.0.0/16 yielding 16'777'216, 1'048'576 and 65'536 IPs each.
 Setup 
 In our GKE environments, we use Shared VPC functionality to have a separation of concerns between networking and…

Similarly to Reddit's [todayilearned](https://www.reddit.com/r/todayilearned/), I will be sharing my recent learnings about all things DevOps, cloud and distributed systems.
 I’ve been using Prometheus for about six months, and it has been an instant success. However, over a time, the number of metrics stored in Prometheus has grown, and the frequency of querying has also increased.…
Do you know what is running in your production? 
 At this moment I know exactly what is running in my production, without even accessing it. Would you ask me the same question before the move to the GitOps - I’ll have to delete and reinstall all the VMs, redeploy application and finally answer with a similar level of confidence. This confidence would drift away with every lapsed minute…
By Kleuske - Own work , CC BY-SA 4.0 , Link 
 Last year was a year of GCP for me. I have maintained a list of its unique, productive and performant features and products. While it is easy to find or produce computational benchmarks (e.g. CPU benchmark points per instance type or network throughput between two VMs) - real performance of any cloud is not in compute, but productivity. Those…

 Starting 29th of March Google Cloud Professionals attempting Data Engineer certification will be subject to the latest version of the certification exam. The most recognisable difference is the removal of case studies. I was lucky enough to be challenged with and pass the updated version of the Data Engineer certification on the 2nd of April. In my preparation I’ve used materials and…

 GKE Rocks! 
 I am a huge fan of the Google Cloud Platform and especially GKE. It was fundamental in our migration of Loveholidays on-prem applications to Kubernetes. GKE’s rich integrations with other GCP products allowed us to shift a lot of configuration from Ansible into Kubernetes yaml definitions which are now managed by GitOps. We are running GKE in Prod for 6+ months and…
Problem 
 Recently when creating a Node Pool for GKE cluster running on Service project of the Shared VPC I’ve encountered the following problem: 
 gcloud container node-pools create new-node-pool \
 --cluster = shared-vpc-cluster \
 --disk-size = 50GB \
 --enable-autorepair \
 --no-enable-autoupgrade \
 --image-type = COS \
 --enable-autoscaling \
…
Problem 
 Recently I’ve been setting up Redis Cluster to run in Kubernetes on GKE. During the setup, I’ve been experimenting with various configurations of Redis Nodes and clustering. Unfortunately, at some point, I’ve rendered my cluster unusable. Logs showed the following:
 1:C 20 Feb 2019 16:57:45.189 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 
 1:C 20 Feb…
On Thursday 24th of January, I woke up to great news. Firstly, I’ve become GCP certified “Professional Cloud Developer” by passing my 3rd certification and 2nd beta exam. Secondly, Google announced two new beta certifications. On the same day I’ve registered for both Google Cloud Certified - Professional Cloud Network Engineer and Google Cloud Certified - Professional Cloud…
Edit: I’ve successfully passed this certification, landing #20 certification globally. 
 On Thursday 24th of January, I woke up to great news. Firstly, I’ve become GCP certified “Professional Cloud Developer” by passing my 3rd certification and 2nd beta exam. Secondly, Google announced two new beta certifications. On the same day I’ve registered for both Google…
No keepalive sent from client for 120 seconds 
 Those using Sensu for monitoring and alerting have seen this dreadful message many times. Almost always it indicates that node your are monitoring (sensu client) has failed to send keepalive for preconfigured duration of time. In other words - there is no communication between sensu client and sensu server. This could indicate network or host…

 I have been running a Gradle & Groovy related blog for an about a year using Wordpress. Wordpress is a great platform, but comes with its own risks and drawbacks: 
 
 More maintenance (needs a server to run) 
 Prone to hacking 
 Slower than static blog 
 Higher operational costs 
 
 I’ve decided to host a simple, static blog using S3 static site feature.…