Skip to content
SA

Trajector · 2024 — present

Unifying three portals on one messaging platform

Three portals across three lines of business each handled customer communication their own way, mostly by phone and email. I architected and built the platform that replaced that with async messaging on a single shared database.

Case study

~10k messages/day · ~6k daily users · ~1,000 support hours saved per month

The problem

Customer communication was scattered across phone calls and email threads belonging to three separate portals, each serving a different line of business. Nothing was searchable, context was lost between handoffs, and every question cost a support agent a synchronous interruption.

The constraint

The three portals had to keep their own identities and their own front doors while sharing one message store underneath. That ruled out three separate implementations, and it meant the data model had to carry the line-of-business boundary rather than the deployment topology.

What I did

  • Designed a single shared database backing all three portals, so a thread is one record regardless of which front door it arrived through
  • Built the front end in Next.js and the services in Node on AWS Lambda, with MongoDB as the store
  • Shifted the interaction model from synchronous phone and email to async messaging, so agents batch rather than context-switch

The number

  • ~10,000 messages per day
  • ~6,000 daily users across the three portals
  • ~1,000 support man-hours saved per month

What I would do differently

I would put the read model behind an explicit projection from the start. Serving three portals from one collection was right, but the query shapes diverged by line of business faster than expected, and retrofitting indexes to match was more work than designing for it would have been.

Stack

  • Next.js
  • Node.js
  • AWS Lambda
  • MongoDB
  • Tailwind CSS

Open to work

Hiring for something that has to stay fast under load?

I'm open to senior and staff full-stack roles, remote or in India. The quickest way to start is a short email about the problem you're trying to solve.

shreyalkhaniya97@gmail.comRésumé