Skip to content
AvailableOpen to full-time roles and select freelance work

Full-Stack
Developer& Team Lead

I design, build and ship production web applications — TypeScript end to end, from the interface down to the render pipeline.

Portrait of Mohammad Ali
Mohammad AliDhaka, Bangladesh
Years shipping
4+

since 2022

Projects delivered
40+

web + extensions

Templates shipped
500+

VidRush catalog

Render cost cut
50%

AWS pipeline

01Skills

38 tools

The core eight up front. Everything else I've shipped with, by layer, below.

  • TypeScript

    Language

  • React

    Interfaces

  • Next.js

    Framework

  • Node.js

    Runtime

  • NestJS

    Backend

  • PostgreSQL

    Database

  • AWS

    Cloud

  • Remotion

    Video rendering

Frontend

  • React
  • Next.js
  • Tailwind CSS
  • Redux Toolkit
  • React Query
  • React Hook Form
  • Framer Motion
  • Material UI
  • shadcn/ui
  • Sass

Backend & API

  • Node.js
  • NestJS
  • Express
  • NextAuth
  • Zod
  • Stripe

Data

  • PostgreSQL
  • Prisma
  • MongoDB
  • Mongoose
  • Firebase

Infra & Tooling

  • AWS
  • Docker
  • GitHub Actions
  • Vercel
  • DigitalOcean
  • Git
  • Postman

Specialised

  • Remotion
  • Plasmo
  • Chrome Extensions
  • FFmpeg
  • Cloudinary

Languages

  • TypeScript
  • JavaScript
  • SQL
  • HTML
  • CSS

03Experience

4 roles · since 2022
  1. Jun 2025 — Present

    Frontend Engineer & Team Lead

    Current

    VidRush AI· London, UK · Remote

    Lead the five-person engineering team behind an AI video platform — sprint planning, technical direction, code review and release quality.

    TypeScript · React · Next.js · Remotion · AWS Lambda · Node.js

  2. Jul 2024 — Jun 2025

    Full-Stack Developer

    Algesoft· Istanbul, Turkey · Remote

    Delivered production web applications and REST APIs across the stack for client products.

    React · Next.js · NestJS · Plasmo · Docker · GitHub Actions

  3. Nov 2023 — Jul 2024

    Full-Stack Developer

    Kodeend IT Solutions· Dhaka, Bangladesh · On-site

    Built and optimised production interfaces alongside backend functionality and third-party integrations.

    React · Next.js · Node.js · AWS · DigitalOcean

  4. 2023 — 2024

    Frontend Developer

    One Quality Solutions· Dhaka, Bangladesh · Remote

    Frontend developer for both the public site and the admin dashboard of a pharmaceutical QA platform.

    Next.js · TypeScript · Material UI · React Query · NextAuth

Education

  • 2020 — 2024Diploma in Computer Science & Engineering · Dhaka Polytechnic Institute
  • 2022Complete Web Development · Programming Hero
  • 2023Web Development Certifications · W3Schools

04Decision log

4 entries

The options on the table, the call I made, and what it cost.

Context

Renders were slow and expensive. Every job ran start-to-finish on a single machine, so a two-minute video meant a two-minute wait and a full instance held hostage for the duration. Cost scaled linearly with length, and a queue of long videos blocked short ones behind it.

Options considered

  • Scale the render box vertically

    Buys headroom, not throughput. Cost per render keeps climbing and one long job still blocks the queue.

  • Persistent worker pool on ECS

    Better parallelism, but we pay for idle capacity between bursts and the traffic is spiky.

  • Fan frames out across Lambda, stitch at the end

    Rendering is embarrassingly parallel at the frame level — concurrency scales with the work, and we pay only for frames actually rendered.

Decision

Re-architected the pipeline so each render is chunked into frame ranges, fanned out across concurrent Lambda invocations writing to S3, then stitched into the final file. Wall-clock time became a function of concurrency rather than video length, and billing became per-frame instead of per-instance-hour.

Outcome

Render time and render cost both dropped by half. Long videos stopped blocking the queue, and the platform could absorb bursts without pre-provisioning capacity.

  • AWS Lambda
  • Remotion
  • S3
  • Cost

Context

The catalog needed to go from nothing to hundreds of templates. Built the obvious way — one Remotion composition per template — that is hundreds of near-duplicate files, and every change to a shared behaviour becomes a hundred edits.

Options considered

  • One hand-built composition per template

    Fastest for template #1 and unbearable by template #50. Duplication compounds, fixes don't propagate.

  • JSON-configured single mega-template

    Every new visual idea becomes a config flag. The schema grows faster than the feature set and nothing is type-safe.

  • Typed, composable motion primitives

    Templates become composition, not code. Shared behaviour lives in one place; TypeScript catches misuse at build time.

Decision

Built a TypeScript + Remotion component library of typed motion primitives — transitions, text reveals, layout frames, timing helpers — so a template is assembled from vetted parts rather than written from scratch. New templates became composition work; fixes to a primitive propagated to every template using it.

Outcome

The production catalog went from zero to 500+ templates, and the marginal cost of a new one collapsed to something a non-specialist on the team could take on.

  • TypeScript
  • Remotion
  • Architecture
  • DX

Context

Client work needed production Chrome extensions on Manifest V3. MV3 splits code across service worker, content scripts and popup, each with its own bundle, lifecycle and messaging rules — and no hot reload out of the box.

Options considered

  • Custom Webpack/Vite MV3 config

    Full control, but weeks of build plumbing per project and a config only I could maintain.

  • CRXJS

    Good HMR story, thinner conventions — more of the MV3 structure still lands on us.

  • Plasmo

    Opinionated MV3 conventions, live reload, React-first, and messaging handled — build time goes into the product, not the bundler.

Decision

Standardised on Plasmo for extension work. File-system conventions handled the MV3 surface split, live reload removed the reload-the-extension loop, and the React code shared patterns with our web apps instead of being a separate dialect.

Outcome

Extensions shipped on client timelines with build configuration that stayed boring, and the same team could move between web app and extension work without relearning the toolchain.

  • Plasmo
  • Chrome MV3
  • React
  • Tooling

Context

Earlier projects ran on MongoDB and Mongoose, which was quick to start but leaked into runtime: shapes drifted from what the code assumed, and multi-step writes — order placed, stock decremented, payment recorded — had no transactional guarantee.

Options considered

  • Stay on MongoDB + Mongoose

    Familiar and fast to prototype, but relational data modelled as documents means hand-maintained integrity.

  • Postgres with a raw query builder

    Full SQL control, no generated types — the schema-to-TypeScript gap stays open and has to be hand-synced.

  • Postgres + Prisma

    Real constraints and transactions in the database, with types generated from the schema so the compiler enforces them upstream.

Decision

Moved transactional products onto PostgreSQL with Prisma as the data layer. Relations, constraints and transactions became the database's job; the generated client made the schema the single source of truth from migration all the way up to the React component.

Outcome

A whole category of runtime data bug turned into a build error. Schema changes surfaced every call site that needed updating instead of failing in production, and multi-step writes stopped being able to half-succeed.

  • PostgreSQL
  • Prisma
  • Type safety
  • Data integrity

05Services

Freelance & contract

Available for full-time roles and select freelance engagements.

01

Full-Stack Product Build

End-to-end delivery of a web product — interface, API, database and deployment — as one coherent TypeScript codebase rather than a stack of disconnected parts.

Start a conversation
02

Frontend Engineering

Interfaces that hold up in production: accessible, responsive down to 320px, fast on real devices, and built from components your team can keep extending.

Start a conversation
03

Rescue & Maintenance

Taking over an existing codebase that's slow, brittle or half-finished — stabilising it, paying down the debt that matters, and keeping it shipping.

Start a conversation

06References

2 references
Working with Ali has always been enjoyable; he is an exceptional coding partner. I have collaborated with him on many projects, and each one feels as effortless as playing a game of Ludo. He is very talented and has a knack for finding bugs efficiently.

Sheikh Shahariar Siam

Full-Stack Developer

Mohammad is very much passionate and dedicated in full-stack web development. He finished 40+ web projects at this young age. I wish a successful life for him.

Refat Shahriear

Digital Marketing Expert

08Let's talk

GMT+6 · replies in 24h

Full-time roles, contract work, or a codebase that needs rescuing. I reply within a day or two.

Direct channelsOpen