Skip to content

Case study 15

MUST Mate

MUST Mate, from MUST Company, is an AI-powered project management tool built around time. Teams track time on tasks, see project progress and time efficiency at a glance, and turn logged hours into detailed reports, transparent client billing and payroll, with attendance management in the same app. Team performance views help managers spot productivity pitfalls, and integrations connect it to the tools a team already uses. I joined after the app was built, as a full-stack engineer on the team that maintained it.

At a glance

Status: Completed

Role
Full-stack engineer (maintenance)
Type
Enterprise
Timeline
May 2024 – Jun 2026
Domain
SaaS, AI
Focus
Project Management, Time Tracking, Payroll, Performance Optimization, Maintenance
Stack
  • Express
  • Next.js
  • TypeScript
  • DynamoDB
Architecture: Time to billingWeb app to API (log time); API to DynamoDB (store); Integrations to API (sync); DynamoDB to Reports (aggregate); DynamoDB to Billing & payroll (hours)log timestoresyncaggregatehoursUIWeb appNext.jsSVCAPIExpressDBDynamoDBtime logs · projectsEXTIntegrationsworkplace appsJOBReportstime · performanceJOBBilling & payrollfrom logged hours
Fig. 15 MUST Mate architecture: Time to billingSolid: request · dashed: async · dashed box: external

What MUST Mate does

  • Time tracking on tasks and projects
  • Project time visualization and real-time progress
  • Detailed reports on time and productivity
  • Precise, transparent client billing from tracked time
  • Attendance management and payroll from logged hours
  • Team performance analysis
  • Integrations with other workplace apps
  • Starter, Advanced and Enterprise plans

The problem

A time-tracking tool is only useful if people trust it: hours have to be recorded correctly, reports have to load quickly, and billing and payroll have to match what was logged.

Approach

As part of the team maintaining MUST Mate, I worked from issues raised by users and the support team, reproducing and fixing bugs across the API and the frontend and improving performance where the app was slow.

Key decisions

  1. D1

    Reproduce first

    Each bug report was reproduced before fixing, so the fix addressed the real cause rather than the symptom.

  2. D2

    Measure before optimizing

    Performance work started from where the app was actually slow, not from guesses.

  3. D3

    Close the loop with support

    Fixes went back through the support team, so users heard when their issue was resolved.

My contributions

  • Joined the team after the app was built, as a full-stack engineer at MUST Company
  • Found and fixed bugs across the Express API and the Next.js frontend
  • Improved performance across the app
  • Worked with the support team to keep the app running for its users

Challenges

  • Getting productive quickly in a codebase that was already built, by someone else
  • Tracking down bugs from user reports through the support team
  • Improving performance in a live app without disrupting the teams using it

Build something similar

Planning a product like MUST Mate? Tell me what you're building and when you need it. I'll reply with questions or a proposal.