Skip to main content

Posts

#9/10 | Spring Boot + Docker Compose: 7 Bugs That Broke My First Boot

Part 9 of 10 of Building Instagram's Authentication Backend . If you're just joining, the repo is here and you can catch the earlier parts on the YouTube playlist . Eight parts of code, zero runs By the end of part 8, every layer of this backend existed: DTOs, exceptions, entities, repositories, five services, a security filter chain and a controller. And I had never started the application. Not once. Everything so far was code I'd reasoned through and believed would work. This part is where that belief gets tested. We containerize the app, put Postgres, Redis and a fake mail server next to it, and bring all four up with one command. It did not work the first time, so this post is the real debugging session, with each bug, its symptom and its fix. If you're containerizing your own Spring Boot app, there's a good chance you'll hit at least one of these. In this post: A multi-stage Dockerfile for Spring Boot, line by line A docker-compose.yml ...
Recent posts

#10/10 | Spring Boot JWT Auth Live: Lockout, Rate Limit & Token Theft

Part 10 of 10 — the finale of Building Instagram's Authentication Backend . If you're just joining, the repo is here and the whole series is on the YouTube playlist . Booting isn't the same as working Last part, the app booted. Four containers, all healthy, Flyway running our migration against a real database for the first time. It felt like a finish line. It wasn't. A server that starts has only proved the wiring is intact. It hasn't proved that a user can register, that the email arrives, that a locked account stays locked, or that a stolen token gets caught. So for this last part I wrote no new code. I used the thing the way a real client would, then tried to break it on purpose. This post is the written version of that video, with every piece of code the demo touches next to the request that triggers it. You can follow along with nothing but curl , jq and the Docker Compose stack from part 9 . In this post: Register, read the OTP in MailHog,...

AI Isn't Replacing Software Engineers. It's Pricing Their Judgment.

A few months ago, in the same week, I read two headlines that had no business existing at the same time. One was about a company bragging that its engineers had basically stopped writing code — AI was doing it for them. The other was about a different company quietly rehiring the senior engineers it had laid off a year earlier, because the AI-built version of their product kept shipping bugs a human would have caught in code review. I run mock interviews for engineers trying to land their next role, and I teach backend development on this channel, so I hear both sides of this panic constantly — from people worried AI is about to make their job irrelevant, and from hiring managers quietly telling me the opposite. I wanted to stop going off vibes and actually dig into what was happening with real numbers. What I found didn't fit neatly into either the "AI is taking our jobs" camp or the "AI is overhyped nonsense" camp. It's stranger than both, and honestly...

Spring Boot REST Controller, Swagger & Cron Jobs (Ep 8)

Part 8 of Building Instagram's Authentication Backend . If you're just joining, the repo is here and you can catch the earlier parts on the YouTube playlist . We built an engine with no ignition Here's where we actually stood after seven parts of this series. We had a fully working AuthService — register, login, refresh, the works. We had a security layer sitting on top of it, filtering every request, deciding who's allowed where. We had entities, repositories, DTOs, a whole exception-handling backbone. And none of it had a URL. Not one line of that code could be reached from outside the JVM. No curl command, no Postman request, nothing. It's a strange feeling to have written that much working logic and still not be able to actually call any of it. So that's what this part is about — wiring up the front door. The controller, and why it's boring on purpose Here's the register endpoint, in full: @PostMapping ( "/registe...

Kubernetes & Amazon EKS Explained: A Beginner's Guide

Backend Deep-Dive · Beginner Friendly ~16 min read · Updated for 2026 · No prior experience required If the words Kubernetes and EKS have always felt like a wall of jargon, this is the guide that finally makes them click. We start from absolute zero — what a container even is — and build up, one idea at a time, until you can follow a single user request all the way through a real Amazon EKS cluster and back. Plain English, simple analogies, and a clear mental model instead of a pile of commands. Prefer to read? Everything in the video is written out below. Skim the table of contents and jump to whatever you need. TL;DR — the whole idea in six lines Containers pack your app and its environment together so it runs the same everywhere. Kubernetes is a manager that runs, heals, scales, and connects hundreds of containers for you. Every cluster has a Control Plane (the brain) and Worke...