Skip to main content

Posts

Showing posts from March, 2026

#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 ...

Arrays & Strings in Java Explained (DSA Guide for Beginners & Interviews)

Master Arrays & Strings Without Memorizing A simple way to actually understand DSA instead of getting stuck. You know arrays. You know strings. But can you solve this quickly? [2, 7, 11, 15], target = 9 Most developers struggle here — not because it’s hard, but because they don’t think the right way. Understanding Arrays (The Right Way) Think of an array like a row of boxes in memory. [10] [20] [30] [40] Index: 0 1 2 3 You can directly jump to any index. That’s why access is extremely fast. Access → O(1) Insert/Delete → O(n) Add your array visualization image here Where Arrays Become Slow [10, 20, 30, 40] Insert 15 at index 1 → [10, 15, 20, 30, 40] Everything shifts → that’s the cost. Let’s Solve a Problem [2, 7, 11, 15], target = 9 The beginner approach is brute force — try all pairs. It works… but it’s slow. The real question is: Can we avoid repeating work? Two Pointer Thinking If the array...

Java Functional Interfaces and Lambda Expressions Explained (Complete Java Tutorial)

Modern Java programming has evolved significantly since Java 8 introduced Lambda Expressions and Functional Interfaces . These features allow developers to write cleaner, more expressive code and reduce unnecessary boilerplate in modern backend development . Before Java 8, developers often had to write anonymous classes even for very small pieces of logic. This made the code verbose and harder to maintain in large applications. Lambda expressions and functional interfaces solved this problem by allowing behavior to be passed as data, making Java code shorter, clearer, and easier to work with. In this guide, you will learn: What a Functional Interface is in Java What Lambda Expressions are and how they work Built-in functional interfaces used in real applications Best practices for writing clean lambda expressions Common mistakes developers make This tutorial is beginner-friendly and also useful for developers preparing for Java developer interviews . Wat...

Java Exception Handling Best Practices (10 Rules Every Developer Must Know)

Exception handling is one of the most important concepts in Java programming. Whether you are a beginner learning Java or an experienced developer building real-world applications, understanding Java exception handling best practices is essential. Poor exception handling can cause several problems in applications such as: Hidden bugs that are difficult to detect Messy and confusing logs Difficult debugging during production issues Poor application design In this guide, you will learn: What exceptions are in Java The difference between checked and unchecked exceptions Important Java exception handling features 10 best practices used in real-world Java applications This guide is beginner-friendly and also useful for developers preparing for Java developer interviews . Watch the Video Explanation Watch the full video explanation below: Why Exception Handling Matters In Java, exceptions are how the system communicates failures or unexpect...