Medgo
Dev Team Backend Engineer
2022.04 — 2023.05
Telemedicine and medication delivery platform startup with 300K cumulative downloads
Highlights
- Express.js single-file (app.js) 10,000-line legacy maintainability limits — 3-stage progressive migration (single-file→layered→NestJS) + JS→TS, TDD 80% coverage, zero incidents during major releases
- Manual prescription entry bottleneck (3-5min per case) — Naver Clova OCR + MFDS (Korea FDA) API integration for full workflow automation, Pharmacist processing time cut 90% (3-5min→30sec)
- 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, Established centralized auth infrastructure
- Session-based auth causing subdomain transition failures — Migrated from session-based to token-based authentication, Enabled reliable 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.05Resolved lack of real-time status updates and manual notification workflows 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, Achieved fault isolation preventing 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, Reduced pharmacist processing time 90% (3-5min→30sec per prescription)
Tech Rationale
Selected Naver Clova OCR for Korean pharmaceutical terminology recognition. Leveraged 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, Achieved modular architecture with clear separation of concerns
- JavaScript lacking type safety causing runtime errors — Migrated JavaScript → TypeScript across the codebase, Established type safety and improved developer experience
- No automated testing culture or regression safety net — Introduced TDD practices with comprehensive unit tests, Achieved 80% unit test coverage, zero incidents during major releases
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.