I architect AI-driven platforms and scalable digital products. CTO at Neuroject, building the alignment layer for construction enterprises.
Hire Moeor scroll, and follow the click down the stack ↓
One anti-aliased pixel. Who decided its colour? Down we go.
▼ 01 · below the pixel: the rendering engine
#document · root layerMoe BabazadehHire Moe
layer 1 · NeuroBuild
layer 2 · SmartClaim
layer 3 · Attendum
layer 4 · Logger
layer 5 · Active-Class
Hit test
Style
Layout
Paint
Composite
one frame · 16.7 msplayed 100× slower
L1 Render16.7 ms a frame
Hit test: the pointer’s (x, y) is walked down the layer tree to the topmost element there: a.hire.
Style: :active now matches, so the button’s computed style changes.
Layout: geometry is recomputed only for boxes that moved. A transform moves none.
Paint: each layer records its draw calls, then rasterises them into tiles.
Composite: the GPU stacks the layers into one frame. The budget is 16.7 ms.
Layer 1 · Render
Platforms I’ve shipped
The click lands on one pixel. To learn who owns it, the browser hit-tests down through the page’s compositing layers. These are the layers I’ve built and led.
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.
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.
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.
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.
layer 5 of 5React · Redux · Firebase · Office.js
Active-Class
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.
The main thread is idle. The event loop waits for something to do.
Pointer down, pointer up: the browser queues a click task.
The loop takes the oldest task and runs it to completion.
Listeners run on the call stack, one frame per function call.
fetch() hands the request to the browser and returns a pending Promise.
The stack unwinds, nothing blocks, and a frame paints the pressed button.
Bytes arrive. The networking task source queues a task.
Resolving the Promise queues a microtask, not a task.
Microtasks drain before anything else runs. All of them.
requestAnimationFrame, style, layout, paint: the button says thanks.
Layer 2 · Event loop
What’s on my call stack
CTO at Neuroject, building the alignment layer for construction enterprises. Building since 2007: robots, IoT and firmware, then web, mobile and AI platforms.
console.trace()October 2026
Trace: now
at cto (neuroject.com)
at chiefFullStackEngineer (neuroship)
at <anonymous> (2007)
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.
runningMay 2026 – Present
Chief Full Stack Engineer · Neuroship
Chief Full Stack Engineer on contract, alongside my role at Neuroject.
▼ 03 · fetch() hands the request to the network stack
L3 HTTP · TLS1 round trip
Before any HTTP, a TCP connection. The browser sends SYN.
SYN-ACK, then ACK: one round trip just to agree to talk.
ClientHello guesses the key exchange and sends its share up front.
ServerHello answers with its share. Both sides derive the keys; everything after is encrypted.
The server proves who it is: certificate, a signature over the handshake, Finished.
The client’s Finished. TLS 1.3 took one round trip, and the lock closes.
POST /api/hire rides HTTP/2 stream 1, headers compressed with HPACK.
HEADERS with :status 200, then DATA. The response is on its way back.
Layer 3 · HTTP · TLS
About
The request leaves over TLS 1.3. Here’s what comes back.
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.
DATA · stream 1frame 2 of 3
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.
DATA · stream 1frame 3 of 3 · END_STREAM
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.
▼ 04 · the bytes leave the machine
L4 Network≈ 30 ms an ocean
fetch() becomes packets: the request wrapped in TCP, then IP, then Ethernet.
Each router reads the destination, decrements the TTL and forwards. traceroute exploits exactly that.
At the coast the packets go into glass: a subsea cable about as thick as a garden hose.
Light in fibre covers about 200,000 km a second: 6,000 km of ocean costs about 30 ms each way.
Back on land, a few more hops to the edge of the data centre.
Layer 4 · Network
Patches I sent upstream
Upstream is where packets go, and where fixes belong. Pull requests to open source packages that, together, are downloaded more than 300k times a week.
Led the frontend architecture of Active-Class, an integrated LMS and exam monitoring platform, including identity checks during live exams with the Microsoft Azure Face API.
Shipped Attendum end to end: firmware for the ESP32 card readers and nRF52840 BLE beacons, the iOS and Android app, the staff dashboard, and a Canvas LTI app.
Built Office.js add-ins for PowerPoint and Word, the School.how dashboard, the Education Guide app, and the Learning Kit and Exam Kit websites.
Redesigned the CI/CD pipelines to cut build and deployment overhead.
exit 0August 2020 – February 2021
Senior Frontend Developer · Alget.nl
Built the React frontend of a digital marketplace that helps local supermarkets and grocery businesses sell online.
Implemented state management and client-side data handling that cut unnecessary API requests.
Shipped MVP features quickly with the product and backend teams, and improved deployment workflows with CI/CD.
exit 0October 2012 – August 2020
Senior Software Engineer · Niknam
At Niknam Electronic Rayan, built IoT platforms and connected systems for monitoring, tracking, and data visualisation across multiple industries.
Designed web applications and real-time dashboards, and integrated hardware devices with GPS and mapping services for live tracking.
Modernised legacy platforms for performance, usability, and maintainability. Software Engineer from 2012, Senior Software Engineer from 2017.
exit 0August 2007 – October 2012
Web Developer · Freelance
Built websites and web applications for clients with PHP, JavaScript, jQuery, HTML, and CSS.
▼ 08 · the scheduler hands a core to the thread
L8 CPU0.3 ns a cycle
The B-tree’s search inside a page, compiled: a binary search in a dozen x86-64 instructions.
Registers hold everything in flight: lo in rax, hi in rsi, mid in rcx, the key in rdx.
Five pipeline stages overlap five instructions. A mispredicted branch flushes the work behind it.
Eight 8-byte keys fill one 64-byte cache line. The first load waits on DRAM, about 100 ns; the rest hit L1 in about 1 ns.
Layer 8 · CPU
Toolchain
Everything above compiles down to fetch, decode, execute. These are the languages and platforms I write in, and the instructions retired so far.
instruction set8 extensions
0x01TypeScript
0x02React & Next.js
0x03Laravel (PHP)
0x04Python & FastAPI
0x05AWS
0x06React Native & Expo
0x07Embedded C
0x08PostgreSQL & MySQL
perf statinstructions retired
11.8k+ commits since 2021
4,700+ of them across the five codebases of NeuroBuild.
▼ 09 · inside a single gate
L9 Siliconpicoseconds a switch
A modern processor holds billions of transistors. Zoom in on one.
An n-channel MOSFET: source, drain, and a gate on a dielectric only nanometres thick.
Raise the gate above its threshold and electrons gather into a channel: the switch is on.
Drop it and the channel vanishes. Every layer above is built on this: 1, 0, 1.
Layer 9 · Silicon
Roots
The bottom of the stack is what I studied: electrical engineering with a focus on control systems, then nanoelectronics. Below it: the degrees, the robots and five devices in production.
education and early work2008 – 2017
2008–2012
BSc Electrical Engineering, Control Systems
University of Tabriz. Thesis: a two-wheel self-balancing robot with real-time fuzzy control.
2009–2011
Small Size League soccer robots
A team of five fully autonomous robots playing a real match.
2010
RoboCup IranOpen, 1st place
Deminer Technical Challenge.
2010
National Skills Competitions, bronze
Mobile Robotics.
2014–2016
MSc Nanoelectronics Engineering
University of Tabriz. Thesis: plasmonic wave sources based on multilayer structures.
Design, engineering and optimization of a grid-tie multicell inverter for energy storage.
devices in production5
LG-01
Logger · GSM weather station
Several sensors per station, with logs sent home over GSM.
50+ stations · 15+ years online · 0.5B+ records
EPC-01
EPC · Pressure and flow controller
Embedded hardware and firmware that hold pressure and flow at their setpoints.
In production
PLC-01
Mini PLC · Compact PLC
Built on STM microcontrollers, for automation on a small footprint.
In production
AT-01
Attendum reader · ESP32 card reader
NFC, RFID, BLE and over-the-air updates. Wireless, with a battery that lasts about 16 months.
200+ devices online · 3M+ records in 2 years · 10K+ classes covered
AT-02
Attendum beacon · nRF52840 BLE beacon
Bluetooth proximity check-in, updated over the air with DFU.
In production
00Surface100 ms feels instant
01Render16.7 ms a frame
02Event loop< 50 ms a task
03HTTP · TLS1 round trip
04Network≈ 30 ms an ocean
05Servers0.5 ms in the rack
06Database≈ 100 µs a page read
07Kernel≈ 100 ns a syscall
08CPU0.3 ns a cycle
09Siliconpicoseconds a switch
↑ HTTP/2 200 · stream 1 · END_STREAM
The response climbs back up: out of the silicon, through the kernel, the database and the servers, across the ocean, decrypted, resolved, painted. Every click does this.
✓ 200 OK · back at the surface
Hire Moe
CTO at Neuroject, building since 2007. Tell me what you’re building: the platform, the product or the team behind it.