Skip to content
Thái Hoàng Mai Học

hoc.thaihoangmai.work@gmail.com

All projects

2021 – 2023, Tiên Phong CDS for Nutifood

Role
Backend developer, DevOps engineer
Team
10 people, 20 man-months
Users
300+
Website
nutifoodshop.com

Business goal

One storefront for distributors, retailers and consumers at the same time.

Nutifood’s web store and Flutter app, serving distributors, retailers and consumers. Customers, products and carts sync with the Ngôi Nhà Dinh Dưỡng nutrition portal; orders flow to the DMS; products sync to a CDP.

Main modules

  • Separate pricing and ordering flows for three customer groups
  • Affiliate channel through Accesstrade
  • Sync with the Ngôi Nhà Dinh Dưỡng portal
  • Orders into the DMS
  • Product sync to the CDP

My part

One storefront serving Nutifood’s distributors, retailers and consumers at once, plus an affiliate channel that added sales beyond the direct one.

  • Build server-side logic and sales business rules
  • Analyse technical requirements and integrate third parties
  • Operate cloud infrastructure, monitor and analyse traffic
  • Propose page performance and cloud cost improvements to the client

Result

  • 300+users across three customer groups
  • 3pricing and ordering flows, one per group
  • AffiliateAccesstrade added a sales source outside the direct channel

Problems faced

Three customer groups with very different pricing and ordering rules shared one platform, sales needed a source beyond the direct channel, and orders and products had to flow into the client’s DMS and CDP.

How it was solved

  1. Split pricing and ordering flows for the three customer groups on one platform.
  2. Moved the system to GKE, with the backend scaling up to 90 pods under load.
  3. Integrated Accesstrade as a separate affiliate channel with conversion tracking.
  4. Sent orders to the DMS and synced products to the CDP with CronJobs.

Project management process

  1. 1RequirementsThree customer groups, three pricing flows
  2. 2BuildWeb, Flutter app, admin
  3. 3IntegrationAccesstrade 01/2022, DMS, CDP
  4. 4UATScripts per integration
  5. 5Run on GKEScaling up to 90 pods
  • UAT and test scripts for each integration (DMS, the nutrition portal).
  • Backend on GKE scaling up to 90 pods, with CronJobs syncing every 5 minutes and every hour.
  • I worked in a four-person backend group and a two-person DevOps group.
  • The Accesstrade affiliate integration shipped in 01/2022.

System architecture

  1. Users
    • Web store (NuxtJS)
    • Flutter app
    • Admin (Angular)
  2. Services
    • Lumen backend, HPA up to 90 pods
    • Ordering web
    • CronJobs: 5 min, hourly
  3. Data
    • MySQL master + replica
  4. Integrations
    • Ngôi Nhà Dinh Dưỡng
    • DMS
    • CDP
    • Accesstrade
  5. Infrastructure and DevOps
    • Google Cloud GKE
    • Docker
    • Nginx
    • Supervisord

Tech stack

Applications
  • NuxtJS
  • Angular
  • Flutter
  • PHP Lumen
Data
  • MySQL (master and replica)
Infrastructure
  • Google Cloud GKE
  • HPA
  • Nginx
  • Docker
  • Supervisord
Integrations
  • Accesstrade
  • DMS
  • CDP