About

I build web products with the whole system in mind.

I'm Mohammad Afsari, a senior full-stack engineer. I like working across the whole system, from the database schema to the buttons people press.

For most of the last decade I've built web products end to end. That covers data models and APIs, the infrastructure they run on, and the front-end work that decides whether people enjoy using the result. Much of the job is balancing what the product needs against what the system can support.

I do my best work on problems with real constraints: a service that has to stay up, a codebase other people need to understand, a team that has to keep shipping. I choose tools that will still make sense in two years over whatever is newest.

Day to day I write TypeScript across the stack. React and Next.js on the front end, Node services behind them, PostgreSQL for data, and infrastructure defined in code so nothing lives only in someone's head. I've worked alone and in teams, on new builds and on old codebases, and I'm happy to own a feature from the first sketch through to being on call for it.

AI coding agents are part of how I build software. I use them alongside clear specifications, tests and code review, and set up the context and guardrails they need to work effectively. I stay responsible for the technical decisions and the code that ships.

Outside work I read about systems design and build side projects, most of which never ship.

Tools

What I use

Frontend

Fast, accessible interfaces.

  • TypeScript
  • JavaScript
  • React
  • Next.js
  • Astro
  • HTML & CSS
  • Accessibility

Backend

APIs and data models.

  • Node
  • Express
  • Fastify
  • PostgreSQL
  • SSMS
  • Redis
  • MongoDB

Infra & DevOps

Repeatable deployments.

  • AWS
  • Azure
  • Terraform
  • Docker
  • CI/CD

Tooling & CMS

Day-to-day tooling.

  • Supabase
  • Contentful
  • Git
  • Testing
  • Amplience
  • DatoCMS
  • Algolia
  • Commercetools
  • Storybook
  • Prisma
  • Drizzle
Experience

Where I've worked

  1. 2025 to present

    Senior Full Stack Engineer · Legal 500

    Developing and maintaining Legal 500 while helping migrate its legacy WordPress platform. Building analytics and internal migration tooling, and leading the Mondaq team as mondaq.com integrates with Legal 500 following its acquisition.

  2. 2022 to 2025

    Full Stack Engineer · Frasers Group

    Built features across ecommerce storefronts and services using Amplience, Algolia and commercetools. Improved content delivery with Redis caching, supported brand and international site launches, and worked with stakeholders to deliver tested features across the product roadmap.

  3. 2021 to 2022

    Full Stack Engineer · Cognizant

    Worked with European Tyre Enterprise to cleanse and transform data for Salesforce and business intelligence platforms. Built an internal management tool to help wholesalers access customer address information across the UK.

  4. 2019 to 2021

    Software Engineer · Mott MacDonald

    Helped rebuild a legacy system for Highways England, developing reporting pages, migrating data and creating Power BI dashboards. Also maintained the client's landing page as part of the wider redevelopment.

  5. 2017 to 2019

    Graduate Engineer · Mott MacDonald

    Developed data migration algorithms for Highways England, transferring geotechnical records from its existing HAGDMS database management system to the replacement GDMS platform.

Principles

How I work

Predictable over impressive

I'd rather run a system nobody has to think about than one that looks clever.

Write for the next reader

Code gets read far more often than it gets written, so I write for the reader and use comments to explain why.

Ship early, then improve

Put something working in front of users, then improve it based on what they actually do.

Want to work together?

I'm available for freelance and contract work. Send me a short note about what you're building.