Skip to main content

Code. Vibe. Break. Fix. Write about it.

A technical blog where I document what I learn, the bugs I fight, and the solutions I find — mostly in Java, Spring Boot, and AWS, with the occasional Next.js or Vaadin detour.

Sometimes it's a tutorial. Sometimes it's a note to my future self. Sometimes someone else writes here too.


What you'll find here

Backend
#

Java, Spring Boot, REST APIs, microservices, design patterns, and everything that runs on the server side.

Cloud & DevOps
#

AWS services, infrastructure as code, CI/CD pipelines, Docker, monitoring, and scaling systems.

Frontend & More
#

Next.js, Vaadin, JavaScript — the parts of the stack I’m still figuring out. Plus general dev notes and guides.


New here? Check out the latest posts or browse by category.

Recent

Checked vs Unchecked Exceptions in Java — A Deep Dive

Every Java developer hits exceptions early. But the difference between checked and unchecked exceptions — and when to use which — trips people up for years. This post goes deep. The Exception Hierarchy # Everything starts from Throwable: Throwable ├── Error (unchecked — don't catch these) │ ├── OutOfMemoryError │ ├── StackOverflowError │ └── ... └── Exception (checked — must handle or declare) ├── IOException ├── SQLException ├── ... └── RuntimeException (unchecked — optional to handle) ├── NullPointerException ├── IllegalArgumentException ├── ArrayIndexOutOfBoundsException └── ... The rule is simple:

Hello World — Why This Blog Exists

Every developer has a blog they keep meaning to start. This is mine. I’ve been a backend engineer for a few years now, mostly working with Java and Spring Boot on large-scale systems. Along the way I’ve accumulated a lot of notes, debugging steps, architectural decisions, AWS gotchas, the occasional frontend struggle. Most of them live in handwritten notes, Notepad++, Obsidian, and the occasional PlantUML or Mermaid diagram. I’ve also shared some of these notes with colleagues on Teams, and sometimes on Slack.