Paris

Models that have to compile. Robots that have to stand.

Inference stacks, photonic accelerators, locomotion, and vision that has to leave the notebook.

Projects

A preview first. The full demo opens under it.

01

DropRL — one training stack, many environments

RL projects often tie training code to one environment, so each new task becomes another wiring job.

open source · reinforcement learning · MuJoCo · Python · Ray RLlib

View on GitHub →

Keeping tasks, configuration, and checkpoints portable while still supporting a full Cassie locomotion environment.

Open the demo
/ droprl · cassie · RL debug signals synced to video t = 0.0s
/ droprl · snake-v0 · AI agent iter 0 · reward 0.0 · score 0
★ star · policy π

02

Affective Touch VR

Make a VR brush stroke line up with a real robotic touch setup closely enough for a psychophysics study.

capstone · VR · robotics · Unity · Franka · Redis

View on GitHub →

Keeping rendering, robot/haptic hardware, and subjective ratings in sync without breaking the illusion.

Open the demo

Unity · VR · Franka Emika · Redis · Hand tracking

Touch simulation

Affective touch simulation

A brush stroke on a virtual hand, used as the main stimulus for the study.

Protocol & interface

Calibration

Hand-tracking calibration

The participant confirms hand poses, then follows a countdown before trials start.

In-VR ratings

Pleasantness & intensity UI

Ratings happen inside the headset, so the trial flow is not interrupted.

03

Puzzle game for an ADHD study

For a school research project, build a playable game to study how children with ADHD switch between exploration and exploitation.

school project · Unity · ADHD · C# · Game design

Open project →

~200 solo hours across game loop, level design, mechanics, lighting, and the user-testing build.

Open the demo

Hub & level select

A temple hub with statue landmarks and portals into each mini-game.

Solo school project · ~200 hours · built for ADHD user testing

4 mini-games

Color-coded crate puzzle

A Sokoban-style room: push crates onto matching colored altars.

Fragile bridge pathing

Numbered crates tell you how many tiles survive before the bridge gives way.

Ice sliding & hazards

Frictionless ice, spike traps, and very little room for sloppy moves.

Flashlight labyrinth

A circular maze where the fog-of-war only reveals tiles near the player.

04

Noine — Nine Men's Morris

Build Nine Men's Morris end to end, including an AI that can actually play.

game AI · pygame · Minimax · Python

View on GitHub →

Move generation changes across placing, moving, and flying phases, so the search has to follow the game state closely.

Open the demo
/ noine — nine men's morris ·

click a point · form a mill to capture

original Pygame build

Noine board mid-game with orange and white pieces
Mid-game
Noine board during a mill capture
Mill phase

05

Convolutional Wasserstein distances

Make optimal-transport distances practical on grids and meshes.

geometry · optimal transport · Python

View on GitHub →

Using convolution and heat solves instead of materializing a dense pairwise cost matrix.

Open the demo

Barycenter demos

2D shape morph

Dots turn into a star through a convolutional Wasserstein barycenter on a 2D grid.

RGB image morph

Per-channel barycenters blend two color photos while keeping the mass structure readable.

3D voxel morph

A voxel dinosaur and a double torus interpolate through a lightly smoothed 3D barycenter.

Surface distribution transport

Heat-kernel Gaussians on a torus blend in 13 steps, so the spread and merge stay visible.

Experience

Work that had to run outside a notebook.

  1. Aug. 2026 — Oct. 2026

    ZML

    Software Engineer · Paris

    • Ported large AI models to ZML’s inference stack, built in Zig.
    • Adapted model architectures and operators so they compiled and ran efficiently on accelerators.
    • Worked on model loading, compilation, and inference.
  2. Oct. 2024 — Jul. 2026

    Arago

    Software Engineer, AI accelerators · Paris

    • A PyTorch path onto a photonic accelerator: kernels, graph placement, and the host runtime.
    • Firmware dispatch, device queues, and the driver work underneath.
    See more

    A PyTorch-first accelerator stack designed around workflows ML teams already use.

    Problem
    A photonic matrix multiply is only one kernel. The product needs an end-to-end path from PyTorch through runtime and firmware dispatch, then back to tensors users can handle normally.
    What I built
    Compiler lowering, host runtime, driver paths, fast allocation, device-to-device movement, launch queues, and firmware dispatch.
    Tricky bit
    Graph regions or single ops get placed on devices, split into primitive graphs, run on mono cores, and reported back to PyTorch through events. It still has to feel like a normal accelerator stack.

    PyTorch · Runtime · Firmware · Accelerators

    Why there is no repository →

    Runtime map

    PyTorch graph → compiler split → multi-device execution

    01

    PyTorch computation graph

    input aten.mm norm gelu copy aten.mm add output
    • ATen ops form a real dependency graph
    • Tensor edges help decide what can run where
    • Acceleratable regions get pulled out for launch
    02

    Compiler + host runtime

    01 Lower the graph
    02 Place the work
    03 Plan launches + transfers
    03

    Per-device execution

    subgraph A

    Device 0

    node -> compute DAG

    Execution sessions

    queue 0 queue 1 queue 2

    Device primitive graph

    Control core
    Laser compute unit
    Sync + device events
    PCIe / device interconnect
    subgraph B

    Device 1

    node -> compute DAG

    Execution sessions

    queue 0 queue 1 queue 2

    Device primitive graph

    Control core
    Laser compute unit
    Sync + device events
    04

    Result

    • A launch can be a compiled subgraph or one PyTorch op
    • Firmware turns it into a primitive DAG for mono cores
    • Intermediate tensors move through PCIe or device links

    Simplified map — public, generic terms only

  3. Sept. 2023 — Sept. 2024

    EyePick

    Machine Learning Engineer · Paris

    • Built computer-vision pipelines for real-time robotic automation in industrial, agricultural, and culinary settings.
    • Worked on image-based anomaly detection and classification for quality control.
    • Adapted ResNet-based models when YOLO-style detection pipelines were blocked by licensing constraints.
  4. Mar. 2023 — Sept. 2023

    Wandercraft

    Reinforcement Learning Intern · Paris

    • Trained RL control policies for the Cassie bipedal robot and the Eve exoskeleton.
    • Used NVIDIA Isaac Gym and Ray RLlib for parallel simulation and distributed policy training.
    • Worked on sim-to-real transfer with imitation learning, domain adaptation, and visual adaptation.
  5. Jun. 2022 — Sept. 2022

    Poppins (formerly Mila)

    AI Algorithms Intern · Paris

    • Implemented adaptive difficulty for a therapeutic game designed for dyslexic children.
    • Used clustering and gameplay metrics to adjust difficulty without asking children for explicit feedback.
    • Worked on both the algorithm and the game-side integration.

About

The short version, before the jobs.

Portrait of Alhussein Jamil
Alhussein Jamil AI, robotics, and systems

I’m a software engineer based in Paris. I like projects that seem simple on paper—until the constraints of the real world get involved.

I studied at École Polytechnique and Sorbonne Université: math and physics, then machine learning and robotics.

I enjoy software that has to survive contact with hardware, physics, latency, and people. Outside work, that usually means side projects, music, climbing, or a puzzle I should have left alone.

Skills and background

Tools I use, what I studied, and where I teach

Skills

Programming

Python · Zig · C++ · C · OCaml · Java · C# · SQL

AI Systems

Inference pipelines · PyTorch execution · Graph lowering · Runtime work · Custom ISA · Kernels · Multi-core execution

Machine Learning

Computer vision · Reinforcement learning · Imitation learning · Sim-to-real · Model deployment

Robotics

NVIDIA Isaac Gym · Ray RLlib · Robotic control · Industrial automation · VR robot interfaces

Tools

Linux · Git · Docker · Debugging · HW/SW integration

Education

  • École Polytechnique Engineering Degree — MSc equivalent · 2020 — 2024
  • Sorbonne University — UPMC Master 2 — Intelligent Systems · 2023 — 2024
  • Lycées Buffon & Louis-le-Grand CPGE — MPSI → MP* · 2018 — 2020

Teaching

  • X-HEC Master Guest ML lecturer for engineering and business master's students.
  • Lycée Saint-Louis Oral examiner in mathematics for CPGE students.

Languages

French bilingual · Arabic native · English bilingual · Spanish intermediate

Interests

MMA · Puzzles · Violin · Climbing

Off to the side

I taught myself 3ds Max because I wanted to make Pixar-like rooms and characters. These renders were my first real creative work on a computer.

Contact

Have a project, a systems problem, or an unusual technical challenge?