Skip to content

JNPMedi

Dev2 Team Docs Squad Backend Engineer

2023.06 — 2024.08

Clinical trial data management solution startup with KRW 16B cumulative investment (MSA-based)

Highlights

  • 5+ monthly e-signature processing failures (clinical trial Deadlock) — Reproduced and identified FK shared lock deadlock pattern, Failures reduced to 0, Deadlock root cause eliminated
  • VDR project schedule delay under MVP launch pressure — 3-week emergency sprint (2 BE + 1 FE), Event-Driven PDF conversion + permission-based workflow, MVP launched on schedule
  • Delayed email failure detection (hours) — Constructed SES+SNS event pipeline, Bounce/complaint detection cut to seconds, Slack instant alerting (published tech blog)

Projects

Maven Docs Electronic Consent System

2023.07 ~ 2023.09

Resolved inefficiency in collecting participant consent and e-signature regulatory compliance using Cyan (in-house Node.js framework)

  • Inefficient individual consent dispatch for clinical trial participants — Created batch dispatch system for participant group management and batch consent dispatch, Streamlined consent collection per clinical trial
  • Opaque event flow from batch + S3 event-based processing — Migrated to EDA + Outbox pattern, Enabled event flow visualization and local test environment setup

Tech Rationale

Adopted EDA + Outbox pattern to eliminate synchronous service coupling. Designed plugin architecture for extensible input methods (text, checkbox, signature).

Contribution: Designed EDA transition, implemented plugin architecture, built batch participant registration with Signer table migration. 2-person BE team.
TypeScript Express.js Cyan Aurora Serverless v2 Knex.js

Maven Docs System Reliability Improvement

2023.08 ~ 2023.12

Resolved critical notification failures due to database Deadlocks in clinical trial e-signature notifications

  • Production Deadlock incidents in clinical trial e-signature notifications — Analyzed shared-to-exclusive lock timing during foreign key constraint enforcement, Identified root cause and prevented Deadlock recurrence
  • Synchronous notification processing causing cascading failures — Designed and implemented AWS SNS → SQS → Lambda Event-Driven pipeline, Decoupled notification delivery from main transaction flow

Tech Rationale

Identified FK child INSERT S-Lock → X-Lock escalation as deadlock root cause. Applied SELECT FOR UPDATE to pre-acquire X-Lock before INSERT, eliminating the deadlock ordering entirely.

Contribution: Independently performed deadlock reproduction, analysis, and resolution. Reproduced deadlock scenario with SQL in DBeaver and verified via INNODB lock tables.
TypeScript Express.js Cyan Slate.js SNS SQS Lambda React

Maven Mailing System Enhancement

2023.12 ~ 2024.02

Resolved lack of delivery status tracking and data consistency issues in email system

  • No email delivery status tracking — failures detected hours later — Configured SES Configuration Set → SNS → event processing pipeline with Datadog logging + Slack real-time alerts, Bounce/complaint detection cut to seconds with instant Slack alerting

Tech Rationale

AWS SES cannot synchronously confirm delivery status due to its async nature. Added SNS event destination to SES Configuration Set for async delivery/bounce/complaint event subscription.

Contribution: Designed and implemented SES Configuration Set → SNS → event processing pipeline. Led tech blog publication and internal seminar presentation.
TypeScript Express.js AWS SES Nodemailer

Maven Auth System Enhancement

2024.01 ~ 2024.02

Resolved user inconvenience and system scalability limitations from 1:1 user-organization structure

  • 1:1 user-organization structure limiting multi-organization management — Expanded user-organization relationship from 1:1 to 1:N structure, Enabled multi-organization management per user
  • API migration risking service downtime — Ensured backward compatibility throughout migration process, Achieved zero-downtime API migration with service continuity

Tech Rationale

Redesigned account-organization from 1:1 to 1:N to support clinical trial researchers participating in multiple organizations simultaneously. Added post-login organization selection flow for context switching.

Contribution: Full-stack change: schema migration, auth flow modification, and batch update of downstream service (Docs/Billing/Mailing) account-organization reference logic.
TypeScript Express.js Cyan Aurora Serverless v2

Maven TMF New Project Development (Frontend)

2023.06 ~ 2024.08

Frontend development for clinical Trial Master File (TMF) management system

  • No document management interface for clinical Trial Master File system — Implemented document upload, classification, version management, and Audit Trail functionality for Admin/Dashboard, Delivered complete TMF management frontend

Tech Rationale

Defined MVP scope focusing on core features (document upload, classification, version control, audit trail) under 3-month delivery constraint.

Contribution: FE developer in 1 BE + 2 FE team. Implemented Admin/Dashboard document upload, classification, and audit trail features.
React TypeScript Jotai

Maven VDR MVP Development

2024.06 ~ 2024.07 (3 weeks)

Emergency deployment for delayed VDR project under MVP launch pressure

  • Synchronous PDF conversion blocking document upload flow — Designed Event-Driven PDF conversion triggered by S3 upload → Lambda lightweight conversion → SNS/SQS notification, Delivered non-blocking document processing pipeline
  • No role-based document access control for medical workflows — Engineered permission-based workflow managing document access and approval by medical role, Secured compliant document access control
  • VDR project schedule delay under MVP launch pressure — Executed 3-week emergency sprint prioritizing core features, Delivered MVP on schedule meeting launch deadline

Tech Rationale

Designed EDA-based async conversion pipeline (S3 trigger → Lambda conversion → SNS/SQS notification) to structurally resolve synchronous PDF conversion timeout issues.

Contribution: 1 of 2 BE developers. Designed and implemented EDA document processing pipeline and large-scale async PDF conversion worker. Delivered MVP within 3-week emergency sprint.
TypeScript Lambda S3 SNS SQS

Maven Billing Subscription Management System

2023.06 ~ 2024.08

Subscription, plan, and license management system for all Maven services

  • No support for organization-specific subscription plans — Shipped org-specific custom plan Internal API, Facilitated tailored subscription offerings per organization
  • Non-renewable plans could be incorrectly renewed or re-subscribed — Added renewal/re-subscription blocking logic for non-renewable plans, Ensured business policy consistency for subscription lifecycle

Tech Rationale

Introduced event queue for async cleanup processing after subscription expiry. Enforced non-renewable plan re-subscription blocking via bundles.is_renewable schema attribute at the data level.

Contribution: Implemented org-specific custom plans, event queue-based inventory auto-deletion, and renewal eligibility logic. Multiple PRs directly contributed.
TypeScript Express.js Cyan Aurora Serverless v2 Knex.js

Activities

Email Delivery Monitoring through AWS SES Event Logs

Tech Blog
2024.03

Published technical article on building email delivery monitoring system using AWS SES event logs

Mailing System Email Delivery Result Tracking Feature

Internal Seminar
2024.02

Presented mailing system email delivery result tracking feature implementation and architecture

AWS SAA Study Group

Study Group
2023.09 ~ 2023.12

Internal study group for cloud architecture deep dive

Technical Skills

Node.js TypeScript Express.js Cyan Aurora Serverless v2 Knex.js Lambda S3 SNS SQS AWS SES Nodemailer Slate.js React Jotai