● Lahore, Pakistan · ML engineer at Wortel.ai · ML Engineer
I take models from notebook to shipped, and keep the receipts.
Detection, segmentation, pose and depth pipelines in production.
Most portfolios show you the result. This one shows you the search — 69 experiments, including the 23 that failed.
person 0.99
He keeps seven CVs. So the site recompiles.
Same body of work, re-weighted for whoever is reading. Pick a role and the headline, the project order, the metrics on display and the CV download all change.
Eight model generations to move one number 35 points.
Find every picture frame on a wall that contains a human face, segment it, blur it. The rising line is what shipped. The crosses below it are the v4 campaign — five retrains that all lost to the model they were meant to replace.
The post-mortem found why: turning the old model up to confidence 0.72 lands on the same point, free, in one line. But its recall ceiling sat below where the old model already operated — a strictly dominated curve, not a tunable version.
Read the campaignThe run log
Every experiment, including the ones that failed.
Hypothesis, config, what moved, and the verdict. Click any row to open it. Pick two with the diamond to diff them.
Work
Seven projects, ordered for the role you picked.
F1 49.8 → 84.7 across eight model generations
Find every picture frame on a wall that contains a human face, segment it tightly, and blur it. Not face detection — the faces are printed, small and distant, and blurring only the face leaves the photo identifiable.
- Best F1
- 84.7
- Shipped
- 81.2
MAE 18.57 → 2.14, and one result deliberately thrown away
A fixed camera points at an outdoor waste bin. Output one integer: how full is it, 0 to 100. No depth sensor, no second view — just one RGB frame at 800x600.
- Production MAE
- 2.14
- R²
- 0.9916
AP 1.000 — published with its own caveat attached
Detect the four corners of a bin in fixed CCTV imagery and export to ONNX. Its output becomes the crop stage of the fill-level pipeline — the two projects are one delivery chain.
- Validation AP
- 1.000
- Held-out AP
- 0.9804
10,130 annotations from 850 lines of pipeline
Six annotation projects across 34 label classes, delivered as CVAT-importable COCO. An open-vocabulary VLM proposes boxes, SAM turns them into instance masks, and a renderer produces visually consistent plates regardless of source resolution.
- Annotations
- 10,130
- Densest frame
- 1,761
$0 a month, sub-2s, nothing leaves the machine
A rebuild of an assistant that queried its knowledge base on every message including "hello", returned fabricated links, and refused work as "outside my lane". The replacement runs entirely on one box.
- Running cost
- $0
- Routing
- 100%
Five-stage lifecycles that can be safely re-run
Two systems: a 17-node content pipeline that conditionally skips a paid API when the format does not need it, and a three-workflow no-code outreach stack reimplemented as ten Python modules in five days.
- Lifecycle
- 5
- Retry cap
- ≤4
Two detectors and an engine classifier, fused geometrically
A 61-page thesis and a working rig. Damage detection and part detection run independently, are matched by polygon overlap, and are combined with live engine telemetry into a single 0-10 health rating.
- Damage mAP@50
- 84.3%
- Parts mAP@50
- 87.6%
Ten thousand polygons from 850 lines of pipeline.
An open-vocabulary model proposes boxes, SAM turns them into instance masks. One larvae image carries 1,761 of them — and the model is called exactly once per image, to find the dish. Everything inside is classical computer vision.
- annotations
- 10,130
- classes
- 34
- projects
- 6
Export checkpoint
Currently open to machine learning and computer vision roles.
The CV below matches the role selected at the top of the page. Everything on this site traces back to a document in the archive, and the numbers carry their config.