👋 Welcome! A tech blog where a backend developer shares experiences in Backend, Infrastructure, Troubleshooting, and more ✨

CI Took 45 Minutes After Switching to Modular Monolith - Optimizing Our Spring Test Pipeline by 77%

Hi, I’m Jeongil Jeong, a backend developer working at a proptech platform. In a previous post, I wrote about how I, as the sole remaining backend developer, consolidated 13 microservices into a modular monolith. At the end of that post, I mentioned: “After the transition, we experienced CI test buil...

Read more →

February 27, 2026

MSA Was Too Much for Us - Our Journey to Modular Monolith

Hello. I’m Jeongil Jeong, a backend developer working at a proptech platform. Our company had successfully completed a zero-downtime migration from a legacy Java Servlet monolithic service to MSA and was operating it in production. The process wasn’t easy, but we learned a great deal by experiencing...

Read more →

February 20, 2026

The Ever-Changing AI Coding Agent Ecosystem: oh-my-opencode, oh-my-claudecode, OpenClaw, Agent Teams

Hello. I’m Jeongil Jeong, a 3rd-year backend developer working at a proptech platform. The AI coding tool ecosystem has been changing incredibly fast lately. A tool that was trending a few days ago gets blocked the next week, then ships as an official feature the week after… It’s been a rollercoaste...

Read more →

February 9, 2026

3AM Error Alerts? Let AI Fix Them: Automating Error Response with OpenClaw

Hi, I’m Jeongil Jeong, a 3-year backend developer working at a proptech platform. TL;DR I automated 3AM error alert responses with OpenClaw. Using Loki/Tempo polling + Telegram Forward hybrid approach, AI handles everything from error analysis to PR creation, while humans only review code. AI ag...

Read more →

February 6, 2026

What Happens When You Skip DB Normalization — A Firsthand Experience

Everyone knows database normalization is important, but in practice, it seems surprisingly easy to overlook. There are plenty of moments where denormalization wins out for reasons like “one fewer JOIN means better performance” or “it’s just easier to store it as text.” I joined my current team in Ma...

Read more →

February 3, 2026

Understanding RPC: JSON-RPC, gRPC, and Common Misconceptions

A while ago, while writing about MCP (Model Context Protocol), I found myself dealing with JSON-RPC. As I was writing, a question popped into my head. “JSON-RPC and gRPC are said to be lightweight, but how are they different from REST over HTTP?” To answer this question clearly, I realized I needed ...

Read more →

January 27, 2026

Understanding MCP (Model Context Protocol): A Standard Protocol Connecting AI to External Systems

Lately, there’s been a lot of talk about MCP (Model Context Protocol) in the AI field. In a previous post, I shared my experience building and using my own MCP server. However, while using MCP, I had questions like “What exactly is MCP’s structure?” and “How does the LLM communicate with the MCP ser...

Read more →

January 25, 2026

[Reflections on MSA 7/7] Do We Really Need MSA?

Previous: [Reflections on MSA 6/7] Event-Based Data Consistency Issues and Solutions in MSA Over the past six parts, we’ve explored various aspects of MSA. How to divide services, how to communicate between them, how to respond to failures, and how to separate data while maintaining consistency. I’v...

Read more →

January 22, 2026

[Reflections on MSA 6/7] Event-Based Data Consistency Issues and Solutions in MSA

Previous: [Reflections on MSA 5/7] How Should We Separate Data? In the previous part, we explored why we should separate DBs in MSA environments and how to solve the JOIN problem after separation. There were two methods: API Composition and Data Replication. But choosing “data replication” doesn’t m...

Read more →

January 21, 2026

[Reflections on MSA 5/7] How Should We Separate Data in MSA?

Previous: [Reflections on MSA 4/7] How Failures Propagate and Where We Should Break the Chain In the previous part, we explored how failures propagate in MSA environments and various patterns to prevent them. From Timeout, Retry, to Circuit Breaker, there were many different approaches. But there’s ...

Read more →

January 20, 2026