DevOps Blog

Real-world experiences, lessons learned, and technical insights from building production infrastructure. Stories from the trenches of DevOps, Kubernetes, cloud platforms, and platform engineering.

How to Build a Slack Bot Like Doraemon

How to Build a Slack Bot Like Doraemon

A practical walkthrough on building a Slack bot using Socket Mode and Python 3.11, based on a real-world project.

slackbotpythonhackathon
From x86 to ARM in production: the EKS migration story

From x86 to ARM in production: the EKS migration story

We migrated our EKS workloads from x86 to ARM in production with zero downtime. Here's how we simplified our architecture story end-to-end and saved cost without trading away reliability.

kuberneteseksarm
Building a New Portfolio Page: Migrating from MkDocs to Astro

Building a New Portfolio Page: Migrating from MkDocs to Astro

Journey of creating a new portfolio page by converting a MkDocs-based documentation site to Astro, focusing on creating dedicated sections for content series like DevOps Odyssey with custom layouts.

astromkdocs
Build Once. Promote Forward. Ship Daily.

Build Once. Promote Forward. Ship Daily.

How we eliminated rebuild-per-environment pipelines and went from shipping every two weeks to shipping daily. A real-world story of building once, validating once, and promoting the same artifact through environments.

cicddockerargocd
The "Hybrid" AI Stack: Enterprise Power at Work, Localhost Freedom at Home

The "Hybrid" AI Stack: Enterprise Power at Work, Localhost Freedom at Home

How I built a personal AI stack on my MacBook Pro M4 using Ollama, Open WebUI, and Draw Things—running entirely locally with zero privacy leaks and unlimited usage, while keeping enterprise cloud tools for work.

aiollamaself-hosted
Developing and Testing K3s Apps Locally

Developing and Testing K3s Apps Locally

When building Kubernetes-aware tools — whether a CLI, dashboard, or internal Python service — you often need your local environment to talk directly to the cluster API.

githubkubernetescicd
Migrating From dotenv.org to 1Password in Kubernetes Deployment

Migrating From dotenv.org to 1Password in Kubernetes Deployment

dotenv.org recently increased its pricing, and at the same time our organization was already consolidating secrets into **1Password** for engineering, operations, and automation workflows. Maintaining

ocikubernetes1password
Extending Our Tailscale Setup with a Terraform-Managed Bastion

Extending Our Tailscale Setup with a Terraform-Managed Bastion

In [my previous post](./2025/06/25/swapping-vpn-for-tailscale-a-five-day-internal-infra-upgrade/), I wrote about how we replaced a traditional VPN with Tailscale to connect engineers to Kubernetes ser

tailscalevpnkubernetes
Reviving Doraemon: A Slack Bot’s Second Life in Kubernetes

Reviving Doraemon: A Slack Bot’s Second Life in Kubernetes

Some projects stick with you. For me, it was a little Slack bot I hacked together at a previous job—something that could talk to our infrastructure and give quick answers without switching tools. I ne

slackbotkubernetespython
Replatforming Airbyte: From Developer Laptop to EKS

Replatforming Airbyte: From Developer Laptop to EKS

In early-stage engineering teams, it's natural for tools to start out simple — often running on a single developer machine, just to get things moving. That’s how our Airbyte setup began: quick to spin

tailscaleairbytekubernetes
Swapping VPN for Tailscale: A Five-Day Internal Infra Upgrade

Swapping VPN for Tailscale: A Five-Day Internal Infra Upgrade

"How we started replacing our VPN with Tailscale, improved onboarding and access control, and reduced costs—all in five days."

tailscalevpnkubernetes
Goodbye Nginx, Hello Traefik! Effortless HTTPS with Let's Encrypt and Docker

Goodbye Nginx, Hello Traefik! Effortless HTTPS with Let's Encrypt and Docker

If you've struggled with Nginx reverse proxy configs, certbot timers, and `nginx -s reload`, it's time to meet Traefik — a modern reverse proxy built for dynamic containerized environments.

traefikssldocker
Page 1 of 3 Next