Dongho Kang
강동호
Software engineer focused on problem-solving and the completeness of services without limiting tech stack. Actively contributes from the planning stage to prioritize user convenience. Currently responsible for the overall billing and user-side services across multiple MSA environments.
Experience
LG Uplus VoltUp
(Tech Innovation Tribe, Back-end)Billing - Improved payment and arrears-handling reliability with DLQ and multi-stage unpaid batches Promotions (coupon/points) - Improved customer retention User-side - Owned vehicle lookup, PnC (Plug & Charge) authorization, user-side backend, and the mobile app DX infrastructure - Standardized AI workflows and applied CI/CD integration and automated documentation
Kakao Style
(Pricing System, Back-end)Final pricing service, product matching, Zigzag membership new development and migration, and shopping EP integrations (Naver Shopping / Google Shopping). Pipelines for external price collection and competitive position automation.
Storelink
(R&D Engineer)Product-data collection and keyword-ranking analysis platform Developed AdLink, Uzzit, Pugshop, and Friday
Whatap Labs
(Front-end Engineer)Frontend development for monitoring dashboards across infrastructure, JVM applications, and Kubernetes.
Hamschout
(SW Engineer)Developed the Itfluencer platform matching influencers with businesses.
OpenBridge
(SW Engineer)Developed AlarmTalk (alarm + chat), Potion (photo editing + missions), and the OpenBridge web platform.
Projects — LGU+ VoltUp
Multi-vendor payment system & arrears recovery
Oct 2024 — PresentLed payment design from the start; expanded from a single payment flow into a modular structure that supports multiple payment vendors, and improved payment-state consistency and failed/unpaid payment recovery through a layered arrears-management system.
- Owned payment service 0→1 as core engineer
- Designed vendor strategy pattern with abstract base classes to integrate 3 PG providers with unified interface
- GCP Pub/Sub DLQ pattern to isolate failed payment events and keep arrears-processing targets traceable
- DLQ-based arrears and permanent-arrears handling system with retries, NACKs, and recovery batches to prevent missed arrears handling
- Hardened failover transitions and latestRetriedAt recording to prevent stuck DLQ retries, while keeping unpaid-payment recovery flows intact on PG not-found responses
- Split payment-cancel AlimTalk contexts for full, partial, and roaming cancellations to improve the accuracy of user-facing cancellation amounts and status messages
Coupon & point promotion platform buildout and enhancement
Coupon: Jul 2025 / Points: Aug 2025 — PresentBuilt a reusable coupon and points backend for partner-driven promotions such as Nexen, Toyota, and Bluemembers, including coupon-pack payment-vendor restrictions across issuance, lookup, usage, and admin management.
- Designed point wallet system with per-deposit expiration — separate wallet entity per deposit, aggregated balance with 7-day expiry-soon tracking
- Point deduction policy: free points first, then earliest-expiring; cancellation refunds in reverse order (longest-expiry wallets first) to benefit users
- Hold→Confirm→Release 3-phase point lifecycle ensuring auto-restoration on payment failure
- Partner-specific promo rules — expiry, duplicate issuance, amount settings (Nexen/Toyota/Bluemembers)
- Modeled allowed payment vendors per coupon pack and applied the same restriction across issuance, lookup, usage, and Admin creation flows
- Promotion coupon issuance batch — designed and developed
User-side Backend
Jul 2025 — PresentDeveloped core user-side backend features including KakaoT account/payment integration across 4 MSAs, PnC (Plug & Charge) auto-charge, and unpaid-charge monitoring.
- Designed and implemented KakaoT account/payment integration across 4 MSAs (auth→user→billing→feapp) — OAuth2 account linking, 5-step card registration, payment approval/partial cancellation
- Promoted t_partner_user_token as the key between external payment methods and internal user context, adding search indexes, unlink validation, and an app-callback-specific activate API
- Vehicle registration service and PnC (Plug & Charge) authentication registration service
- Promotion coupon issuance batch — designed and developed
- Circuit breaker pattern for external certificate service — auto-disable on failure with recovery and a force-reset recovery path for total outages
Outcomes
- Full KakaoT partner integration: card registration, payment, cancellation, and promotion lifecycle implemented across 4 MSA services
VoltUp Hybrid App (Flutter - iOS/Android)
Dec 2024 — PresentLed Flutter hybrid delivery for 2.0; designed WebView-native bridge flows and core app paths such as QR scanning, permissions, push notifications, and forced updates.
- Rapid Android/iOS hybrid delivery via Flutter for 2.0 launch (2025.03)
- JSBridge for frontend–hardware and app message communication — developed 20+ native bridge flows
- Built WebView app UX flows such as new-window handling, QR scanning, camera permission, forced updates, and WebView User-Agent injection
- Custom ML Kit-based QR scanner page and responsive scan UI
- FCM-based push notification system
- Crashlytics-driven stabilization for Dart/native errors, NPEs, camera lifecycle crashes, and FCM token throttling
Outcomes
- Launched within 2 months (Dec 2024 — Feb 2025)
- designed protocols for frontend to invoke native functions via JS Bridge
- Improved core app entry points through Crashlytics-based stabilization and QR/permission/update-flow refinements
VoltUp App Validation & Ops Correction Extension
May 2026 — PresentBuilt a Chrome Extension that recreates app-dependent flows in the browser to reduce app-attachment validation delays, then extends into replayable single-API operational corrections not supported by Admin.
- Recreated app-supported flows such as new windows, QR scanning, camera permission, and forced-update version branches in a browser extension without connecting the app
- Built API capture/replay to shorten app-development validation time and automate repeated QA flows
- Extended the tool into row-based Bulk Replay for single-API corrections not directly supported by Admin, such as charge-zone correction cases
- Added confirmation, 401/403 early-stop guards, batch skip notifications, parser/executor tests, and CI
Outcomes
- Reduced waiting and repeated interaction time by making app-dependent validation quickly testable from the browser
- Turned one-off JS fetch operational corrections into a reusable internal tool flow
Roaming service reliability & performance
Feb 2026 — PresentRedesigned card-state management for the Ministry of Climate, Energy and Environment public roaming integration and added retry/monthly resync paths so baseline data can recover after missed events or transient failures.
- Redesigned card-state updates in the Ministry of Climate, Energy and Environment public roaming flow from payment-response-based to billing-arrears-event-driven — selective updates only for arrears events
- Simplified the roaming card-state processing path and consolidated billing lookups to improve throughput
- Built an MCEE API retry process that prioritizes critical data (membership cards) over tolerably-lossy items (charger status)
- Added a monthly full resync scheduler and task seed for MCEE member cards to prevent long-term drift from the external system
Outcomes
- Improved data accuracy by rearchitecting card state update logic
- 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
Developer productivity & DevOps
Oct 2024 — PresentAI-first reviews, mobile CI/CD hardening, remote Gradle cache, iOS TestFlight automation, obfuscation policy, Firebase distribution, and internal Admin API standards.
- Built a reusable skill repository of microservice conventions and recurring task shapes so it could be applied across generative LLM tools such as Claude Code, Cursor, and Gemini
- Gemini CLI for first-pass review load shedding
- Docusaurus + GitHub Actions auto-doc system with git-polling change detection
- Firebase App Distribution for faster QA and release cycles
- Gradle generator for application-local.yaml
- Standardized Admin internal API boundaries with admin-internal-* clients and an X-Internal-Caller header convention
- Moved Android delivery away from fastlane/Service Account JSON keys to Workload Identity with Gradle/Play Store REST API and firebase-tools, while hardening iOS skip conditions and CocoaPods CDN rate-limit handling
- Refactored Android Jenkins into shared libs; GCS remote cache; iOS GA/TestFlight pipeline; 300+ line R8 rules
Outcomes
- Reduced review overhead via automated first-pass AI review
- Shortened QA/deploy cycle and improved QA self-serve with Firebase Distribution
- Auto-doc system reduced manual documentation maintenance
- Improved release stability by reducing mobile delivery key-management burden and external rate-limit/skip misfire risk
Projects — Kakao Style (2022.06 — 2024.09)
Mobile IP Pool Proxy Infrastructure & Dynamic Pricing
Jan 2024 — Sep 2024Built a mobile IP pool proxy infrastructure to bypass crawling blocks and automated a dynamic pricing pipeline based on price competitiveness.
- 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
- Constructed matching datasets between external (EP, lowest price) and internal products via AWS Athena
- Developed batch jobs for dynamic pricing based on price-gap analysis and Excel report generation
Internal/External Identical Product Matching
Feb 2024 — Sep 2024Overhauled 1:1 matching to an N:M structure to match identical products across all stores and types.
- Implemented dual caching for full matching lookups and served "Winner" data for search
- Developed matching batch jobs using AWS Athena for items with ≥99.5% image similarity
- Built matching lookup APIs for review integration and automated matching via Kafka consumers
Final Pricing (Unified API for Service-Level Pricing Logic)
Dec 2023 — Sep 2024Unified scattered pricing logic into a single API so coupons, promotions, and other benefits follow one contract.
- Applied timeouts and circuit breakers for service stability
- Consolidated scattered pricing logic into a unified API across company-wide gateways and ensured price exposure consistency
Membership & Mileage Migration
Apr 2023 — Jun 2023Redesigned membership tiers for retention and migrated the legacy membership service to Spring Boot.
- Zero-downtime migration of the legacy membership service (cormo.js-based) to Spring Boot via 1:1 DB migration
- 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 DB load from 70% to under 30% through strategic caching
- Achieved zero-downtime deployment through API I/O integration tests and gradual gateway switching
Shopping Catalog Engine Page & Lowest-Price Updates (Naver Shopping / YouTube Shopping)
Jun 2022 — Sep 2024Enhanced price competitiveness of Zigzag products for exposure on Naver Shopping price comparison.
- Developed batch jobs for GMV-competitive products and integrated card promos/delivery badges
- Implemented logic to compare prices with competitors and consumed real-time Kafka updates
- Commonized the Engine Page and lowest-price update flow so it could be quickly extended to Google Engine Page (YouTube Shopping), while also building backoffice tooling and leading the CPC-to-CPS transition
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 shared Engine Page and lowest-price update structure that could be extended quickly to Google Engine Page (YouTube Shopping)
- Created the path to consolidate team-specific final-price APIs into a unified Final Pricing API, aligning previously inconsistent pricing logic across surfaces
Projects — Earlier experience
Backend development for commerce keyword analytics service.
- Introduced Kotlin and WebFlux as the main tech stack for the entire team
- Replaced core service features with Friday search APIs (still in use)
- In-house automation tools: Jenkins CI/CD, WireGuard VPN, NPM modules/NPX boilerplates
- Cross-architecture Docker builds (AMD64/ARM64) via buildx for AWS Graviton2 compatibility
- Puppeteer crawler API — page access, API query, tag selection, and JS function injection
Developed integrated monitoring dashboards to visualize data collected from various agents (App, Server, DB, Container).
- Developed core components including TimeSelector and Server List dashboards
- Integrated legacy page handlers on React components and developed agent setup/install screens
- Implemented common data processing methods for better code reusability
Outcomes
- Reduced API polling churn for real-time dashboards and mitigated memory pressure on chart-heavy screens
- Used the product from an operator's perspective to shape meaningful metric/chart combinations and dashboard compositions for troubleshooting and performance analysis
Influencer platform
Aug 2017 — Aug 2018Developed an influencer marketing platform for campaign management and influencer matching.
- 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 contact overhead
- Improved marketing accessibility for small businesses and startups
Social alarm service combining alarms and chat for mutual wake-up calls.
- Led the development of AlarmTalk 2.0
- Implemented voice recognition and shake-to-wake alarm features
- Built the in-app alarm store system
Mission-based photo filter app where users earn points for printing photos.
- Developed core photo adjustment components (brightness, contrast, crop, etc.)
- Implemented photo filter engine and effects through design collaboration
- Integrated account systems and mission-related APIs
Personal Projects
Commit Map Personal Project
OngoingA map-based travel planning service built to share my travel plans and quickly draft route ideas.
- Built as a personal service that shows travel plans and routes together on a map and timeline
- Added an AI workflow that turns natural-language destinations and routes into a rough itinerary draft, which can then be refined directly in Markdown
- Manages trip content through Markdown-based travel data and static deployment so a single link can be used to share plans easily
A personal resume service that manages multilingual resumes and project portfolio pages from a single YAML source across multiple layouts, optimized for print and PDF output.
- Structured the app so Korean/English resumes, project portfolio pages, and multiple resume layouts are managed from one YAML data source
- Implemented output UX for real submission and sharing scenarios, including A4 auto-pagination, no-margin print guidance, background-graphics hints, and PDF export flow
- Continuously refactored shared components and content structure so project links, common language switching, and repeated wording/layout tuning can be applied quickly
Other Activities
Mentored students with a focus on SW architecture, problem-solving strategy, and user-side flow optimization.
[Mentor Profile]Conducted technical and mock interview mentoring for backend developer bootcamp graduates.
Participated as a mentor across the 1st through 5th cohorts, guiding collaboration-based projects that solved real company problems.
Participated as a mentor for the 2nd cohort of Kakao Tech Campus backend track.
Gave a talk on "Effective Backend" for the SW startup lecture series.
Mentored two iOS service project teams for Boostcamp.
Led the 9th session on Monitoring for Hanbit Media's seminar series.
Conducted campus meetings and code reviews for web backend campers (7th and 8th cohorts).
Presented on "Building a Development NAS using WSL".
Provided FE/BE mentoring and career counseling as a hackathon mentor.
Provided Q&A, code reviews, and video mentoring.
Conducted a React lecture series (Explanation > Clone Coding > Project) for vocational high school students.
Managed infrastructure (Forum, Wiki, ASK, Mail server) for the Linux community.
LiBi, a group-buying and inventory-discount service for local small businesses Winner of the Common Computer Prize (KRW 2.4M)
[Related]