Aymen Kabil

Engineering student in parallel and distributed systems at Institut Polytechnique de Paris (Télécom Paris and Télécom SudParis). I like systems that have to stay correct when machines crash and networks split, and I like proving that they do.

Looking for a six-month end-of-studies internship from April 2027, in distributed systems, cloud infrastructure or HPC.

Projects

Quorum

2026 · Go · Raft, write-ahead log, snapshots, Docker, Prometheus

A replicated key-value store on an implementation of Raft written from scratch. The consensus core never touches the clock, the network or the disk, so a whole cluster runs inside one test and replays exactly from a seed. That made it possible to throw message loss, partitions and crash-restarts at it and check Raft's safety properties after every step.

  • 3,000 randomized fault scenarios on every CI run; deliberately broken versions (a forgotten vote, a lost entry, a wrong snapshot rule) make them fail.
  • Concurrent operations under partitions, with log compaction on, checked linearizable with Porcupine.
  • Durable writes went from 842 to about 3,450 per second once replication was pipelined and fsyncs were batched.

It runs on a small cloud VM where a cron job kills the leader every ten minutes. The first days showed an election storm after each restart: the other nodes kept writing into their dead connections to the restarted one, and TCP only told them so 26 seconds later. Fixing the transport, then adding PreVote, lets a restarted node rejoin without forcing an election.

Live dashboard Code What went wrong along the way

Vigil

2026 · Go, Python · MQTT, Kafka, TimescaleDB, Prometheus, Grafana

Telemetry and failure detection for a fleet of machines. A crashed machine is easy to notice: the broker publishes its last will. A machine that is still connected but has stopped working is not, because its network thread keeps answering pings. Vigil catches both, the second with a phi accrual detector that learns each machine's heartbeat rhythm.

  • A stalled machine is flagged after about 1.2 s of silence; a crash is reported in about 1 s (50 simulated machines).
  • A stream processor keeps a 10-second history per machine in TimescaleDB and stores its Kafka offsets in the same transaction, so a crash never leaves a bucket half written.
  • No message lost at 16,000 messages per second from 8,000 simulated machines, in a load test on a 4-core CI runner.

Live dashboard Code What went wrong along the way

Fault-tolerant key-value store

2026 · Java, Akka · team of four

A multi-writer, multi-reader atomic register in the style of ABD, over N actors and tolerating fewer than N/2 crashes. Execution histories were checked for linearizability, and latency was measured across nine configurations.

Code

Distributed robotic factory

2025 · Java, Spring Boot, Kafka, Docker

A monolithic factory simulator turned, in four stages, into a concurrent and then distributed system: one thread per robot with livelock detection, a binary TCP persistence protocol, a Spring Boot service and state streamed over Kafka.

Code

HARO

2025 · Python · research, INPT

A multi-objective optimiser that proposes ways to split a Java monolith into microservices and ranks them by expected refactoring return. It compares more than twenty community-detection and metaheuristic methods on five real Spring systems. The code is private for now.

Experience

2025
Software engineering intern, CIEMS.ai, Rabat. Built a vehicle damage assessment platform for insurers: a Flask API with authentication and role-based access, vision models that pre-fill damage reports from photos, and a Next.js front end.
2025
Research intern, INPT (SEEDS team), Rabat. HARO, above.
2024
Software engineering intern, Moroccan Ministry of Health, Rabat. A health education module for a national youth platform (Spring Boot, PostgreSQL, Kafka).

Education

2026–27
M2 Parallel and Distributed Systems, Institut Polytechnique de Paris (Télécom SudParis). HPC with OpenMP, MPI and CUDA, multicore programming, distributed algorithms.
2025–27
Diplôme d'ingénieur, Télécom Paris, double degree with INPT. Distributed software systems; mathematics, theoretical computer science and operations research.
2023–25
Engineering cycle in software engineering, INPT, Rabat.
2021–23
Classes préparatoires, Lycée Mohamed V, Casablanca. Ranked 20th of 912 at the national entrance exam.

Elsewhere