Hyeonjun Kil
A local-first work planner that combines recognized load, actual work, leave, and daily/weekly caps into one deterministic allocation contract, exposing infeasible targets as explicit gaps instead of forced over-allocation.
| Performance Metrics | Before | After |
|---|---|---|
| Infeasible state | Risk of forced allocation | insufficient_slots + gap (hard limits preserved) |
| Date-change scope | Risk of full-month overwrite | fixed date + remainder redistribution (preview and redistribution boundary) |
Problem Solving
Tech Decisions
- •Restored the existing _minimum_activation flow so minimum work remains a selective activation floor rather than a mandatory seed
- •Kept the decision surface reproducible through URL/local state without adding external-system integration
Highlights
- •One allocator contract for fixed-plan priority, selective minimum activation, and hard-limit preservation
- •Infeasibility exposed as a remaining gap and reason
- •Date-override preview and redistribution calculation for remaining dates
- •Synthetic scenarios, public-boundary scan, and Python/Playwright CI
Lessons Learned
- •A planner must model infeasibility before optimizing, or it will distort reality.
- •User overrides remain predictable when the fixed scope is separated from redistribution of the remainder.
A public launcher that isolates global Claude Code, Codex, and Kiro state into project-scoped boundaries and blocks invalid workspaces or configuration drift before startup.
| Performance Metrics | Before | After |
|---|---|---|
| Runtime isolation | Projects shared global CLI state | Runtime homes per registered project (Sessions, skills, MCP tools, and policy stay boundary-scoped) |
| Boundary resolution | Risk of profile inference from names or remotes | One owning boundary from the canonical path (Outside, escaped, or ambiguous paths stop before AI CLI startup) |
| Public verification | Evidence depended on a private environment | Public launcher + contract demo + CI (Core contracts and failure behavior reproduce without login) |
Problem Solving
Concert reservation project that verifies same-seat booking and wallet payment with optimistic and Redisson locks, then reduces cache-stampede p95 from 5.74s to 676ms through cache warming and TTL changes in the public load-test report
| Performance Metrics | Before | After |
|---|---|---|
| Reservation p95 | 5.74s | 676ms (cache warming + TTL 2m→5m) |
| Reservation error rate | - | 0.64% (394 failures in the reservation scenario) |
| Queue p95 | - | 62.5ms (0% error rate in the queue scenario) |
Problem Solving
Tech Decisions
- •@Version optimistic locking for seats: a 100-thread same-seat integration test asserts one reservation row
- •Per-user Redisson locking for payment and charging: 100-thread tests compare payment state and final balance with expected values
- •Redis Sorted Set queue: scores track entry order and expiry state
- •Create a PENDING outbox record in the payment transaction, then let the scheduler manage publication-failure and retry paths
Highlights
- •One reservation row after a 100-thread same-seat integration test
- •Per-user Redisson serialization for wallet and payment paths
- •Public-report p95 5.74s → 676ms after cache warming and TTL changes
- •PENDING outbox in the payment transaction plus scheduler publication and retry paths
- •Configured 3,000 requests/s and 2,400 max VUs kept separate from observed outcomes
Lessons Learned
- •Separated optimistic locking for same-seat contention from per-user distributed locking for wallet contention
- •Kept configured k6 rate and max VUs distinct from observations reported by the load test
A shared household budget that turns daily income and expense entry, joint and individual ownership, purpose accounts, and recurring plans into one month-end decision.

| Core system design | Before | After |
|---|---|---|
| Operational source of truth | Spreadsheet-led entry and interpretation | Application-owned writes (Historical sheets remain a read-only import boundary) |
| Plan ≠ actual | Expected rules confused with actual income and spend | Rule · occurrence · actual separation (Expected, actual, and variance stay independently traceable) |
| Duplicate and ambiguity control | Risk of creating a new actual despite an existing candidate | Link first · confirm · read back (Partial success and reopen remain explicit) |
Key problem solving
A five-game realtime service where mobile clients request actions and a room-scoped Durable Object owns phase, turn, hidden information, and reconnect behavior.
A mobile-first dashboard that normalizes job-platform and hospital-career-page sources, explains deadline/region/employment recommendations, and keeps account-scoped application state.
A current-day dispatch ledger for route, vehicle, and statistics views, with singleton collection ownership and a fixed browser data boundary
Bot that crawls weekly cafeteria menus from Kakao Channel via Playwright and auto-delivers to Slack — Clean Architecture + TSyringe DI, Slack Bot API slash command, up to 6 retries, DeliveryHistory duplicate prevention
Backend developer in 8-member cross-functional team building a startup vertical network platform — designed and implemented core community APIs on NestJS, integrated 4 OAuth 2.0 social login providers, built independent admin backend across 2-month sprints