Computer Vision
Object detection and tracking with YOLO and OpenCV, from dataset annotation through to a tuned, deployed model.
edge-01 · port said · --:--
device offline
This portfolio runs like one of my edge deployments. Plug the cable into the board to boot it.
edge-01 login:
Drag the cable into the port · or press Enter
Frame 0001subject detected in Port Said
AI EngineerData ScientistData Engineer
I build AI systems that work outside the lab.
01Who I am
Most machine learning looks impressive on clean data and falls apart the moment it meets a real camera in a real room.
The part I care about is that gap. I train computer vision models and get them running on small, cheap hardware — a Raspberry Pi in a yard, not a GPU cluster in a data centre.
I study AI Engineering at East Port Said National University, where I ranked first in my department with a 3.97 / 4.0 GPA. Alongside that I work in Python and C++, and I'm completing the Data Engineering track at the Digital Egypt Pioneers Initiative — because a model is only ever as good as the data behind it.
That side of the work is not just coursework. I run a production data pipeline that collects air quality readings across Egypt every six hours, tests itself before publishing, and serves the results as an open dataset anyone can use.
Object detection and tracking with YOLO and OpenCV, from dataset annotation through to a tuned, deployed model.
Getting models to run in real time on a Raspberry Pi, where every millisecond and every megabyte counts.
SQL, ETL pipelines, and database design. Turning messy raw data into something a model can actually learn from.
Python and C++ development, plus clean UI/UX so the systems I build are usable by the people who need them.
02Things I built
Each one runs outside the lab. Open a detection to see how it works — then flip through the rest.
Hourly air quality and weather for eight Egyptian cities — modelled in DuckDB and republished every six hours by GitHub Actions, with no server.
An automated pipeline that collects hourly air quality and weather for eight Egyptian cities, models them into a star schema in DuckDB, and republishes a public dashboard and open CSV dataset every six hours — orchestrated by GitHub Actions, with no server and no running cost.
Twelve data quality assertions run on every build and block publication if any of them fails. Rebuilds are idempotent and byte-reproducible: overlapping API windows get de-duplicated, timestamps are stored in UTC but reported in Egyptian local time, and closed partitions are compressed to cut repository growth roughly tenfold.
A YOLO model on a Raspberry Pi that spots stray dogs near kindergartens and drives them away with an ultrasonic repeller — 97% of Egyptian street dogs detected in testing; recognised at the EAST Engineering Expo.
A camera system that protects kindergartens and school gates from stray dogs. YOLO runs on a Raspberry Pi in real time: when a dog's centre point enters a danger zone — or its camera-estimated distance drops below 3 m — and the detection holds across frames, the Pi sounds a buzzer for staff and switches a relay that drives an ultrasonic repeller in short bursts.
Testing on 236 photos of Egyptian street dogs showed the stock model often labels baladi dogs as cows, bears or sheep. Counting those look-alike labels — never cats or people — raised dogs found from 72% to 97%, with 4% false alarms on photos of children. The open-source version adds a web dashboard, a hardware self-test, a safety watchdog, 100+ automated tests and a one-command demo. Recognised as an outstanding engineering project at the EAST Engineering Expo.
A custom YOLO model that detects and tracks an orange ball in a live camera feed — built end to end, from dataset to inference.
A custom YOLO model that detects and tracks an orange ball in a live camera feed. I handled the whole pipeline end to end — collecting and annotating the dataset, training and evaluating the model, then running inference in Python with OpenCV — and tuned it to hold accuracy across changing lighting and backgrounds.
A normalised relational database for inmate records, cells, staff and visit logs — with a role-based web app on top.
A relational database handling inmate records, cell assignments, staff, and visit logs. I built the entity-relationship model from the requirements, normalised the schema to remove redundancy, and wrote the SQL behind record retrieval, filtering, and reporting.
On top of the same data model I built a role-based web application (Node.js, Express, REST API), with Admin, Guard and Staff permissions enforced server-side on every endpoint.
03Background
Experience, education and the recognition along the way.
Download CVAugust 2026
Suez Canal Authority — Port Said
June 2026 — February 2027
Digital Egypt Pioneers Initiative (DEPI) — MCIT
2023 — 2028 (expected)
East Port Said National University
2025
East Port Said National University
2026
EAST Engineering Expo, Faculty of Engineering
2025
National digital innovation competition
2025 — 2026
NTI Machine Learning · Huawei AI & ICT · Codezilla Python
04Toolkit
Scored the way a detector reports itself — how confident I am working unaided on production code.
model.predict(skills, conf=0.50) 11 detections
05Notes from the work
Short notes on things that surprised me while building.
My detection model hit good accuracy on my laptop and then managed about two frames per second on the Pi. The fix wasn't a better model, it was a smaller one — a lighter architecture, reduced input resolution, and dropping the frame rate to something the hardware could actually sustain. Accuracy fell by a few points and the system became usable. That trade is the whole job in edge AI: the best model is the one that finishes in time, not the one with the highest score on paper.
The dog detection system performed well in testing and then started firing at nothing once it was running outdoors. The cause wasn't the model — it was that every training image had been taken in similar light. Moving shadows and evening glare looked like nothing the model had ever seen. Rebuilding the dataset across different times of day fixed more than any amount of retraining on the original images did. Most detection problems are dataset problems wearing a disguise.
Training takes an afternoon. Drawing a few thousand boxes takes a week, and every inconsistent one teaches the model something wrong. I learned to write the labelling rules down before starting — where exactly the box ends, what to do with a partly hidden object, whether to label something ambiguous at all. Boring, and it does more for final accuracy than any hyperparameter I have ever tuned.
06Say hello
If you're building something in computer vision, edge AI, or data — or you have a problem you think is a good fit — send me a message. I read everything and reply within a day or two.
Looking for roles building and deploying ML in production
tx · web3formsready