Latest Content & Resources

Explore my latest blog posts, cheatsheets, code snippets, DevTips, flashcards, glossary entries, quizzes, and roadmaps. Real-world insights from production environments and battle-tested practices.

Testing Terraform: Static Analysis, Native Tests, and Terratest

Testing Terraform: Static Analysis, Native Tests, and Terratest

If you treat infrastructure as code, you have to test it like code. Most of us have lived the alternative. You change one input on a shared module, run a quick plan against staging, and merge. A few h

tRPC: End-to-End Type-Safe APIs in TypeScript Without Codegen

tRPC: End-to-End Type-Safe APIs in TypeScript Without Codegen

The line between the frontend and the backend has always been a place where types go to die. In a normal REST setup you define the shape of a request and a response on the server, then you write those

FinOps in Practice: How to Build a Cloud Cost Accountability Culture on AWS

FinOps in Practice: How to Build a Cloud Cost Accountability Culture on AWS

Cloud computing changed how businesses pay for technology. Instead of a slow procurement cycle to buy physical servers, a single engineer can spin up thousands of dollars of infrastructure in minutes.

AWS DynamoDB CRUD Operations in Node.js with the AWS SDK v3

AWS DynamoDB CRUD Operations in Node.js with the AWS SDK v3

Quick Tip Wrap the low-level DynamoDB client in a DynamoDBDocumentClient so you pass plain JavaScript objects in and get plain objects back, then guard your writes with ConditionExpression an

Python Async HTTP Requests with aiohttp: Fetch Multiple URLs Concurrently

Python Async HTTP Requests with aiohttp: Fetch Multiple URLs Concurrently

Quick Tip Reuse one aiohttp session, fan your requests out with asyncio.gather, and cap them with a semaphore to fetch hundreds of URLs in the time one loop would take. The Problem **The

Bash Retry Function: Automatically Retry Failing Commands with Exponential Backoff

Bash Retry Function: Automatically Retry Failing Commands with Exponential Backoff

Quick Tip Wrap any flaky command in one reusable retry function and stop re-running red pipelines by hand. The Problem The Problem Some commands fail for reasons that have nothing to

Building an Internal Developer Platform on Backstage and GitOps

Building an Internal Developer Platform on Backstage and GitOps

Product teams were spending more time waiting on the platform team than building features. Spinning up a new service meant opening a ticket, waiting for someone to provision a repo, wire up CI, write

Zero-Downtime PostgreSQL Major-Version Upgrade at Scale

Zero-Downtime PostgreSQL Major-Version Upgrade at Scale

A multi-terabyte PostgreSQL 12 database was reaching end of life, and the business ran around the clock, so the usual answer of "schedule a maintenance window" was off the table. We upgraded it to Pos

Migrating a Monolith to Kubernetes Without a Big-Bang Cutover

Migrating a Monolith to Kubernetes Without a Big-Bang Cutover

Almost every failed "let's move off the monolith" project shares one detail: the plan was a big-bang cutover. Rewrite in parallel, pick a weekend, flip the switch, and pray. This is the opposite of th

GitHub Actions Secrets and Environment Variables: Handle Config the Right Way

GitHub Actions Secrets and Environment Variables: Handle Config the Right Way

Why Secrets Handling Matters? Most CI leaks are config mistakes, not attacks Hey, want to stop leaking credentials in your pipelines? Most secret leaks in CI are not the result of some cl

Docker Multi-Stage Builds: Smaller, Safer Images for Production

Docker Multi-Stage Builds: Smaller, Safer Images for Production

Why Multi-Stage Builds Matter? Small images are not just about disk space Hey, want to stop shipping a toolshed to production? If your Dockerfile builds and runs the app in one stage, you

ArgoCD GitOps: Sync Kubernetes Deployments Automatically from Git

ArgoCD GitOps: Sync Kubernetes Deployments Automatically from Git

Why GitOps for Kubernetes? From kubectl apply to Git as the source of truth Hey, want to stop deploying to Kubernetes by hand? If your releases still come from someone running `kubectl ap

Terraform Associate Flashcards (TA-003)

Terraform Associate Flashcards (TA-003)

Full exam coverage for the HashiCorp Certified Terraform Associate (TA-003) exam using spaced repetition. Covers IaC concepts, CLI, HCL, state, modules, backends, and Terraform Cloud.

Kubernetes Administrator Flashcards (CKA)

Kubernetes Administrator Flashcards (CKA)

Full exam coverage for the Certified Kubernetes Administrator (CKA) exam using spaced repetition. Covers cluster architecture, workloads, scheduling, networking, storage, security, and troubleshooting.

AWS SysOps Administrator Associate Flashcards (SOA-C02)

AWS SysOps Administrator Associate Flashcards (SOA-C02)

Full exam coverage for the AWS Certified SysOps Administrator Associate (SOA-C02) exam using spaced repetition. Covers monitoring, reliability, deployment, security, networking, and cost optimization.

Kubernetes Advanced

Kubernetes Advanced

This glossary covers the advanced Kubernetes terminology platform engineers rely on, from scheduling and networking to storage, security, extensibility, and the workload controllers that keep applicat

Cloud Computing on AWS

Cloud Computing on AWS

This glossary covers the essential Amazon Web Services terms every cloud engineer and architect should know, from compute and storage to networking, databases, and the identity controls that keep it a

Networking Fundamentals

Networking Fundamentals

This glossary covers the core networking concepts every developer, DevOps engineer, and system administrator should know, from how data is layered and addressed to how it gets routed across the intern

Spring Boot: Java Application Framework Essentials

Spring Boot: Java Application Framework Essentials

Spring Boot removed most of the ceremony from Java backend development, but the framework still does a lot of work you cannot see. This quiz walks through dependency injection, auto-configuration, RES

Java: Core Language & JVM Fundamentals

Java: Core Language & JVM Fundamentals

  • Java
  • JVM
  • 20 Questions
  • ~5 min
  • 01 Aug, 2026
  • Level: Intermediate

Java has quietly powered banks, Android, and countless backend systems for decades, and the language keeps evolving with records, sealed classes, and virtual threads. This quiz walks through the core

Rust: Ownership, Borrowing & Memory Safety

Rust: Ownership, Borrowing & Memory Safety

This quiz tests your grip on the parts of Rust that trip up newcomers and pay off later: ownership and moves, borrowing and lifetimes, traits and generics, pattern matching, error handling with `Resul

Backend Developer Beginner to Expert

Backend Developer Beginner to Expert

Backend Developer Beginner to Expert This roadmap walks you from your first server-side program to designing scalable, secure systems. Work through the stages in order: nail a language, the command

Frontend Developer Beginner to Expert

Frontend Developer Beginner to Expert

Frontend Developer Beginner to Expert This roadmap walks you from absolute beginner to a strong, hireable frontend engineer. Work through the stages in order: the early ones build the mental model

Release Engineer Beginner to Expert

Release Engineer Beginner to Expert

This roadmap takes you from release engineering principles and version control mastery through to advanced GitOps patterns and multi-account AWS delivery at scale. Each stage builds on the last treat