Full-stack engineer for the hard parts of the web.
4+ years taking web products from an empty repository to deployed production systems. Specialized in React, Python, real-time video over WebRTC, self-hosted LLM assistants, and interactive Web-GIS. Complete with Docker, Nginx, and cloud deployment.
Open to remote roles and contract workFull overlap with European hours
25+
projects delivered requirements to handover
6
engineering roles since June 2022
5
largest team led architecture, review, sprint
3
countries billed Canada · Germany · France
01 / Specialisms
The areas I have gone deep in
Three domains I keep being hired for, each running in production today.
Real-time systems
The screen an operator watches all shift
Video, telemetry and events arriving on one transport. Camera feeds over WebRTC with per-tile adaptive bitrate, sensor streams over WebSockets, and an event log that never blocks the render, the same real-time layer underneath all three.
20+concurrent feeds
<1sglass-to-glass
1socket, many streams
operations · sector 3 of 20 feedslive
EVENT STREAM
sector 3 · 3 series · one socket
LLM assistants
An assistant fifty people open every day
A production assistant on a self-hosted local LLM: streaming chat, persistent conversation memory and search across internal documents. The Python services talk over gRPC with shared Protobuf contracts, chosen over REST so tokens arrive as they are generated.
50+daily users
gRPCtoken streaming
Localself-hosted model
assistant · self-hosted LLMstreaming
Where is the camera retention policy?
retrieving …
RETRIEVED0 / 0
—time to first token
—tokens / second
—context used
Tokens arrive as the model generates them, not after.
Web-GIS
A full mapping platform, built alone in three months
Sole engineer from architecture to production, now deployed at three organisations. Round-trip editing rather than a read-only viewer: label and annotate features, edit attributes in place, export the modified data back out. Live asset tracking and 3D models over the basemap.
10+simultaneous layers
3organisations
3 moarchitecture to prod
layer managertracking
LAYERS4 / 12
ElevationRASTER
RoadsWMS
ParcelsGeoJSON
FleetLIVE
+ 8 more1 284 features
FEATUREP-1042
classresidential
area1 240 m²
zoneR-2 · edited
updatedjust now
1 edit pendingGeoJSON out
Toggle a layer, edit an attribute, it goes back out as GeoJSON.
02 / Process
How a project actually reaches production
The same five steps whether it is a solo contract or a five-person team.
01Scope
Turn a request into constraints: users, load, latency, who maintains it after me.
02Architect
Pick the protocol for the data, not out of habit. Write it down before writing code.
03Build
Python services and React frontend, reviewed as they go, tested where it counts.
04Ship
Docker, Nginx, CI/CD and the Linux box. Handover means it is already live.
05Hand over
Documentation and a walkthrough, so the team can run it without me.
03 / Experience
Six roles, and what actually shipped in each
Most of this was on-site in Tehran and Tabriz. The contract work is the remote part, and it is why I am comfortable across European and North American hours.
Own products end to end: architecture, Python services, React frontend, Docker containerisation and deployment, from first commit to production.
Built the React frontend of a production AI assistant used daily by 50+ people, streaming chat, persistent memory and document search over a self-hosted local LLM.
Connected the Python microservices over gRPC with shared Protocol Buffers, chosen over REST for low-latency token streaming.
Took ownership of product decisions alongside engineering, prioritising features and shaping the product roadmap for internal tools used across the company.
Independent contractor · via Freelancer.com and Sharif University startups
Delivered 25+ projects for clients in Canada, Germany and France while based in Iran, from requirements through architecture, implementation, deployment and handover.
Led a four-person cross-functional team, owning architecture, technical documentation and code review.
Own the full delivery chain: Docker, Nginx, CI/CD and Linux server administration, so clients receive a running system, not a repository.
Built the entire frontend of Buyad, plus its Telegram Mini-App, adapting to Telegram's WebApp environment, auth model and in-app payment flow.
Led a three-person frontend team, mentoring two developers and setting frontend standards across the company's products.
Built the TazminPlus account panel from scratch, modelled around multi-state transaction flows where a wrong UI state means a user misreads whether their money is safe.
Built the real-time chat (WebSockets) and live video consultation (LiveKit / WebRTC) modules at the core of the doctor–patient visit, across Neda and RoboV, deployed in Iran, Turkey and Iraq.
Co-built the atomic design system behind the telemedicine platform, owning the organism layer, and shipped it as an installable PWA.
A working sample of the 25+ projects. Sign-in is noted where a demo needs credentials.
nili · workbenchsaved
ACTIONS4
Button
FancyButton
LinkButton
INPUTS3
TextInput
Checkbox
Rating
LAYOUT2
Frame
Slot
DesignPreviewSHOWINGDefaultLTR
Password
••••••••
At least 8 characters.
I accept the terms of use
Create account
FancyButton.tsxtheme.csstranslations.json
theme · Ocean7 components · typed props
design system
Nili Design System
A component library for React and TypeScript: themeable from a single token set, bilingual out of the box, and built on Tailwind. The panel is the library running, the theme, the direction and the control states all change live.
Tokensone source of truth
FA / ENRTL and LTR
TSfully typed API
My roleAuthor and maintainer. Component API design, theming layer, RTL handling, documentation.
EPSG:432635.6683 N · 51.3664 E1:3 167z 16.1pitch 82°bearing 105°
Mercator · EPSG:3857 storagedark canvas
Open source · geospatial
Alidade
My current open-source project, the geospatial pieces that keep recurring across client work: layer management, round-trip feature editing and live asset tracking. Toggle a layer in the panel and the map redraws.
10+layer types
GeoJSONround-trip editing
Liveasset tracking
My roleSole author. Built a complete Web-GIS platform from the ground up, single-handedly.
Doctor patient video visits featuring specialist work calendar with precise availability, online appointment booking, medical test archive with quick access to results, advanced reporting, real time messaging with specialists, and flexible appointment rescheduling.
3countries deployed
PWAinstallable
LiveKitWebRTC video
My roleFrontend engineer on the core modules. Co-built the atomic design system and owned the organism layer.
Full-stack engineer for the hard parts of the web.
4+ years taking web products from an empty repository to deployed production systems. Specialized in React, Python, real-time video over WebRTC, self-hosted LLM assistants, and interactive Web-GIS. Complete with Docker, Nginx, and cloud deployment.
Open to remote roles and contract workFull overlap with European hours
25+Projects deliveredrequirements to handover
6Engineering rolessince June 2022
5Largest team ledarchitecture, review, sprint
3Countries billedCanada · Germany · France
01 / Specialisms
The areas I have gone deep in
Three domains I keep being hired for, each running in production today.
operations · 20 feedslive
EVENT STREAM
14:32:08sector 3 — object detected
14:32:08tile 5 → full bitrate
14:31:54keyframe requested
14:31:41sector 7 — motion cleared
14:31:22peer 12 renegotiated
VP8 simulcast · 3 layers<1s glass-to-glass
Real-time systems
The screen an operator watches all shift
Video, telemetry and events arriving on one transport. Camera feeds over WebRTC with per-tile adaptive bitrate, sensor streams over WebSockets, and an event log that never blocks the render, the same real-time layer underneath all three.
20+concurrent feeds
<1sglass-to-glass
1socket, many streams
assistant · self-hostedstreaming
Where is the camera retention policy?
Retention is 30 days, then footage is purged unless flagged
RETRIEVED
ops-handbook.pdf0.91
camera-policy-v4.md0.88
retention-notes.txt0.74
240msfirst token
38/stokens
6.1kcontext
gRPC · Protobuflocal model
LLM assistants
An assistant fifty people open every day
A production assistant on a self-hosted local LLM: streaming chat, persistent conversation memory and search across internal documents. The Python services talk over gRPC with shared Protobuf contracts, chosen over REST so tokens arrive as they are generated.
50+daily users
gRPCtoken streaming
Localself-hosted model
layer managertracking
ElevationRASTER
RoadsWMS
ParcelsGeoJSON
FleetLIVE
4 / 12 layers1 edit pending
Web-GIS
A full mapping platform, built alone in three months
Sole engineer from architecture to production, now deployed at three organisations. Round-trip editing rather than a read-only viewer: label and annotate features, edit attributes in place, export the modified data back out. Live asset tracking and 3D models over the basemap.
10+simultaneous layers
3organisations
3 moarchitecture to prod
01 / 03 · tap to explore
02 / Process
How a project actually reaches production
The same five steps whether it is a solo contract or a five-person team.
Scope
Turn a request into constraints: users, load, latency, who maintains it after me.
Architect
Pick the protocol for the data, not out of habit. Write it down before writing code.
Build
Python services and React frontend, reviewed as they go, tested where it counts.
Ship
Docker, Nginx, CI/CD and the Linux box. Handover means it is already live.
Hand over
Documentation and a walkthrough, so the team can run it without me.
03 / Experience
Six roles, and what actually shipped in each
Most of this was on-site in Tehran and Tabriz. The contract work is the remote part, and it is why I am comfortable across European and North American hours.
Full-Stack Software Engineer & Product Manager
Sharif Dynamics
Mar 2026 — presentOn-site · Tehran
Own products end to end: architecture, Python services, React frontend, Docker containerisation and deployment, from first commit to production.
Built the React frontend of a production AI assistant used daily by 50+ people, streaming chat, persistent memory and document search over a self-hosted local LLM.
Connected the Python microservices over gRPC with shared Protocol Buffers, chosen over REST for low-latency token streaming.
Took ownership of product decisions alongside engineering, prioritising features and shaping the product roadmap for internal tools used across the company.
Independent contractor · via Freelancer.com and Sharif University startups
Jan 2025 — presentRemote · international
Delivered 25+ projects for clients in Canada, Germany and France while based in Iran, from requirements through architecture, implementation, deployment and handover.
Led a four-person cross-functional team, owning architecture, technical documentation and code review.
Own the full delivery chain: Docker, Nginx, CI/CD and Linux server administration, so clients receive a running system, not a repository.
Built the entire frontend of Buyad, plus its Telegram Mini-App, adapting to Telegram's WebApp environment, auth model and in-app payment flow.
Led a three-person frontend team, mentoring two developers and setting frontend standards across the company's products.
Built the TazminPlus account panel from scratch, modelled around multi-state transaction flows where a wrong UI state means a user misreads whether their money is safe.
ReactTypeScriptTransaction flowsMentoring
Frontend Developer
Husan (Smart Software Takin)
Jun 2022 — Jul 2024On-site · Tabriz
Built the real-time chat (WebSockets) and live video consultation (LiveKit / WebRTC) modules at the core of the doctor–patient visit, across Neda and RoboV, deployed in Iran, Turkey and Iraq.
Co-built the atomic design system behind the telemedicine platform, owning the organism layer, and shipped it as an installable PWA.
A working sample of the 25+ projects. Sign-in is noted where a demo needs credentials.
nili · workbenchsaved
ButtonFancyButtonTextInputRatingFrame
Password
••••••••
At least 8 characters.
I accept the terms of use
Create account
theme · saffronRTLtyped props
7 componentsFA / EN
Design system
Nili Design System
A component library for React and TypeScript: themeable from a single token set, bilingual out of the box, and built on Tailwind. The panel is the library running, the theme, the direction and the control states all change live.
Tokensone source of truth
FA / ENRTL and LTR
TSfully typed API
My roleAuthor and maintainer. Component API design, theming layer, RTL handling, documentation.
My current open-source project, the geospatial pieces that keep recurring across client work: layer management, round-trip feature editing and live asset tracking. Toggle a layer in the panel and the map redraws.
10+layer types
GeoJSONround-trip editing
Liveasset tracking
My roleSole author. Built a complete Web-GIS platform from the ground up, single-handedly.
Doctor patient video visits featuring specialist work calendar with precise availability, online appointment booking, medical test archive with quick access to results, advanced reporting, real time messaging with specialists, and flexible appointment rescheduling.
3countries deployed
PWAinstallable
LiveKitWebRTC video
My roleFrontend engineer on the core modules. Co-built the atomic design system and owned the organism layer.