Skip to content

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.

Contribution: Independently designed and implemented over 3 weeks. Covered entire auth system for web (doctor/pharmacist/admin portals) + mobile app.
NestJS TypeScript JWT MySQL

Common Module Development

2022.05 ~ 2022.06

Resolved 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
NestJS TypeScript

Doctor/Pharmacist Web Service Enhancement

2022.04 ~ 2023.05

Resolved 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.

Contribution: Directly implemented Socket.IO real-time sync, Web Push notifications, API gateway, and reservation dedup in 2-person BE team.
Express.js NestJS TypeScript EJS MySQL Socket.io Web Push

Prescription OCR & Medication Guide System

2022.11 ~ 2022.12

Automated 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.

Contribution: Independently implemented over 2 months. Built entire pipeline: image intake → OCR extraction → MFDS API matching → medication guide generation.
NestJS TypeScript Naver Clova OCR MySQL

Backend Architecture Migration

2023.03 ~ 2023.05

Migrated 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.

Contribution: Led independently. Performed all 3 migration phases, JS→TS migration, TDD adoption, and team coding convention establishment.
NestJS TypeScript TypeORM Jest MySQL

Technical Skills

NestJS Express.js TypeScript TypeORM EJS MySQL JWT Socket.io Web Push Naver Clova OCR Jest