Medgo
Dev Team Backend Engineer
2022.04 — 2023.06
Telemedicine and medication delivery platform startup with 300K cumulative downloads
Highlights
- Auth, appointment, and notification changes risked regressions in a single Express app.js — 3-stage progressive migration (single-file→layered→NestJS) + JS→TS, Reached 80% test coverage and established module/layer boundaries and team coding conventions
- Manual prescription entry bottleneck (3-5min per case) — Naver Clova OCR + MFDS (Korea FDA) API integration for full workflow automation, Pharmacist processing time 3–5min→30sec per prescription
- Status reflection delay in consultation/dispensing/delivery (tens of seconds) — Socket.IO real-time sync + Web Push notifications, Reduced to under 1 second, eliminated patient wait complaints
Projects
Auth Server Development
2022.04 (3 weeks)Built JWT-based unified authentication system to resolve subdomain session conflicts
- No unified authentication system for multi-subdomain architecture — Designed and implemented NestJS + JWT token authentication system, Unified auth across web (doctor/pharmacist/admin) + mobile app
- Session-based auth causing subdomain transition failures — Migrated from session-based to token-based authentication, Implemented seamless user transitions across subdomains
Tech Rationale
Structurally resolved subdomain cookie-based session conflicts with stateless JWT tokens. Chose MySQL over Redis for key management — Redis deemed over-engineering given traffic volume, prioritizing infrastructure simplicity.
Common Module Development
2022.05 ~ 2022.06Resolved code duplication and inconsistency from independent service management by consolidating shared modules
- No centralized permission verification across services — Implemented user permission verification middleware, Enhanced security with unified access control
Doctor/Pharmacist Web Service Enhancement
2022.04 ~ 2023.05Eliminated manual notification workflows and lack of real-time status updates in doctor/pharmacist back-office systems by introducing Socket.io and Web Push
- Duplicate appointment bookings causing scheduling conflicts — Implemented Doctor ID + time slot composite unique key constraint, Prevented duplicate appointments at the database level
- Status reflection delay (tens of seconds) in consultation/dispensing/delivery — Deployed Socket.IO Room-based real-time status sync reflecting events to relevant users instantly, Reduced delay to under 1 second, eliminated patient wait complaints
- External service failures (delivery, payment) cascading to main application — Architected internal API gateway integrating delivery (Hoodadak) and payment services with Circuit Breaker pattern, Isolated external-service faults to stop cascading failures
Tech Rationale
Used Socket.IO Room-based event isolation for real-time consultation/dispensing/delivery status sync. Integrated API gateway + Circuit Breaker to prevent external service failure propagation. Enforced duplicate reservation prevention via DB composite unique key.
Prescription OCR & Medication Guide System
2022.11 ~ 2022.12Automated pharmacist's manual prescription entry process using OCR
- Manual prescription text entry from images (3-5 min per case) — Integrated Naver Clova OCR API for automatic text extraction from prescription images, Automated prescription data entry
- Manual medication guide creation inefficiency — Developed automated medication guide generation using MFDS (Korea FDA) drug information API, Pharmacist processing time 3–5min→30sec per prescription
Tech Rationale
Selected Naver Clova OCR for Korean pharmaceutical terminology recognition. Integrated MFDS public data API instead of building proprietary drug database to minimize maintenance overhead.
Backend Architecture Migration
2023.03 ~ 2023.05Migrated from Express.js single-file (app.js) structure to NestJS modular architecture
- Express.js single-file (app.js) 10,000-line codebase unmaintainable — Executed 3-phase incremental migration: app.js single file → Layered Architecture (Controller/Service/Repository) → NestJS framework adoption, Migrated a 10,000-line single file to NestJS modules and established team coding conventions
- JavaScript code lacked type safety — Migrated JavaScript → TypeScript, Improved type safety
- Regression risk without tests — Introduced TDD and unit tests, Achieved 80% test coverage
Tech Rationale
Adopted NestJS DI/module system to resolve maintainability limits of 10,000-line Express single-file legacy. Minimized risk via 3-phase gradual migration (single file → layered → NestJS). Introduced TDD to prevent regression during migration.