Skip to the load test
babazadeh.dev/ prod / load-testAll systems operationalOperationalsim

Service owner · on call

Moe Babazadeh

CTO at Neuroject. Full-stack engineer.

I architect AI-driven platforms and scalable digital products.

CTO at Neuroject, building the alignment layer for construction enterprises. Building since 2007: robots, IoT and firmware, then web, mobile and AI platforms.

Below is a production stack in miniature, running in your browser. Send it launch-day traffic, kill a node, turn off the cache, and watch what holds.

launch-day.js

a load test, simulated in your browser · seed 2007
T+00:00.0

Throughput
—
req/s at the edge
p99 latency
—
API, last second
Error rate
—
5xx of API requests
Apdex
—
T = 100 ms
Error budget
—
SLO 99.5% · 5 min
App replicas
—
ready / desired
fastslow > 100 mserrorasync job1 in … requests traced, replayed in slow motion
Traffic
Compute
App replicas8 workers each3
Data
Read replicas7 s to sync a new one1
Resilience

Try this

  1. Launch day with autoscaling off. Then turn it on and launch again.
  2. Turn the cache off, then launch. Add read replicas until it holds.
  3. Latency monkey with the breaker on, then off. Watch p50 and Apdex.
  4. Click an app to kill it: the balancer keeps sending it traffic until two health checks fail.

Throughput

req/s · 2xx vs 5xx

Latency

histogram_quantile · log scale

Errors by status

share of API requests

502 backend gone503 shed or breaker504 timeout (1 s)

SLO burn rate

99.5% of requests succeed

Utilisation by node

busy workers and connections

Events

    Every number in this console comes from a queueing model running in your browser: Poisson arrivals, finite workers and connections, FIFO backlogs and a 1 s client timeout. Same seed, same inputs, same run.

    01

    Service owner

    The engineer this page pages.

    Moe Babazadeh
    Moe BabazadehCTO · Neuroject

    README.md

    I started building websites as a freelancer in 2007, studied electrical engineering with a focus on control systems, and spent my university years building robots, including a 1st place at RoboCup IranOpen 2010.

    Since then I’ve built for an electronics and IoT company, a grocery marketplace, an edtech company and a construction-tech company. Today I’m CTO at Neuroject, leading the platform that connects BIM, schedules, budgets and risks for construction enterprises, and bringing AI into it.

    Along the way I’ve shipped apps to the App Store and Google Play, hardware that’s still logging data after 15 years, and fixes to open source projects like Gatsby and DefinitelyTyped.

    Stack

    • TypeScript
    • React & Next.js
    • Laravel (PHP)
    • Python & FastAPI
    • AWS
    • React Native & Expo
    • Embedded C
    • PostgreSQL & MySQL
    02

    Career trace

    Every role as a span, from the first freelance site in 2007 to now. Open a span for its logs.

    career · trace19y 2mo6 services11 spans2 running
    1. Tags
      service.nameNeuroject
      organizationNeuroject
      span.nameChief Full Stack Engineer → CTO
      periodJune 2024 – Present
      duration2y 4mo
      urlneuroject.com ↗
      statusrunning

      Logs

      • CTO since September 2026, after two years as Chief Full Stack Engineer. I lead the architecture, roadmap, and delivery of a cloud-native, multi-tenant platform that connects BIM, schedules, budgets, and risks into traceable decisions.
      • Bringing AI into the platform, from natural-language access to project data to early warning on schedule and cost risk.
      • Led the architecture and build of NeuroBuild on Next.js, React 19, and Laravel, hosted on AWS Amplify and Laravel Vapor, with 4,700+ commits across five codebases.
      • Set the engineering bar: a permission check on every API route, audit trails, and production alarms and GuardDuty alerts kept in infrastructure as code.

    Provenance what this engineer was built from

    1. 2008–2012BSc Electrical Engineering, Control SystemsUniversity of Tabriz. Thesis: a two-wheel self-balancing robot with real-time fuzzy control.
    2. 2009–2011Small Size League soccer robotsA team of five fully autonomous robots playing a real match.
    3. 2010RoboCup IranOpen, 1st placeDeminer Technical Challenge.
    4. 2010National Skills Competitions, bronzeMobile Robotics.
    5. 2014–2016MSc Nanoelectronics EngineeringUniversity of Tabriz. Thesis: plasmonic wave sources based on multilayer structures.
    6. 2017Paper on arXiv ↗Design, engineering and optimization of a grid-tie multicell inverter for energy storage.
    03

    Service catalog

    Platforms and products he has shipped, with their real endpoints.

    NeuroBuild screenshot

    NeuroBuild

    live

    service/neurobuild · Neuroject

    The alignment layer for construction enterprises: one multi-tenant platform for BIM models, WBS, quantity take-off, bills of quantities, tenders, and 4D progress reports, now with AI for natural-language questions and early risk warnings. I lead it as CTO.

    • Next.js
    • Laravel
    • AWS
    • Autodesk APS
    neuroject.com ↗
    SmartClaim screenshot

    SmartClaim

    live

    service/smartclaim · SmartClaim

    AI-assisted R&D tax credit claims for the UK, Ireland, Australia, and South Africa. I work across the FastAPI and pgvector API, the SvelteKit app, and the TypeScript client SDK, and added its security gates: secret scanning, Semgrep, and Trivy on every pull request.

    • FastAPI
    • OpenAI
    • pgvector
    • SvelteKit
    • TypeScript
    smartclaim.uk ↗
    Attendum screenshot

    Attendum

    live

    service/attendum · 0&1

    Attendance monitoring live at universities in the UK and US. I wrote the firmware for the ESP32 card readers (NFC, RFID, BLE, over-the-air updates) and the nRF52840 Bluetooth beacons, and built the iOS and Android app, the staff dashboard, and a Canvas LTI app. At a single university, it has more than 200 devices online, covers over 100 classrooms and 10,000 classes, and has received over 3 million records in the past two years.

    • ESP32
    • nRF52840
    • React Native
    • Next.js
    attendum.com ↗App Store ↗Google Play ↗
    Logger screenshot

    Logger

    in production

    service/logger

    GSM weather stations that take several sensors each and send their logs home. The fleet has been online for over 15 years: more than 50 active stations and over half a billion records.

    • Hardware
    • Firmware
    • GSM
    • Sensors
    • Telemetry
    Active-Class screenshot

    Active-Class

    live

    service/active-class · 0&1

    An LMS with live exam proctoring and Azure Face identity checks. I built the user dashboard, an Office add-in that brings live polls and word clouds into PowerPoint and Word, and the product website.

    • React
    • Redux
    • Firebase
    • Office.js
    active-class.com ↗
    • live

      Education Guide · 0&1

      A React Native app on both stores that helps students starting university get to know their course, campus, city, and career options.

      Expo · React Native · TypeScripteducation.guide ↗App Store ↗Google Play ↗
    • live

      School.how · 0&1

      Online tutoring for every child: diagnostic tests, courses, quizzes, and 1-to-1 lessons over live video. I built the dashboard and the website.

      Next.js · MUI · VideoSDK · Uppyschool.how ↗
    • in production

      EPC

      An electronic pressure and flow controller: embedded hardware and firmware that hold pressure and flow at their setpoints. In production.

      Hardware · Firmware · Process control
    • in production

      Mini PLC

      A compact PLC controller built on STM microcontrollers: the board and firmware for automation on a small footprint. In production.

      STM · Firmware · PLC
    • upstream PR

      react-query-kit: strictVariables

      An opt-in flag I added to react-query-kit (31k weekly downloads) so a forgotten query argument fails at compile time instead of at runtime.

      TypeScript · React QueryCode ↗
    • upstream PR

      Gatsby: insecure uuid removed

      Removed a deprecated uuid version from gatsby-cli and gatsby-plugin-sharp that could fall back to Math.random() and was flagged on every Gatsby install.

      Node.js · SecurityCode ↗
    • personal

      Pulse IoT

      Device telemetry on plain shared PHP hosting: ingest, rollups, alarms with hysteresis, OTA firmware, and reports. No Composer, npm, or build step.

      PHP 8 · Vanilla JS · OpenAPI
    • personal

      Photo Dedup

      A native macOS app that finds duplicate and look-alike photos by how they look. Fully offline, and nothing is ever deleted.

      Swift · SwiftUI · Vision
    • open source

      matrix-keypad-freertos

      Reads matrix keypads as a FreeRTOS task, with built-in debouncing and configurable layouts and pin maps. Portable across microcontrollers.

      C · FreeRTOSCode ↗
    • upstream PR

      nanostores/persistent: tab sync fix

      Fixed persisted data being wiped when the app was opened in a second tab, in a store used 82k times a week.

      TypeScriptCode ↗
    • live

      Learning Kit · 0&1

      The product website for Learning Kit, built for 0&1.

      Next.js · AWS Amplifylearningkit.com ↗
    • live

      Exam Kit · 0&1

      The product website for Exam Kit, an online exam monitoring system by 0&1.

      Nuxt · Tailwind CSSexamkit.com ↗
    04

    Runbooks

    How he works, written down. Each step comes from a role or a project above.

    RB-01

    Securing a multi-tenant platform

    from Neuroject · SmartClaim · Gatsby

    1. Put a permission check on every API route, and keep audit trails.
    2. Keep production alarms and GuardDuty alerts in infrastructure as code.
    3. Gate every pull request with secret scanning, Semgrep and Trivy.
    4. When an unsafe dependency ships to everyone, remove it upstream, like the uuid version in Gatsby that could fall back to Math.random().
    RB-02

    Leading the architecture

    from Neuroject

    1. Own the architecture, roadmap and delivery of a cloud-native, multi-tenant platform.
    2. Connect BIM, schedules, budgets and risks into traceable decisions.
    3. Build it on Next.js, React 19 and Laravel, hosted on AWS Amplify and Laravel Vapor: 4,700+ commits across five codebases.
    RB-03

    Bringing AI into a product

    from Neuroject · SmartClaim

    1. Give people natural-language access to their project data.
    2. Warn early on schedule and cost risk.
    3. Work across the stack: the FastAPI and pgvector API, the SvelteKit app and the TypeScript client SDK.
    RB-04

    Shipping a product end to end

    from Attendum at 0&1

    1. Write the firmware for the ESP32 card readers and the nRF52840 BLE beacons.
    2. Build the iOS and Android app, and ship it to the App Store and Google Play.
    3. Build the staff dashboard and a Canvas LTI app.
    RB-05

    Making releases cheaper

    from 0&1 · Alget.nl

    1. Redesign the CI/CD pipelines to cut build and deployment overhead.
    2. Ship MVP features quickly with the product and backend teams.
    RB-06

    Taking load off the backend

    from Alget.nl

    1. Handle state and data on the client, and cut the API requests nobody needed.
    05

    Postmortems, fixed upstream

    Bugs found in other people’s systems and fixed at the source, in packages downloaded more than 300k times a week.

    Security2022

    gatsbyjs/gatsby

    Impact
    That version can fall back to Math.random(), which is unsafe for IDs. npm flagged it on every install.
    Fix
    Removed the deprecated uuid@3.4.0 from gatsby-cli and gatsby-plugin-sharp.
    Reach
    ★ 56k · 163k downloads a week
    Pull request ↗
    Data loss2022

    nanostores/persistent

    Impact
    Opening the app in a second tab wiped saved data.
    Fix
    Synced storage events only for the store’s own key.
    Reach
    ★ 383 · 82k downloads a week
    Pull request ↗
    Type safety2026

    HuolalaTech/react-query-kit

    Impact
    A forgotten argument compiled fine and only failed at runtime.
    Fix
    Opt-in strictVariables: typed query variables become required at the call site.
    Reach
    ★ 486 · 31k downloads a week
    Pull request ↗
    Type safety2025

    DefinitelyTyped/DefinitelyTyped

    Impact
    Calls that Autodesk documents failed to type-check.
    Fix
    Typed the optional RegExp filters on the Forge Viewer’s getPropertyHashes.
    Reach
    ★ 51k · 22k downloads a week
    Pull request ↗
    Bug2021

    microapps/gatsby-plugin-react-i18next

    Impact
    Refs passed to localized links were silently dropped.
    Fix
    Added forwardRef support to the localized Link.
    Reach
    ★ 119 · 5.4k downloads a week
    Pull request ↗
    06

    On-call

    Escalation policy for talking to the owner.

    Primary · Moe Babazadeh

    Building a platform, or need one kept up? Tell me what you’re working on.

    Page memoe@babazadeh.dev
    1. L1Emailmoe@babazadeh.dev
    2. L2LinkedInin/moe-babazadeh ↗
    3. L3GitHubmoeBabazadeh ↗
    4. CVRésuméresume.pdf ↗