kessaldev.com

Haroune Kessal

Software engineer. I build the API and dashboard a delivery company runs on every day, and AR try‑on that runs in a browser tab.

Ship to
Your team
From
Haroune Kessal
Contents
Laravel APIs, Next.js dashboards, Python services, AR try-on
Weight
2,400+ commits since Jan 2025
Handling
Ships to production
Status
Open to work

Work

Real projects, described from the code. The repositories are private, so I'm happy to walk you through the code in an interview or a screen share.

In production

Software people depend on for their jobs every day.

Jan 2025 to now

Main backend developer

~1,400 commits

Near Delivery parcel tracking API

The Laravel API behind a parcel delivery network. Merchants create shipments, warehouses and delivery centers move them, and customers follow them to the door. Running in production with a separate staging environment.

  • Split the app into modules (parcels, warehouses, centers, companies, users) so each area can grow without tangling the rest.
  • Role-based access control scoped per company, warehouse and center, with an activity log for who changed what.
  • Shipping labels and documents as PDF with QR codes and barcodes, plus Excel import and export for bulk work.
  • Notifications on every channel the business needs: push through Firebase Cloud Messaging, SMS through Twilio, live updates through Pusher.
  • Dockerized, with tests and a GitLab CI pipeline.

Ask me about: how I structured access control across companies and warehouses, and what modularizing a large Laravel app changed for the team.

  • PHP 8
  • Laravel 11
  • Redis
  • Sanctum
  • Firebase
  • Twilio
  • Pusher
  • Docker
  • GitLab CI

Mar 2025 to now

Core frontend developer

~600 commits

Parcel management dashboard

The Next.js app the operations team works in all day, on top of the API above. It runs in Arabic, French and English, with a full right-to-left layout for Arabic.

  • Scan parcels with the device camera (QR and barcodes) right in the browser.
  • Print labels and invoices, export reports to PDF, Excel and CSV.
  • Inventory, archive and performance views with charts, and in-app push notifications.
  • Typed forms with schema validation, and Vitest tests for the routing middleware and components.

Ask me about: making one Next.js app work in three languages including right-to-left, and camera scanning on cheap warehouse phones.

  • TypeScript
  • Next.js
  • React
  • Tailwind CSS
  • SWR
  • Zod
  • Vitest
  • Docker
  • nginx

Oct 2025 to now

Backend and infrastructure

~200 commits

Optishop, e-commerce backend for an optician

An online store that sells glasses, so it has to handle prescriptions, not just carts. Laravel API with catalog, cart, orders, prescriptions and a CMS.

  • Payments through both Stripe and PayPal, with a written checklist for taking them live.
  • Product media stored on S3.
  • Infrastructure as code with AWS CDK in TypeScript, deploying to AWS App Runner.
  • One container runs nginx, PHP-FPM, the queue worker and the scheduler. A deliberate choice for this traffic, with the point where it should split written down.

Ask me about: when a single container is the right call and when it stops being one, and how secrets are handled in this setup.

  • PHP 8
  • Laravel 11
  • Stripe
  • PayPal
  • AWS CDK
  • App Runner
  • S3
  • Docker

Computer vision and AR

Virtual try-on: tracking a face in real time and putting something believable on it.

Nov 2026

Solo project

Live

Lipstick try-on

Pick a shade and see it on your lips through the webcam, in the browser, with nothing to install. Works on phones.

  • MediaPipe finds the face, I turn the lip contour into a signed distance field, and a three.js shader paints it so the edges stay soft and the color follows the mouth.
  • A One Euro filter on the 40 lip points removes jitter without making the color lag behind fast movement.
  • A second model in a Web Worker detects hands or objects in front of the mouth so the color goes behind them.
  • Models are cached on the device, so a returning visitor loads them in about 0.15 s. Falls back to the CPU on machines without GPU acceleration.
  • Deployed on Cloudflare Workers, with self-check tests run on every build.

Ask me about: why a distance field beats drawing a polygon, and how I tuned the smoothing.

  • TypeScript
  • MediaPipe
  • three.js
  • GLSL
  • Web Workers
  • Vite
  • Cloudflare Workers

Oct 2026 to now

Solo project

~160 commits

FrameForge, eyewear virtual try-on platform

Getting glasses into 3D is the slow, expensive part of virtual try-on. FrameForge lets a brand photograph a real frame and get a 3D model back, then lets any store add try-on with one script tag.

  • A Python pipeline turns capture photos into an articulated, physically based glTF model, with a GPU backend using 2D Gaussian splatting, and checks it against the frame's real size.
  • A review studio where brands inspect the 3D model, QA results and an on-face preview before publishing.
  • The try-on widget runs in an isolated iframe, so it can't clash with the store's code and camera frames never reach the store. Keys only work on the origins they're registered for.
  • PostgreSQL doubles as the job queue (SKIP LOCKED plus LISTEN/NOTIFY), so there's no separate broker to run.

Ask me about: using Postgres as a job queue, and the security model for embedding a camera app on someone else's site.

  • Python
  • FastAPI
  • PostgreSQL
  • Next.js
  • MediaPipe
  • three.js
  • S3
  • CUDA
  • Docker
  • GitHub Actions

Nov 2026

Research

Ear landmark detection

Groundwork for earring try-on: find the ear in a webcam feed and place 55 landmarks on it.

  • MediaPipe's face mesh gives the head pose, and an ear region fitted from recorded video follows the head as it turns.
  • The 55-point ear model's Keras weights run in plain NumPy, so it needs no TensorFlow. Model downloads are checksum-verified.
  • Python
  • OpenCV
  • MediaPipe
  • NumPy

Side projects

Things I built because I wanted them to exist.

Nov 2026

Solo project

VoxMorph, voice changer and soundboard

A Windows desktop app that changes your voice live on calls and plays sounds on a hotkey.

  • Real-time audio effects in an AudioWorklet, and AI voice conversion (RVC) in a Python engine that streams audio back to the app.
  • Sound search through the Freesound API, with the user's API key encrypted at rest by the operating system.
  • Global hotkeys, protection against path traversal in sound files, and a one-click Windows installer.
  • Electron
  • JavaScript
  • Web Audio
  • Python
  • RVC

Stack

What I've used to ship the projects above.

Backend
PHP 8 and Laravel 11, Python and FastAPI, Node.js
Frontend
TypeScript, React, Next.js, Tailwind CSS
Graphics and vision
MediaPipe, three.js, WebGL and GLSL shaders, OpenCV, NumPy
Data
PostgreSQL, Redis
Infrastructure
Docker, AWS (CDK, App Runner, S3), Cloudflare Workers, nginx, GitLab CI, GitHub Actions
Integrations
Stripe, PayPal, Firebase Cloud Messaging, Twilio, Pusher
Desktop
Electron

Get in touch

I'm looking for a team where I can own features end to end, from the database to what users see. The quickest way to reach me is below.