Managing Secrets and CI/CD with Terragrunt
Learn how to manage secrets securely and integrate Terragrunt into your CI/CD pipelines to automate Infrastructure as Code deployments in production.
Building and learning.
A place where I share lessons, experiences, and technical notes on backend development, system design, and the tools I use.
Recent notes
What I've been writing about lately.
Learn how to manage secrets securely and integrate Terragrunt into your CI/CD pipelines to automate Infrastructure as Code deployments in production.
Learn how Terragrunt helps manage multiple environments and AWS accounts consistently while eliminating duplicated configuration and scaling Infrastructure as Code for enterprise environments.
Learn how Terragrunt automatically manages dependencies between Terraform projects, builds dependency graphs, and deploys infrastructure in the correct order.
Recent series
Collections of notes organized around a single topic.

A practical series about learning, designing, and applying Infrastructure as Code with Terraform and Terragrunt. It covers Terraform fundamentals, state, modules, Terragrunt project structure, Terraform Cloud, and lessons learned from building and managing production infrastructure.

Understanding the **Java Virtual Machine (JVM)** is one of the most important foundations for any Java developer who wants to deepen their knowledge. The JVM is not simply a “black box” that runs Java applications. It is a sophisticated runtime system responsible for memory management, class loading, bytecode execution, and performance optimization through advanced compilation techniques. In this series, we will explore the internal components of the JVM in a clear and approachable way. Each article will focus on a specific topic while building upon the previous ones, helping you gradually understand how Java actually works under the hood.
What I write about
Spring Boot, Modulith, JPA, caching, events, and backend architecture.
App Router, MDX, SEO, RSC, frontend architecture, and web performance.
Docker, Kubernetes, CI/CD, JVM runtime tuning, and production operations.
Trade-offs, boundaries, scaling patterns, and pragmatic architecture decisions.
How I build
I like building systems that are easy to understand and maintain. I focus on clear contracts and sensible defaults rather than over-engineering.