Skip to content

Mohammd Benni

Robotics Engineer & Full-Stack Web Developer

Aleppo, Syria

I build systems that have to work outside the simulation: autonomous robots, the embedded layers underneath them, and the web platforms and databases that keep everything talking.

01 / About

Where software meets hardware

Mohammd Benni, robotics engineer and full-stack web developer, Aleppo, Syria

I am a robotics engineer and a full-stack web developer. Most of my work sits where software meets hardware: autonomous service robots running ROS 2 Jazzy, the embedded layer underneath them, and the web platforms that let a person actually control the thing.

On the robotics side I write C++ and Python against real sensors: RPLidar scans feeding SLAM, battery telemetry arriving over RS-485 with timing that drifts, and control loops that have to stay smooth when the data is late and noisy. Getting a machine to behave in a crowd of thousands is a different problem from getting it to behave in a simulation.

On the web side I build the whole stack: .NET Core and FastAPI backends, SvelteKit and TypeScript front-ends, PostgreSQL and SQL Server schemas, and the Docker and Linux deployment around them. I lean on Domain-Driven Design and CQRS where they earn their keep. Designing the data model is the part I enjoy most, because the shape of the data decides what the application is allowed to become.

At a glance
Based in
Aleppo, Syria · GMT+3
Available for
Remote work and relocation
Now
Robotics Engineer at SWB AI
Freelance
Full-stack web development, available
Education
BSc Electrical Engineering, University of Aleppo, 2026
Works in
C++, C#, Python, TypeScript, SQL
Languages
Arabic (native), English (professional)
02 / Work

Selected work

A robot in daily public service, a controller that has to fail safely, and seven years of contest infrastructure.

01 Robotics

Manara Robot

SWB AI, deployed at the Grand Mosque in Mecca

Manara is an autonomous guidance robot serving visitors at the Grand Mosque in Mecca and the Prophet’s Mosque in Medina. It drives itself through some of the densest pedestrian traffic on earth, answers questions about rituals and directions in eleven languages, and has to keep doing both with nobody available to restart it.

What I built on it
  1. 1

    IoT control dashboard with a live map

    A web dashboard connected to the robot for managing it and watching the map build in real time. Streaming full occupancy grids was far too heavy, so it sends only the cells that actually changed since the last frame, which keeps the map updating with no perceptible lag over an ordinary network link.

  2. 2

    Battery package in ROS 2 Jazzy and C++

    Built and optimised the battery management package: reading the BMS over RS-485, framing it correctly against hardware timing, and publishing clean state of charge and health telemetry that the rest of the stack can trust.

  3. 3

    SLAM tuning for a smoother path

    Optimised the SLAM configuration so the pose estimate stops jittering, which lets the controller follow a genuinely smooth path instead of correcting against its own noise. The difference is obvious to anyone standing next to it.

  4. 4

    Sensor integration and embedded bring-up

    Brought the compute and sensing up on Orange Pi 5 Max and Raspberry Pi: RPLidar, the ultrasonic array, and the serial devices, then kept them stable across power cycles and firmware changes.

A Manara unit answering a visitor at the Grand Mosque in Mecca
A Manara unit answering a visitor at the Grand Mosque in Mecca
Visitors using the touchscreen guidance interface
Visitors using the touchscreen guidance interface
Stack
ROS 2 Jazzy, C++, Python
Compute
Orange Pi 5 Max, Raspberry Pi
Sensing & bus
RPLidar C1, ultrasonic array, BMS telemetry over RS-485 with hardware timed framing
02 Full-stack web Live

swbai.com

SWB AI, the company website and product platform

The public website for SWB AI, the company whose robots I build. I developed it fully, front to back: a SvelteKit front-end, a Node.js API behind it, and PostgreSQL underneath.

It is the company’s shop window for an international audience, so it carries the robot platform, the developer SDK, and the custom PCB and 3D printing services. It runs in English and Arabic, which meant building the layout to survive a direction flip rather than bolting translation on at the end.

What I built on it
  1. 1

    SvelteKit front-end, server rendered

    Server rendered pages so the content is in the HTML for crawlers and for visitors on slow connections, with the interactive parts hydrating after.

  2. 2

    Node.js API and PostgreSQL

    A Node.js backend over a PostgreSQL schema designed for the content the marketing side actually edits, rather than a generic CMS shape nobody fits into.

  3. 3

    Bilingual English and Arabic with RTL

    Every layout works in both directions. RTL is a layout problem, not a translation problem, so the components were built for it from the start.

  4. 4

    Built for the connections it is viewed on

    Much of the audience is on Gulf and MENA mobile networks, so images are sized and lazy loaded, and the critical path stays small.

  • SvelteKit
  • Node.js
  • PostgreSQL
  • SSR
  • i18n / RTL
  • Responsive
  • SEO
03 Competitive programming

ACPC, Aleppo Collegiate Programming Contest

Seven years across every side of the contest

I have been involved in competitive programming from every angle: as a contestant, then as a coach, and now as the person who builds and runs the machinery a contest depends on.

On the technical side that means a PC² 9.10 judging cluster, auto judge configuration, the live scoreboard, the balloon runner, and the Resolver for the closing ceremony. I also wrote the toolkit that imports problems straight from Polygon into PC², tests, validators, time limits and all, which turned a full day of manual setup into a single command.

  • PC² 9.10
  • Bash
  • Python
  • Polygon
  • SvelteKit
  • Linux
Roles I have held
  • Contestant

    Syrian Collegiate Programming Contest and the ICPC regional, competing since university.

  • Coach

    Training teams at Aleppo University since 2022 through workshops, one to one sessions, and a structured 200 problem roadmap.

  • Technical team member

    Judging cluster, auto judges, scoreboard, balloons, and Resolver for ACPC.

  • Problem tester

    Validating problem statements, test data, and reference solutions before contest day.

  • Judge

    Served as a judge for the Idleb Collegiate Programming Contest.

On the bench

Also shipped
  • PLC Delta DVP ladder programs: sorting line and sequential conveyor control
  • Backend Student tracking API: FastAPI, PostgreSQL, idempotent upserts
  • Robotics ROS 2 occupancy grid viewer rendering a live cost map at 10 Hz
  • Freelance Product catalogues with QR generation and usage analytics
03 / Systems

System & database design

Decisions I had to argue for, including what each one cost. Architecture is only interesting when you say what you gave up.

Keeping writes honest and reads fast

Elkood, .NET Core with DDD and CQRS

The problem

A backend where the same models served both complex business rules and high traffic list endpoints. Invariants leaked into query paths, and read performance was hostage to the write model.

What I did
  1. 1 Bounded contexts with aggregates that own their invariants, so nothing mutates state except through the domain.
  2. 2 Commands write through the domain. Queries bypass it entirely and read purpose built projections.
  3. 3 Hot paths profiled and reworked: N+1 query elimination, targeted indexes, and caching where the data tolerated staleness.
  4. 4 API contracts documented and versioned so the front-end teams could move without waiting on us.
What it cost

CQRS costs you a second model to keep in sync, and it is genuinely the wrong choice for simple CRUD. It paid for itself here because the read and write shapes had already diverged, so we were paying the cost without getting the benefit.

Designing the schema before the application

Freelance, student tracking platform · PostgreSQL

The problem

Sync jobs and flaky mobile connections meant the same write could arrive twice, and reporting queries that were fine at a hundred rows fell over at a hundred thousand.

What I did
  1. 1 Idempotent upserts keyed on a natural business key, so a retried sync converges instead of duplicating.
  2. 2 Indexes chosen from the query shapes that actually run, then verified against the plan rather than guessed from column names.
  3. 3 Normalised where correctness matters, denormalised deliberately and documented where read latency mattered more.
  4. 4 Migrations versioned and reversible, with constraints enforced in the database and not only in application code.
What it cost

Constraints in the database make some deploys harder and some writes slower. I take that trade every time, because application code gets rewritten and the data outlives it.

04 / Academic

Graduation project

Kept separate from client work on purpose. This is the university project, and it is where the control theory actually gets used.

University of Aleppo Academic

Adaptive traffic intersection control

Graduation project, University of Aleppo

A traffic signal that decides its own timing from a single camera instead of a fixed schedule. YOLOv11n detects vehicles, IoU tracking with EMA smoothing turns those detections into a stable queue estimate per approach, and a pressure based supervisory controller built on Max-Pressure theory picks which phase gets the green.

Underneath it sits a finite state machine that owns safety: minimum green, all red clearance, and a fixed time fallback. If the vision layer lies, stalls, or dies, the intersection still behaves correctly. It runs on an ESP32 with a custom PCB driving the signal heads.

  • YOLOv11n
  • OpenCV
  • Python
  • ESP32
  • Custom PCB
  • FSM safety layer
  • Max-Pressure

Supervised by Dr. Hassan Al-Naddaf

How it is put together
Perception
YOLOv11n detection with IoU tracking and EMA smoothing
Control
Max-Pressure supervisory controller over a phase set
Safety
FSM with minimum green, all red clearance, fixed time fallback
Hardware
ESP32 and a custom PCB driving the signal heads
05 / Skills

What I work with

Grouped by the kind of problem rather than the language. Everything listed here I have used on something real.

Robotics & embedded

01
  • ROS 2 Jazzy: nodes, topics, services, TF
  • Autonomous navigation and sensor fusion
  • ESP32, AVR, bare metal firmware
  • Orange Pi 5 Max, Raspberry Pi bring-up
  • RPLidar C1, ultrasonic arrays, BMS
  • PCB design and hardware debugging

IoT & connected systems

02
  • RS-485, UART, I²C, SPI field buses
  • Hardware timed protocol framing
  • Telemetry ingestion and device monitoring
  • Edge inference on constrained hardware
  • Sensor networks and data acquisition
  • Battery management and power telemetry

Backend & system design

03
  • C# and .NET Core, Python and FastAPI
  • Domain-Driven Design, CQRS
  • REST API design, versioning, documentation
  • JWT auth, key issuance and rotation
  • Caching and hot path optimisation
  • Docker, Linux, Git, CI/CD

Databases & data modelling

04
  • PostgreSQL, SQL Server
  • Schema design and normalisation
  • Indexing driven by real query shapes
  • Query plan analysis and tuning
  • Idempotent upserts, versioned migrations
  • Transactions, concurrency, constraints

Web & front-end

05
  • SvelteKit, TypeScript
  • Tailwind CSS, design systems
  • Capacitor for Android delivery
  • Accessible, responsive interfaces
  • Performance and Core Web Vitals
  • Static and server rendered deployment

Vision & algorithms

06
  • YOLO v8 and v11, edge inference tuning
  • OpenCV, IoU tracking, EMA smoothing
  • Data structures and algorithms
  • Graph theory, dynamic programming
  • Complexity analysis and optimisation
  • Competitive programming, seven years
06 / Experience

Experience & education

Since Jan 2026
Current

Robotics Engineer

SWB AI · Aleppo, Syria

  • Build and program autonomous service robots on ROS 2 Jazzy, including the Manara units deployed in Mecca and Medina.
  • Wrote the C++ and Python bridge that reads battery management and ultrasonic data over RS-485 into ROS 2 topics.
  • Implemented and debugged serial protocols and hardware timing for reliable battery telemetry framing.
  • Handled embedded bring-up and optimisation on Orange Pi 5 Max and Raspberry Pi with RPLidar.
Ongoing
Current

Full-Stack Web Developer

Freelance · Remote

  • Design and ship complete web products: API, database, front-end, and deployment.
  • Backends in .NET Core and FastAPI, front-ends in SvelteKit and TypeScript.
  • PostgreSQL and SQL Server schema design, indexing, and migration strategy.
  • Available for new projects. Email or WhatsApp is the fastest way to start a conversation.
Jun 2023 to Aug 2024

Backend Developer & Database Designer

Elkood · Aleppo, Syria

  • Designed and maintained .NET Core services using Domain-Driven Design and CQRS.
  • Designed and analysed the relational schemas behind those services: normalisation, indexing strategy, and migration planning.
  • Built and documented APIs for front-end teams, improving interoperability across products.
  • Cut response times on hot paths by reworking queries, indexing, and caching.
  • Reviewed code across the backend team and enforced architectural conventions.
Since Jan 2022
Current

Problem Solving Coach

Aleppo University · Aleppo, Syria

  • Train students for ICPC style contests through workshops, one to one sessions, and a structured 200 problem roadmap.
  • Technical team member for ACPC, working on the judging system and contest day infrastructure.
  • Designed assessment tools to measure progress across cohorts.
2019 to 2026
Education

BSc Electrical Engineering

University of Aleppo · Aleppo, Syria

  • Graduated in 2026 from the Department of Automatic Control and Industrial Automation, which is where the control theory the robotics work rests on comes from.
  • Graduation project: adaptive traffic intersection control, written up in its own section above.
07 / Contests

Competitive programming

I have been coaching competitive programming since 2022 and I work on the technical team behind ACPC, our ICPC affiliated contest. Teaching is the fastest way I have found to notice what I actually understand.

Contest infrastructure

ACPC · ICPC affiliated

On the technical team I work on the machinery a contest depends on: a PC² 9.10 judging cluster, auto judge configuration, the live scoreboard, the balloon runner, and the Resolver for the closing ceremony. I also wrote the toolkit that imports problems straight from Polygon into PC², tests and validators and time limits included, which turned a full day of manual setup into a single command.

Coach, judge, and contestant

@Legends_Never_Die

I coach teams at Aleppo University through workshops, one to one sessions, and a structured 200 problem roadmap. I test problem sets before contest day and have judged the Idleb Collegiate Programming Contest. Seven years of competing is where my debugging instincts come from: the bug is almost always in the assumption you did not test.

08 / Contact

Got a robot, an embedded system, or a web platform that needs to work?

I am a robotics engineer by day and I take on freelance full-stack web work. WhatsApp is the fastest way to reach me, and I reply to every email.