Skip to content

Writing

Contributing to Netty: Why Check the Direct Memory Limit?

Netty is a Java framework for building network servers and clients. It abstracts common work such as accepting connections, reading data, and sending responses, so application developers can focus on what to do with incoming data.

·backend

2.7× Request Throughput: Introducing Java Virtual Threads

A read API hit a p95 latency of seven seconds in a load test. Requests weren't failing.They were just slow. Throughput wouldn't climb past 16.6 requests per second either. Seven seconds wasn't something I could leave alone.

·backend

Turning Coding Test Results into Curriculum-Level Learning Diagnostics

‘Coding tests leave scores, but make it difficult to identify what students don't understand.This service uses NCIC informatics achievement standards to guide AI-generated questions and turn grading results into learning diagnostics.It aims to provide a diagnostic framework for roughly 70,000 coaching centers in India that lack a standardized curriculum.’

·thoughts

Refactoring an LLM Pipeline: Finding Where Tokens Leak

I have a pipeline that reads English technical articles and turns them into Korean introduction cards. It checks feeds from 178 vendors, selects useful material, writes cards, and serves them automatically. The output looks like this.

·ai

Where Do University Team Projects Go in the AI Transition?

During the first semester of my junior year, I split my time between university and work. At school, I did team projects. At work, I built services with AI. Both places used the word ‘collaboration,’ but they meant completely different things.

·thoughts

Turning ‘Make It Look Good’ into Code

Making Instagram carousel posts by hand for a service I operated had become tedious. I wanted to automate it with AI.

·ai

An ML Project Where We Decided Not to Build the ML Yet

For a semester-long team project, we built an Android app called Zansol. Open YouTube or Instagram during a study session, and a nudging popup appears within 0.2 seconds. Return to studying, and your character earns coins. Ignore it, and the character loses health.

·product

Moving a Production Database: Pressing a Button You Can't Undo

I stopped just before pressing Enter.

·infra

Let's Automate My Social Life

Replying on KakaoTalk has always been hard. I wondered whether developing social skills or outsourcing them would be faster, and leaned toward outsourcing. So I sat an agent in front of my chats.

·ai

A Sufficiently Detailed Specification Is Indistinguishable from Code

When Karpathy called English the hottest new programming language, many people nodded. So did I. After writing natural-language documents to control agents and repeatedly watching them break, I started to wonder: perhaps English hasn't become a programming language. Perhaps it only works when we write it like one.

·ai

Essential and Accidental Complexity: How Far Can Functional Programming Go in Spring?

An order service built with Kotlin and Spring usually looks something like this.

·backend

Choosing Transaction Boundaries: Narrowing Them with the Outbox Pattern

The reward-earning API, POST /rewards/earn, records a completed order in our database, writes an audit log, and synchronizes with a partner API.

·backend

Why Return to SQL in the Age of Vibe Coding?

While reviewing AI-generated JPA code, I repeatedly found myself asking: when does this query actually execute?

·backend

What Six Months of Building a Startup Taught Me

The word ‘sports’ usually sits next to professional leagues, broadcasts, and salaries. Our definition was different: if there's competition and an audience, it's a sport. Even rock-paper-scissors.

·product

Catching gRPC Schema Drift Automatically in Kubernetes

A client suddenly throws a runtime error, even though nobody changed its code. Hours of investigation often led to the same cause: someone changed a proto and deployed it to Kubernetes without updating BSR, the Buf Schema Registry. The client was built against BSR; the running server used a different schema.

·infra

A Familiar N+1 Problem: The 26× Speedup from Caching

While operating a sports social platform, I noticed how slowly the feed loaded. Introducing Caffeine caching reduced average response time from roughly 800 ms to 38 ms.

·backend