Portfolio
KOEN

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.

(+82) 010-6590-3302 gongdongho12@gmail.com github.com/gongdongho12 linkedin.com/in/dongholab

Experience

LG Uplus VoltUp

(Tech Innovation Tribe, Back-end)
Sep 2024 — Present

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)
Jun 2022 — Sep 2024

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)
Mar 2021 — Jun 2022

Product-data collection and keyword-ranking analysis platform Developed AdLink, Uzzit, Pugshop, and Friday

Whatap Labs

(Front-end Engineer)
Mar 2019 — Mar 2021

Frontend development for monitoring dashboards across infrastructure, JVM applications, and Kubernetes.

Hamschout

(SW Engineer)
Aug 2017 — Aug 2018

Developed the Itfluencer platform matching influencers with businesses.

OpenBridge

(SW Engineer)
May 2016 — Jul 2017

Developed AlarmTalk (alarm + chat), Potion (photo editing + missions), and the OpenBridge web platform.

Projects — LGU+ VoltUp

Led 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 — Present

Built 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 — Present

Developed 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

Led 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

Built 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

Redesigned 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

AI-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 2024

Built 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

Overhauled 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

Unified 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 2023

Redesigned 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

Enhanced 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

Friday analytics

Mar 2021 — Jun 2022

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

Whatap monitoring FE

Mar 2019 — Mar 2021

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 2018

Developed 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

AlarmTalk (Android)

May 2016 — Aug 2017

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

Potion (Android)

May 2016 — Aug 2017

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

Ongoing

A 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

Teddy Resume Personal Project

Ongoing

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

Kookmin SW-Centered University Mentor Mar 2024 — Present

Mentored students with a focus on SW architecture, problem-solving strategy, and user-side flow optimization.

[Mentor Profile]
Codeit Backend Course Mock Interview Mentor Sep, Dec 2025

Conducted technical and mock interview mentoring for backend developer bootcamp graduates.

Kernel360 Backend Mentor (1st ~ 5th cohorts) Dec 2023 — Aug 2025

Participated as a mentor across the 1st through 5th cohorts, guiding collaboration-based projects that solved real company problems.

Kakao Tech Campus Backend Mentor (2nd) Jun 2024 — Aug 2024

Participated as a mentor for the 2nd cohort of Kakao Tech Campus backend track.

Hanyang ERICA SW Startup Lecture Feb 2024

Gave a talk on "Effective Backend" for the SW startup lecture series.

Boostcamp 8th Backend Mentor Nov 2023 — Dec 2023

Mentored two iOS service project teams for Boostcamp.

Hanbit N MSA — Monitoring session Dec 2023

Led the 9th session on Monitoring for Hanbit Media's seminar series.

Boostcamp 7th~8th Backend Reviewer Sep-Oct 2022 / Sep-Oct 2023

Conducted campus meetings and code reviews for web backend campers (7th and 8th cohorts).

UbuCon Korea 2023 Speaker Sep 2023

Presented on "Building a Development NAS using WSL".

SW University Joint Hackathon 2023 Mentor Jun 2023

Provided FE/BE mentoring and career counseling as a hackathon mentor.

Programmers School JAVA Mentor (11th) Mar 2023 — Apr 2023

Provided Q&A, code reviews, and video mentoring.

Gyeongbuk SW High School React Lecture Sep 2022 — Oct 2022

Conducted a React lecture series (Explanation > Clone Coding > Project) for vocational high school students.

Ubuntu Korea Community Infra Manager Mar 2018 — May 2021

Managed infrastructure (Forum, Wiki, ASK, Mail server) for the Linux community.

AngelHack 2020 2020

LiBi, a group-buying and inventory-discount service for local small businesses Winner of the Common Computer Prize (KRW 2.4M)

[Related]