Dongho Kang
강동호
Software engineer focused on solving operationally complex problems and delivering reliable, polished products. I contribute from product planning through production operations, with customer experience as a primary design constraint. At VoltUp, I work across billing, customer-facing, charging, and roaming services in a microservices architecture.
Experience
LG Uplus VoltUp
(Software Engineer)EV charging joint venture between LG U+ and Kakao Mobility.
- Payments & Billing — Built multi-provider payment architecture and dead-letter queue (DLQ) recovery, preventing duplicate charges with database-backed atomic approval locks
- Promotions & Customer Products — Built reusable coupon and points systems, customer-facing backend services, and the VoltUp mobile app
- Reliability — Standardized graceful Pub/Sub shutdown and isolated external API failures across microservices
- Developer & AI Tooling — Built specialist-agent routing, first-pass log diagnosis, shared CI/CD workflows, and automated technical documentation
Kakao Style
(Backend Engineer, Pricing Platform)Built external-to-internal product matching, dynamic pricing, and the Final Pricing API Developed Catalog Engine Page and lowest-price update pipelines for Naver Shopping and YouTube Shopping
Storelink
(R&D Engineer)Built product-data collection and keyword-ranking analytics services Developed AdLink, Uzzit, Pugshop, and Friday
WhaTap Labs
(Frontend Engineer)Built monitoring dashboards for infrastructure, JVM applications, databases, and Kubernetes environments.
Hamschout
(SW Engineer)Built Itfluencer, a platform that connects advertisers with influencers for campaign delivery.
OpenBridge
(SW Engineer)Developed AlarmTalk (alarm + chat), Potion (photo editing + missions), and the OpenBridge web platform.
VoltUp Projects (Sep 2024 — Present)
Multi-Provider Payments and Failed-Payment Recovery
Oct 2024 — PresentLed the payment service from initial architecture through production delivery, evolving a single-provider flow into a modular multi-provider platform. Added database-backed approval ownership and layered recovery to prevent duplicate charges and move failed or unpaid transactions into traceable, recoverable states.
- Led the payment service from initial design through implementation as a core engineer
- Designed a provider strategy layer that integrates Kakao Pay, Toss Payments, and Kakao T, a South Korean ride-hailing and mobility platform, behind a common interface
- Combined Pub/Sub dead-letter queues, retries, and recovery batches into a layered flow that isolates failures and prevents unpaid transactions from being missed
- Added database-backed approval ownership before payment-gateway calls, preventing duplicate approvals after lock expiry, lost responses, or provider changes; an eight-thread MySQL concurrency test confirmed a single winner per order
- Separated payment confirmation from unpaid-balance bookkeeping so ledger-lock contention cannot roll back successful approvals or trigger duplicate charges; also corrected double point deductions and retroactive configuration changes during retries
- Added recovery for orphaned READY orders and long-running AUTHORIZED states through event republishing, scheduled reconciliation, and operator repair APIs
Coupon and Points Promotion Platform
Coupon: Jul 2025 / Points: Aug 2025 — PresentBuilt reusable coupon and points services for partner campaigns including Nexen, Toyota, and Bluemembers. Applied coupon-level payment-method restrictions consistently across issuance, lookup, redemption, and operations-console workflows.
- Designed a point-wallet model with independent expiration per deposit, aggregate balance queries, and separate tracking for points expiring within seven days
- Applied free points first and then the earliest-expiring balance; cancellation refunds reverse that order to preserve the most useful balance for customers
- Implemented a Hold-Confirm-Release lifecycle that automatically restores points when payment fails
- Encoded partner-specific rules for expiration, duplicate issuance, and benefit amounts across Nexen, Toyota, and Bluemembers campaigns
- Enforced coupon-level payment-method restrictions across issuance, lookup, redemption, and operations-console creation flows
- Designed and implemented scheduled campaign-coupon issuance
U+ VIP Monthly Coupon Integration
Jun 2026 — PresentConnected the customer app, coupon service, and operations console to issue monthly benefits for LG U+ VIP and VVIP members. Gave operations teams the lookup, eligibility checks, and assisted-issuance tools needed to resolve customer inquiries without manual engineering support.
- Added the UPLUS_VIP coupon type, overlapping-benefit-month checks, and payment-method restrictions across preview, search, redemption, and operations-console creation
- Consolidated phone-based membership lookup, birth-date verification, monthly user/card limits, LG U+ approval, coupon issuance, and compensating cancellation in a dedicated U+ VIP issuance service
- Implemented operations-console APIs and screens for assisted issuance, identity-mismatch checks, and issuance-history lookup
- Added benefit-month defaults, minimum-spend validation, and allowed-payment-method selection to coupon configuration
- Built one-time SMS, push, and Kakao AlimTalk messaging with immediate or scheduled dispatch and searchable delivery history
Outcomes
- Unified external membership approval and internal coupon issuance so self-service and assisted issuance follow the same validation rules
- Moved recurring log and policy checks into operations-console search and pre-check screens, reducing engineering dependency during customer support
- Shifted recurring customer messaging to console and batch workflows, reducing manual requests to developers
Customer-Facing Backend and Kakao T Integration
Jul 2025 — PresentBuilt customer-facing backend services spanning four microservices, including Kakao T account and payment integration, Plug & Charge enrollment, failed-payment monitoring, and isolation of external-system failures.
- Designed Kakao T account and payment integration across auth, user, billing, and customer-app services, covering OAuth2 linking, five-step card registration, payment approval, and partial cancellation
- Established the partner customer token as the link between external payment methods and internal user context, adding search indexes, unlink validation, and a callback-specific activation API
- Built vehicle enrollment and Plug & Charge credential-registration services
- Combined historical totals and same-day real-time data in one homepage statistics API, using local and remote caches plus distributed locks to protect source systems from public traffic
- Isolated external certificate, LG U+ Membership, and Bluemembers integrations with dedicated thread pools, timeouts, circuit breakers, and CallGuard so uncertain outcomes fail explicitly instead of exhausting request threads
Outcomes
- Delivered the end-to-end Kakao T integration—card registration, payments, cancellations, and promotions—across four microservices
VoltUp Hybrid App (Flutter for iOS and Android)
Dec 2024 — PresentLed delivery of the Flutter-based VoltUp 2.0 app, designing its WebView-to-native bridge and core flows for QR scanning, permissions, push notifications, and mandatory updates.
- Scoped the app through a proof of concept and delivered the Android/iOS hybrid app for the March 2025 launch
- Defined a JS bridge for communication between the web frontend, native app, and device hardware
- Built WebView-based UX flows for new-window handling, QR scanning, camera permission, and forced updates
- Custom ML Kit-based QR scanner page and responsive scan UI
- FCM-based push notification system
- Crashlytics-driven Dart/native error collection and camera/FCM stabilization
Outcomes
- Launched within 2 months (Dec 2024 — Feb 2025)
- Defined the contract that allows the web frontend to invoke native capabilities through the JS bridge
- Improved core app entry points through Crashlytics-based stabilization and QR/permission/update-flow refinements
Browser-Based App Validation and Operations Tool
May 2026 — PresentBuilt a Chrome extension that reproduces app-dependent flows in the browser, removing the need to connect a mobile app for routine validation. Extended it with controlled API capture and replay for operational corrections not available in the operations console.
- Reproduced new-window handling, QR scanning, camera permissions, and mandatory-update scenarios without connecting the mobile app
- Added API capture and replay to shorten validation cycles and automate repeated QA workflows
- Added row-based bulk replay for controlled, single-API corrections not available in the operations console, including charge-zone repair cases
Outcomes
- Reduced waiting and repetitive manual steps by making app-dependent behavior testable directly in the browser
- Replaced one-off JavaScript corrections with a reusable, auditable internal workflow
Voltbot - Agent Routing and AI-Assisted Incident Diagnosis
May 2026 — PresentBuilt Voltbot, an internal agent platform that routes employees to specialized agents based on intent, permissions, and agent availability. Developed an evidence-driven incident-diagnosis workflow that combines Cloud Logging, BigQuery, internal guidance, and code search across broken trace boundaries, then verified groundedness and cost improvements with an evaluation harness.
- Implemented AgentRouter to classify requests by intent, permission, and agent availability before routing them to specialists for log diagnosis, BigQuery analysis, legal support, or code policy
- Connected AgentRunner, ToolHandler, and WebSocket streaming through a shared Agent/Tool contract so tool history, permissions, quotas, interruptions, and final answers remain visible in one conversation
- Added customer-support and operations modes to LogDiagnosisAgent, with iterative pivots across trace IDs, user IDs, order numbers, time windows, and report signatures; enforced a hypothesis-trace-query-verdict loop to reduce premature conclusions
- Replaced regex-based tool calls with Gemini native function calling and parallel execution, persisting structured inputs, failures, and shared log, data, and code evidence for downstream agents
Outcomes
- Standardized Cloud Logging, internal documentation, and GitHub code search as reusable tools for first-pass diagnosis before engineering escalation
- In a 9-case × 3-run evaluation harness, preserved statistically equivalent answer quality while improving average groundedness from 87.7% to 100%, cutting tokens/cost by 46%, and reducing runtime by 10%
EV Roaming Reliability and Batch Operations
Feb 2026 — PresentRedesigned card-state recovery and resynchronization for Korea's public EV-roaming network, and made long-running Kakao T partner batches safe to stop and migrate without overlapping executions.
- Changed public-roaming card-state updates from payment responses to unpaid-balance events so only relevant failures trigger state changes
- Simplified the roaming card-state processing path and consolidated billing lookups to improve throughput
- Built a retry process that prioritizes baseline membership-card data over lower-priority charger-status updates
- Added monthly full resynchronization for public-roaming membership cards to prevent long-term drift from the external system
- Corrected Kakao T batch shutdown ordering so Redis remains available until active work completes, then added an opt-in resident scheduler and shutdown guards for 60-75 minute charger-sync jobs
Outcomes
- Improved data accuracy by aligning card-state changes with unpaid-balance events
- Reduced processing overhead by eliminating serialization and consolidating billing queries
- Added an operational safety net that periodically restores member-card baseline data after missed events or transient failures
- Reduced forced-shutdown and missed-schedule risk while allowing a staged migration without racing existing CronJobs
Developer Productivity and Delivery Automation
Oct 2024 — PresentStandardized recurring engineering work through automated first-pass reviews, shared CI/CD workflows, developer-environment tooling, documentation automation, and internal API conventions.
- Built a reusable repository of microservice conventions and recurring task patterns for Claude Code, Cursor, Gemini, and other coding agents
- Rolled out a LiteLLM proxy and a single source of truth for model defaults, then standardized first-pass reviews, pull-request summaries, security-review drafts, and Slack notifications as shared CI workflows
- Built automated Docusaurus documentation with GitHub Actions and change detection
- Standardized graceful shutdown across four Pub/Sub consumers: stop intake on SIGTERM, drain in-flight work, redeliver unfinished messages, and align application timing with Kubernetes termination budgets
- Introduced Firebase App Distribution to shorten QA and release cycles
- Built a Gradle-based generator for local microservice configuration
- Standardized internal operations-console API boundaries with shared clients and an X-Internal-Caller convention
- Simplified Android and iOS delivery to reduce key-management overhead and avoidable failures
- Consolidated Android Jenkins pipelines into shared libraries and added remote Gradle caching, iOS TestFlight automation, and shared R8 policies
Outcomes
- Reduced review overhead via automated first-pass AI review
- Removed the intake/in-flight loss window during normal node drains and rolling deployments, establishing a reusable shutdown contract across four services
- Shortened QA and deployment cycles while enabling self-service distribution through Firebase
- Reduced manual documentation maintenance through automated generation
- Improved release stability by reducing mobile delivery key-management burden and avoidable failure points
Kakao Style Projects (Jun 2022 — Sep 2024)
Mobile Proxy Infrastructure and Dynamic Pricing
Jan 2024 — Sep 2024Built a mobile proxy pool to keep product-data collection reliable under anti-bot restrictions, then automated dynamic pricing from competitor price comparisons.
- Allocated per-port mobile HTTP proxies and developed proxy pool lookup APIs
- Built mobile device control APIs (airplane mode, reboot) and automated rate limit management
- Built AWS Athena datasets that connect external shopping-feed and lowest-price data with internal products
- Developed batch jobs for competitor-price analysis, dynamic pricing, and Excel reporting
External-to-Internal Product Matching
Feb 2024 — Sep 2024Replaced a one-to-one model with many-to-many matching that links external marketplace products to internal catalog products across stores and product types.
- Added a two-level cache for complete match-group lookups and served the selected canonical product in search
- Developed matching batch jobs using AWS Athena for items with ≥99.5% image similarity
- Built match-review APIs and applied new matches automatically through Kafka consumers
Final Pricing API
Dec 2023 — Sep 2024Consolidated channel-specific pricing rules into one API so coupons, promotions, and other benefits follow a consistent contract.
- Applied timeouts and circuit breakers for service stability
- Connected company-wide gateways to the Final Pricing API, keeping displayed prices consistent across customer-facing channels
Membership Platform Migration
Apr 2023 — Jun 2023Redesigned membership tiers and migrated the legacy service to Spring Boot without downtime.
- Migrated the legacy cormo.js service to Spring Boot with a schema-compatible database transition and no downtime
- Expanded the membership tier calculation period from 3 to 6 months
- Optimized 3-month tier calculation by caching monthly totals and using cumulative sums
Outcomes
- Reduced database load from the 70% threshold to below 30% by caching monthly totals and using cumulative sums
- Achieved zero-downtime deployment through API I/O integration tests and gradual gateway switching
Catalog Engine Page and Lowest-Price Update Pipelines (Naver Shopping / YouTube Shopping)
Jun 2022 — Sep 2024Built shopping-feed and lowest-price update pipelines that kept Zigzag products eligible for Naver Shopping price comparison.
- Built batch jobs that selected commercially competitive products and attached card promotions, delivery badges, and category mappings
- Implemented logic to compare prices with competitors and consumed real-time Kafka updates
- Standardized the shopping-feed and lowest-price pipeline for reuse with Google and YouTube Shopping, while also building operations tooling and supporting the transition from CPC to CPS billing
Outcomes
- To satisfy the 2-hour product update interval required for CPS, replaced full-catalog refreshes with partial updates for sold-out or price-changed items, enabling generation of the Naver Shopping feed CSV and changed-product sync dataset within an hour
- Built a reusable shopping-feed and lowest-price pipeline that could be extended quickly to Google and YouTube Shopping
- Consolidated team-specific final-price APIs behind the Final Pricing API, aligning pricing logic across customer-facing channels
Earlier-Career Projects
Built backend services for commerce keyword and search-ranking analytics.
- Introduced Kotlin and WebFlux as the team's primary backend stack
- Replaced core product capabilities with Friday search APIs that remained in production
- Built internal developer tooling for Jenkins CI/CD, WireGuard VPN, and reusable npm/NPX boilerplates
- Cross-architecture Docker builds (AMD64/ARM64) via buildx for AWS Graviton2 compatibility
- Built a Puppeteer-based collection API for page access, API queries, element selection, and controlled JavaScript execution
Built unified monitoring dashboards for telemetry collected from applications, servers, databases, and containers.
- Developed core components including time-range controls, server lists, and unified dashboards
- Bridged legacy page handlers into React components and built agent setup and installation screens
- Created shared data-processing utilities to improve consistency and reuse
Outcomes
- Reduced API polling churn for real-time dashboards and mitigated memory pressure on chart-heavy screens
- Used the product in real operational workflows to refine metric combinations and dashboard layouts for troubleshooting and performance analysis
[Hamshout] Influencer Marketing Platform
Aug 2017 — Aug 2018Built an influencer-marketing platform where advertisers manage campaigns and creators participate in sponsored work.
- Developed influencer/blogger review and verification systems
- Built Naver search ranking lookup APIs
- Developed advertising reporting services for clients
Outcomes
- Automated advertiser-influencer matching, reducing manual outreach
- Improved marketing accessibility for small businesses and startups
Built a social alarm app that combines alarms and chat so users can help wake one another.
- Led the development of AlarmTalk 2.0
- Implemented voice recognition and shake-to-wake alarm features
- Built the in-app alarm store system
Built a mission-based photo app where users earn points and redeem them for photo prints.
- Developed core photo adjustment components (brightness, contrast, crop, etc.)
- Implemented the photo-filter engine and effects in close collaboration with the design team
- Integrated account systems and mission-related APIs
Side Projects
Built a CLI and local web media manager that scans media files, combining FFmpeg and multimodal LLM analysis for smart file renaming, tag sidecar storage, and browser-based file management.
- [Media Indexing Engine] Developed high-performance media indexing pipeline, CLI tools, and HTTP web server
- [Multimodal Analysis] Built scene/voice tagging algorithms combining FFmpeg frame extraction and LLM multimodal analysis
- [Local Web File Manager] Created interactive web UI for folder planning, metadata sidecar generation, and dry-run file movement
Commit Map Personal Project
OngoingA map-based travel planner for drafting itineraries, visualizing routes, and sharing trip plans through one link.
- Combined trip schedules and travel routes in a shared map and timeline view
- Added an AI workflow that turns natural-language destinations and routes into a rough itinerary draft, which can then be refined directly in Markdown
- Managed trip content as Markdown-backed structured data and deployed it statically for simple link-based sharing
A multilingual resume and portfolio service that generates multiple layouts and print-ready PDFs from one YAML source.
- Managed Korean and English resumes, portfolio pages, and multiple layouts from one YAML data source
- Built A4 pagination, print guidance, background-graphics checks, and PDF export for real submission and sharing workflows
- Refactored shared components and content models so project links, language switching, and copy or layout changes remain consistent across views
Other Activities
Mentored students in software architecture, problem-solving strategy, and flow design.
[Mentor Profile]Provided technical and mock-interview coaching for backend program graduates.
Mentored five cohorts on team projects solving real company problems.
Mentored the second cohort of the Kakao Tech Campus backend track.
Delivered an "Effective Backend" lecture for a software startup program.
Mentored two iOS service project teams.
Presented the monitoring session in Hanbit Media's MSA seminar series.
Led campus meetings and code reviews for web-backend campers across two cohorts.
Presented "Building a Development NAS Using WSL."
Provided frontend and backend technical mentoring and career guidance.
[Mentor Profile]Provided technical Q&A, code reviews, and remote mentoring.
Taught a hands-on React course progressing from concepts to a final project.
Maintained the community forum, wiki, Q&A, and mail infrastructure.
Developed LiBi, a local group-buying platform, and received the Common Computer Prize.
[Related]