Skip to content
Contact

Mohammad Reza Ghasemi

Frontend Engineer
React / Next.js

Six years building production React and Next.js apps in fintech, insurance and e-commerce.

About

Frontend engineer with over six years of experience building production React and Next.js apps in fintech, insurance, and e-commerce. I have worked on step-by-step migrations of live applications, and I build internal tools that make daily work easier for the team.

Experience

  1. Nov 2024 - Present9 highlights

    SnappPay

    Frontend Engineer
    • Led the migration of the Vehicle Insurance app to React Query for server-state management: replaced custom fetch and global-store logic with declarative queries and mutations, cut redundant API calls through caching and request deduplication, standardized loading, error and retry handling, and kept data fresh with background refetching and cache invalidation after mutations.
    • Built Pado, a plugin-based internal dev-tools package used by the team's engineers and QA. Plugins include an in-app debug console (Eruda), a JWT token fetcher, and a form filler that completes forms in one click. The token fetcher also ships as a standalone CLI, Tokenizer.
    Nov 2024 - Present

    SnappPay

    Frontend Engineer

    • Led the migration of the Vehicle Insurance app to React Query for server-state management: replaced custom fetch and global-store logic with declarative queries and mutations, cut redundant API calls through caching and request deduplication, standardized loading, error and retry handling, and kept data fresh with background refetching and cache invalidation after mutations.
    • Built Pado, a plugin-based internal dev-tools package used by the team's engineers and QA. Plugins include an in-app debug console (Eruda), a JWT token fetcher, and a form filler that completes forms in one click. The token fetcher also ships as a standalone CLI, Tokenizer.
    • Built vpnctl, a macOS and Windows CLI (bash and PowerShell) that switches between the Fortinet SSL VPN and OpenVPN with one command. It generates 2FA codes on the device with a TOTP (RFC 6238) implementation written from scratch, and keeps credentials out of plain text.
    • Improved frontend error reporting in Sentry: source maps for readable stack traces, noise filtering, release tagging, and better grouping and alerts. Added a shared helper for firing custom Sentry events.
    • Built the testing foundation for one of our apps: unit and integration tests with Vitest and React Testing Library, API mocking with MSW, and coverage reporting.
    • Contributed to the incremental migration of the Vehicle Insurance app from JavaScript to TypeScript, catching type mistakes at build time instead of in production and making the code easier to maintain.
    • Contributed to the migration of the old Vehicle Insurance app to the new one, moving existing features and screens into the new codebase.
    • Built a reusable A/B testing component that standardized how experiments are implemented across the app.
    • Made AI part of my daily development workflow, using Claude with skills and MCP tools for following our code conventions, handling repeated development tasks, and finding answers in the codebase.
  2. Feb 2024 - Nov 20243 highlights

    SADAD

    Frontend Developer
    • Developed and maintained web applications with Angular.
    • Replaced the team's date picker, which was incompatible with the newer Angular version, with one built from scratch - removing a blocker to the framework upgrade.
    • Built a permission-driven sidebar navigation with unlimited nesting, rendering menu depth dynamically from user permissions returned by the API.
    Feb 2024 - Nov 2024

    SADAD

    Frontend Developer

    • Developed and maintained web applications with Angular.
    • Replaced the team's date picker, which was incompatible with the newer Angular version, with one built from scratch - removing a blocker to the framework upgrade.
    • Built a permission-driven sidebar navigation with unlimited nesting, rendering menu depth dynamically from user permissions returned by the API.
  3. Dec 2022 - Nov 20232 highlights

    TashilCar

    Frontend Developer
    • Built production features with React, Next.js, TypeScript and styled-components, using React Query for API state management and caching.
    • Built an internal icon package with a Figma-to-React pipeline that imports icons from a Figma file and exports them as React components, keeping design and code icon sets in sync.
    Dec 2022 - Nov 2023

    TashilCar

    Frontend Developer

    • Built production features with React, Next.js, TypeScript and styled-components, using React Query for API state management and caching.
    • Built an internal icon package with a Figma-to-React pipeline that imports icons from a Figma file and exports them as React components, keeping design and code icon sets in sync.
  4. Jan 2021 - Dec 20221 highlight

    Fanap Plus

    Frontend Developer
    • The company's app was an educational platform for children and teenagers. Built its frontend from scratch with React, Next.js, TypeScript and Tailwind CSS.
    Jan 2021 - Dec 2022

    Fanap Plus

    Frontend Developer

    • The company's app was an educational platform for children and teenagers. Built its frontend from scratch with React, Next.js, TypeScript and Tailwind CSS.
  5. Nov 2019 - Dec 20201 highlight

    Arsh

    Frontend Developer
    • Built admin panels, e-commerce and map-based web apps with React, Redux, Redux Saga, Formik and styled-components, and maintained the company's website on WordPress.
    Nov 2019 - Dec 2020

    Arsh

    Frontend Developer

    • Built admin panels, e-commerce and map-based web apps with React, Redux, Redux Saga, Formik and styled-components, and maintained the company's website on WordPress.

Work

In progress

Orange

A modern, read-only Hacker News reader with its own design system, documented in Storybook.

  • Next.js
  • TanStack Query
  • Zod
  • Base UI
Read case study : Orange
In progress

Money

A Persian, right-to-left personal accounting app. Record transactions by hand, or by talking to Claude through the app's MCP connector.

  • Next.js
  • Postgres
  • Drizzle
  • Better Auth
  • MCP
Read case study : Money

Skills

Languages & Frameworks

  • JavaScript
  • TypeScript
  • HTML
  • CSS
  • React
  • Next.js

Data & State

  • React Query
  • Redux
  • Redux Toolkit
  • Zod

Styling & UI

  • Tailwind CSS
  • SASS
  • MUI
  • Ant Design
  • shadcn/ui
  • Bootstrap
  • Framer Motion
  • Storybook

Testing

  • Vitest
  • React Testing Library
  • MSW (Mock Service Worker)

Tools

  • Vite
  • Git
  • GitLab
  • GitHub

Backend

  • Node.js
  • Express

Contact: Let's build
something.