About

About

Hi, I’m Geomseong Ahn, a product engineer based in Korea.

This blog is where I write down the problems I run into while building and running software, the calls I made, and how they turned out.

What I do

From 2023 to 2025 I worked on Spring Boot backends at a travel platform company. The early posts here (JPA and Querydsl performance work, Redis distributed locks, rolling out Kong as an API gateway) come from that time.

Since 2025 I’ve been a product engineer at a manufacturing company. I design our internal platform from scratch and own it all the way through deployment and operations. The recent posts are a record of the decisions I’ve made along the way, and why.

What I write about

  • Backend: Spring Boot and JPA performance, concurrency control, circuit breakers, module structure
  • Auth and security: JWT session design, making permission changes take effect immediately, cookies and BFFs
  • Frontend and real-time: running Next.js in production, WebSocket reconnects, unread counts
  • Infrastructure and deployment: zero-downtime deploys on bare metal with Kamal, API gateways, containers
  • AI-native development: adopting coding agents and building a harness for them, LLMs inside the product

How I write

  • Start with the problem. What broke, and why it mattered.
  • Show the reasoning. Which options I compared and why I picked the one I did.
  • Make it reproducible. The actual code and config I shipped, plus the numbers I measured.

These are the decisions I made at the time, not the one right answer. If you know a better way, I’d love to hear it.

Contact

The original posts are written in Korean, and the English versions are adapted from them. If you spot a mistake or have a question, leave a comment or drop me an email.