Minhu Park — Software Engineer. For the past two years I've built a clinic CRM across the stack — from a C#/WPF desktop app through a React web migration to Kotlin backend APIs. When I find a structural problem I propose a fix, and I automate whatever repeats.
I've been building a clinic CRM at SmartDoctor since 2024. I started out maintaining the desktop app (C#/WPF), took on the design and implementation of my modules in the web migration (React), and now build the backend APIs (Kotlin/Spring) as well. I believe development moves faster and stays more consistent when one person can handle everything from the frontend to the backend, and that's how I work today.
I prefer fixing structures over symptoms. I rebuilt a flow that re-fetched an entire screen whenever a single reservation changed into single-item updates, and isolated the 32-bit-only integration modules that blocked a 64-bit migration into a separate process, so the same problems don't come back.
I automate repetitive work. I moved release tagging, Jira version management, and reviewer assignment onto GitHub Actions, and brought Sentry and a load-time monitoring bot into an environment where errors used to be diagnosed from customer screenshots. I enjoy building tools that give the team its time back.
.NET · WPF · WinForms·WebView2 bridge·Inter-process communication (IPC)
Tooling · Observability
GitHub Actions·Sentry·GA4·Jira automation
3.Experience
Aug 2024 — Present
SmartDoctor
Software Engineer — Clinic CRM
Started with maintenance and feature work on the desktop CRM (C#/WPF), designed and built my modules in the web migration (React), and now develop the backend APIs (Kotlin/Spring) directly, expanding my scope across the stack
Owned the monthly reservation calendar, the clinical records screen, and a treatment history tool in the web migration, and split month-wide fetches into parallel weekly requests that can reuse the server’s date-range cache
Rebuilt the desktop refresh flow that re-fetched everything on a single reservation change into single-item updates, and proposed and led replacing the embedded browser (CefSharp → WebView2)
Ported three desktop-only screens with an 'add API → standalone web app → webview embed' pattern — cross-stack development across the web, API, and desktop codebases
Consolidated call-center option lookups into a batch API: 12 initial requests became 1 in a replay using the category count observed in production. A separate replay with 1,000 matched phone numbers eliminated 1,000 follow-up customer searches
Built mobile operations screens for Cashdoc’s clinic CMS and connected consultation notifications across four repositories. Staged deployment as schema → API → frontend → ingestion, so reverting the final ingestion step preserves the previous behavior
Replaced screenshot-based error reports with automated collection and alerting by introducing Sentry and building a GA4-based load-time monitoring bot
Built the release and review automation: automatic rc/hotfix tagging, Jira release creation, cherry-pick chaining across rc branches, and an AI code-review bot
SmartDoctor · Module design & implementation, plus the runtime foundation
A long-running migration of the desktop CRM's reservation and clinical screens to the web. I designed and built the reservation calendar and clinical records screen, alongside authentication, the native bridge, and WebView2 runtime deployment. I then established an 'add API → standalone web app → webview embed' pattern and ported three desktop-only screens.
Cross-stack development spanning the web, API, and desktop codebases
A new web module for collecting, assigning, and tracking consultation leads at clinic call centers. It talks to the telephony middleware over WebSocket to create leads from incoming calls automatically, and provides three intake channels — bulk Excel upload, individual registration, and incoming-call auto-creation — plus server-side filtering. Fixed field-reported issues in short cycles, including a race condition that duplicated leads on a single call and reconnection instability.
Replay with 12 categories observed in production: initial option requests 12 → 1, down 91.7%
React / TypeScript / Kotlin / WebSocket / MSSQL
Toss Payment Terminal Integration
2026
SmartDoctor · Across desktop, web, and backend
Integrated Toss payment terminals into the CRM checkout flow. Built a WebSocket client with automatic reconnection for the desktop (.NET) and a payment-session state machine for the web, and solved the multi-pod failure — where the payment plugin and the CRM connected to different pods and couldn't find each other — by replacing the in-memory session registry with a Kafka fan-out relay.
Proposed and designed the session routing for multi-pod environments
Kafka / WebSocket / C# / React / Zustand
64-bit Migration of the Desktop CRM
2025
SmartDoctor · Proposed and led
What blocked the CRM's 64-bit migration was the set of 32-bit-only DLLs for carrier telephony and payment terminals. I designed a structure that isolates them in a separate 32-bit process communicating with the main app over IPC, complete with lifecycle management, automatic restarts, and error logging. I also collected the OS bitness distribution of real installations via Sentry to ground the migration decision in data.
Cleared the path to 64-bit while keeping legacy integrations compatible
C# / .NET / WPF / IPC / Sentry
Cloud Code Signing Migration & Shared CI for Windows Apps
2026.08–09
SmartDoctor · Shared signing CI for internal Windows apps
Migrated Windows code signing to DigiCert KeyLocker in the cloud to address the management overhead and CI/CD constraints of physical USB authentication. Built a shared GitHub action for signing and verification that internal Windows apps can reuse in their existing build pipelines, and shared usage guidance with the team.
Reusable cloud code-signing CI across apps without physical USB dependence
GitHub Actions / PowerShell / DigiCert KeyLocker
Deploy Notification Relay
2026
SmartDoctor · Internal tool wired into the deploy pipeline
An internal tool built to cut down on everyone individually checking whether a production hotfix actually shipped. It listens for deploy webhooks, diffs the commit range against the previous deploy, and posts a completion reply on the Slack thread linked to whatever Jira issue keys show up in those commits. I judged that notifying on regular releases too would likely become noise, so it picks out hotfix-shaped deploys only, and when it doesn't have enough information to tell, it stays silent and logs a warning rather than risk a false report.
Built without being asked, and now a fixture of how the team operates
TypeScript / Vercel Functions / Slack API / Jira API
Personal · Research · Collaboration
LRAGE — Legal-Domain RAG Evaluation Toolkit
2024 — 2025
Open-source research · First author
An open-source toolkit for evaluating LLMs on legal tasks in RAG settings. It extends lm-evaluation-harness with retriever and reranker abstractions and LLM-as-a-judge evaluation, ships pre-built indexes for Pile-of-law, and provides a GUI. Validated on Korean (KBL), English (LegalBench), and Chinese (LawBench) legal benchmarks.
First-author demo paper on arXiv; live demo on Hugging Face Spaces
Python / lm-evaluation-harness / Pyserini / Hugging Face
A community where guitarists write down and share licks as TAB. I built a graphic TAB editor — click frets to input notes, with hammer-ons, bends, and other articulations rendered as real sheet music — plus everything a running service needs: accounts, visibility controls, an explore feed, likes, comments, collections, and a moderation queue.
Joint entry with an architecture teammate · Problem framing & argument development
A collaborative work imagining a future where behavior in spaces shaped by AI predictions reinforces those predictions. I helped frame the question of how lives never chosen can disappear from the data, structure the feedback-loop argument, and review the narrative and presentation.
2026 젊은 건축가포럼 건축상 · Selected Entry
Problem Framing / Feedback-Loop Argument / Narrative & Presentation Review
5.Education
Mar 2022 — Present
University of Seoul
B.S. in Computer Science
On leave of absence
6.Contact
Coffee chats, job opportunities, and collaboration proposals are all welcome.