An executor,not a bystander.
Instead of watching trends, I learn by building real services.

Semin Kim
Agentic AI Engineer / Builder
Agentic AI Engineer &
Builder
I design and orchestrate agents to build E2E, A2A production systems.
AlgoSu · Algorithm study platform
Why not automate this repetitive work?
While running an algorithm study group, I experienced inefficiencies in code review — weekly manual reviews, inconsistent feedback, and difficulty tracking learning progress.
I decided to solve this with AI. Beyond simple code analysis, I built an intelligent platform that understands learning patterns and provides personalized feedback.
How the User Experience Changed
Before AlgoSu, the study lead handled every step by hand. Now it takes a few clicks after login.
Before — Manual Study Ops
After — AlgoSu Automation
CI/CD
7-stage 15 jobs — path filter, ARM64 cross-compile, Trivy security scan, GitOps auto deploy
Tech Decisions
k3s vs EKS/GKE
Needed production-grade Kubernetes on OCI ARM free tier (4 OCPU, 24GB). k3s is a 50MB binary using 512MB memory with full HPA, PDB, NetworkPolicy support — 100% cost reduction vs EKS/GKE.
FastAPI + NestJS
Claude SDK Python-first support + pydantic response parsing optimal for AI service. AI Analysis isolated in FastAPI, remaining 4 services unified in NestJS 10 for DI/TypeORM consistency.
RabbitMQ vs Kafka
1:1 Task Queue pattern fits small-scale study traffic. Runs on ARM free tier with 128Mi–512Mi memory. Built-in DLX→DLQ auto-isolation eliminates custom failure handling.
Agent Orchestration
12 AI Agent personas implemented directly via Claude Code slash commands. Role separation through prompt engineering alone — zero external dependencies like n8n or LangChain.
Saga Pattern
Needed atomicity for 3-step distributed transaction: submit→GitHub Push→AI analysis. Optimistic lock (WHERE sagaStep=EXPECTED) + step timeouts (5/15/30min) ensure idempotency. Sufficient reliability within ARM resource constraints vs Outbox pattern (Debezium CDC).
Troubleshooting
Data ownership must be settled in the first design
Gateway started with direct Identity DB access. Separation required 34 new APIs, 19 file refactors, 597 test modifications.
597 test modifications
Real-world constraints over textbook solutions
Outbox pattern (Debezium CDC) exceeded ARM free tier resources. Optimistic lock + timeout resume combo provided sufficient reliability for current traffic scale.
Prevent human error through CI automation
Amend commits bypassed paths-filter, causing missed service builds. Established force-push ban policy + enforced CI stage blocking.
Resource constraints are opportunities to eliminate overengineering
ARM free tier constraints drove DB connection pool 40→20, CI jobs 24→15 optimization, HPA auto-scaling adoption.
CI jobs -37.5%
Failures without logs are the most expensive tech debt
Intermittent Guard 403s with no logs made root cause untraceable. Caused by missing role validation on cache hits. Tests reinforced in Sprint 40.
CI/CD Pipeline
.github/workflows/ci.yml
7-stage 15 jobs — monorepo path filter + ARM64 cross-compile + Trivy security scan + GitOps deploy
# 1) 모노레포 변경 감지
detect-changes:
steps:
- uses: dorny/paths-filter@v3
with:
filters: |
gateway: ['services/gateway/**']
submission: ['services/submission/**']
# 2) ARM64 크로스컴파일 + Immutable 태그
build-services:
steps:
- uses: docker/setup-qemu-action@v3
with: { platforms: linux/arm64 }
- uses: docker/build-push-action@v5
with:
platforms: linux/arm64
tags: ghcr.io/tpals0409/algosu-${{ matrix.service }}:main-${{ github.sha }}
cache-from: type=gha,scope=${{ matrix.service }}
# 3) Trivy 보안 스캔
trivy-scan:
steps:
- run: trivy image --severity CRITICAL,HIGH --exit-code 1
- uses: github/codeql-action/upload-sarif@v3
# 4) GitOps 배포 (ArgoCD auto-sync)
deploy:
if: needs.trivy-scan.result != 'failure'
steps:
- run: git commit -m "deploy(algosu): update image tags" && git pushWriting
Documenting lessons learned from practice.
Learn. Build. Grow.
Open to hiring inquiries, tech discussions, and collaboration.
