AI 모델을 프로덕션에 안정적으로 서빙하는 DevOps 엔지니어
DevOps engineer specializing in deploying AI models (LLM, OCR, Embedding) to on-premise and Kubernetes environments. Delivered AI solutions to 10+ projects across finance, manufacturing, education, and public sectors.
- 🏢 Upstage — AI DevOps Engineer (2024.11 ~)
- 🟢 LINE — Software Engineer / DBA (2021.11 ~ 2024.11)
| Certification | Issuer | Date |
|---|---|---|
| Kubestronaut (CKA + CKAD + CKS + KCNA + KCSA) | CNCF | 2025 |
| CKA (Certified Kubernetes Administrator) | CNCF | 2023.12 |
| CKAD (Certified Kubernetes Application Developer) | CNCF | 2024.11 |
| KCSA (Kubernetes and Cloud Native Security Associate) | CNCF | 2025.07 |
| 정보처리기사 | 한국산업인력공단 | 2021.06 |
| 빅데이터분석기사 | 한국데이터산업진흥원 | 2023.08 |
@ Upstage — On-premise & K8s delivery of AI products (LLM, OCR, EWS)
- 🏗 Generative AI (Finance) — Helm-based AI solution on GPU K8s cluster, NVIDIA MIG, monitoring stack
- 📊 DevOps Helm Standard — Helm charts for serving LLM & Document Processing models, v1.0 release, GitOps with ArgoCD
- 🖥 Education Platform — Operated large-scale GPU multi-cloud cluster (IPSec VPN)
- 🏭 Manufacturing · Insurance · Public — OCR/LLM/EWS install, SSO·LDAP·DRM integration, load testing
- 🤖 k13d — Building a natural language Kubernetes dashboard (docs)
@ LINE — Large-scale distributed database (Apache HBase) operations & tooling · ▶ Job Interview
- 🔄 Led HBase open-source migration (cluster build, load testing, data integrity verification)
- 🛠 HBH (HitBaseHandler) — Designed and built Django-based cluster management tool
An 8-node kubeadm cluster at home that runs TT Lab: a hands-on DevOps learning platform (real root shells in isolated lab pods and KubeVirt VMs) and AI services such as a real-time table tennis scoreboard.
| Node | Role | CPU · RAM | GPU | Runs |
|---|---|---|---|---|
| cubi01–03 | Control plane (etcd quorum) | 4 vCPU · 15 GiB each | — | API server, etcd |
| nuc1, nuc2 | Worker | 22 vCPU · 30 GiB each | RTX 4070 Laptop (8GB) | TT Lab web, CI/CD, AI serving (TTS, LLM) |
| omen | GPU worker | 24 vCPU · 61 GiB | RTX 3090 (24GB, time-sliced ×5) | Real-time ball tracking & scoring, table segmentation |
| loq | GPU worker | 16 vCPU · 14 GiB | RTX 4060 Laptop (8GB) | Git hosting, registry, ML experiments & fine-tuning |
| dell | VM worker | 16 vCPU · 22 GiB | RTX 3060 Laptop (VFIO passthrough) | KubeVirt VMs with GPU |
Stack — Kubernetes v1.34 · Cilium 1.20 (Gateway API, FQDN egress policies) · MetalLB L2 · Argo CD · Jenkins · Gitea · Harbor · Keycloak SSO · CloudNativePG · KubeVirt + CDI · NVIDIA GPU Operator · Istio · Airflow · Prometheus · Grafana · OpenTelemetry
Write-ups — Postmortems, measurements and study notes from running it are on the TT Lab blog.
| Project | Description | Tech |
|---|---|---|
| k13d | Natural language Kubernetes dashboard · docs | Go, Claude Code |
| fingerscore | Real-time sports score platform | Next.js, Supabase |
| ai-shorts-generator | Automated AI shorts video pipeline | Python, Wan2.1/2.2 |
| ai-stages-kubevirt | KubeVirt-based AI training environment | KubeVirt, K8s |
I contribute to the cloud-native and AI-infrastructure projects I run in my home lab, and back each change with measurements from a real cluster. Main focus: KubeVirt and CloudNativePG.
Merged
| Project | PR | Change |
|---|---|---|
| Apache HBase | #5927 | Fix RowTooBigException on a duplicate increment RPC (HBASE-28599) |
| SeaweedFS | #11755 | weed mini help: mini.options and Docker filer.toml pitfalls |
| Grafana Helm charts | #896 | Document that the admin password is only applied on first start |
| llm-d | #2835 | Replace vLLM metric names that vLLM no longer exports |
| Helm docs | #2307 | Document that lookup only runs for template, install and upgrade |
| alpine/k8s | #99 | Point eksctl and jq downloads at their current repositories |
In review (October 2026)
- Virtualization — KubeVirt user-guide #1040 · CDI #4318 · kubernetes-mcp-server #1518 · NVIDIA kubevirt-gpu-device-plugin #222 · virt-template #137
- Databases & storage — CloudNativePG barman-cloud #1164 #1166 · ClickHouse #126337 · zstd #4847 · RocksDB #15418 · Harbor #24164
- Kubernetes & networking — Envoy #48408 · MetalLB #3156 · Argo Workflows #17246 · k9s #4298 · eBPF Docs #301 · k8s-sidecar #661 · podman-compose #1585 · Keycloak (codecentric) chart #939
- GPU & AI infrastructure — NVIDIA GPU Operator #3086 · NVIDIA cloud-native-docs #524 · DCGM Exporter #760 · Dynamo #16465 · vLLM production-stack #1147 #1148 · LMCache #5814 · NeMo #16396 · Slinky Slurm operator #272
- AI frameworks & apps — LlamaIndex #23548 · models.dev #10155 · LobeHub #21026 · MediaPipe #6381 · Gemini cookbook #1433 · Hermes Agent #140057 · MiniMind #889
- Observability & IaC — Grafana Tempo chart #898 · OpenSearch docs #13346 · Ansible docs #4077 #4078 · community.general #12997 · Terraform local provider #533
- Python web — python-multipart #338 · prometheus-fastapi-instrumentator #403
- Robotics — PX4 Autopilot #29271
→ All my open-source pull requests · write-ups of merged changes on the TT Lab blog
- 🥈 Naver Clova AI-Rush 4th (2021)
- 🥇 고양시 메이커톤 대상 (2018)
- 📊 KLUE 뉴스 토픽 분류 AI 경진대회 27/256 (상위 11%)
"Building reliable AI infrastructure, even in air-gapped environments."


