
Passenger
Ayoub Hammoudi
Software engineer, full-stack and AI platforms
From
Tunis · ESPRIT
To
Your team
Boarding
Feb 2027
Gate
Paris · EU
Carry-on
7 fixes merged upstream
github.com/Ayoubhm07

Paris · open to full-time roles, February 2027
Software engineer, full-stack and AI platforms. I build data and LLM systems end to end, and my fixes land in Apache and Microsoft codebases.

Passenger
Ayoub Hammoudi
Software engineer, full-stack and AI platforms
From
Tunis · ESPRIT
To
Your team
Boarding
Feb 2027
Gate
Paris · EU
Carry-on
7 fixes merged upstream
github.com/Ayoubhm07
Code merged into
Built with and for
Work
Each chapter is a system I built alone, with the figure that proves it and the file that proves the figure. Open the book.


Field Notes
Four systems built alone
Ayoub Hammoudi
Vol. I · 2026
Drag a page, use the arrow keys, or pull a ribbon. Or read every chapter as plain text.
Lab
No screenshots. The chain, the earthquakes and the molecules below are the ones the projects produced, pinned to a commit.
lab://taintrace · real data, pinned to a commit
RunningSkills
Read from the fifteen projects on my LinkedIn profile. Six domains orbit a core, the projects ride the ring outside. Point at a skill to see where it was used, or at a project to see what it was built with.
Sealed until you jump
43 skills · 15 projects · 6 domains
Drag to turn the galaxy. Point at a skill or a project to light its threads.

Open source
Apache, Microsoft, Prefect, SQLGlot. Each one started with a defect I traced to its line and ended with a maintainer pressing merge.
apache/beam #40430
A debug log printed in production for five years. Five years to the day.
@@ -1149,7 +1149,6 @@ location = bq.get_query_location( self._get_parent_project(), ...- _LOGGER.warning("### Labels: %s", ...) bq.create_temporary_dataset(
Merged
Duplicate test dependencies, removed with the dependency graph proven identical
MINOR: Remove duplicate test dependency declarations
Streamed Gemini calls lost their model name, so token metrics belonged to no model
Python: Honor the configured model in streamed Gemini chunks
Merged
Two scorers with different settings shared one identity, so cached results crossed over
FIX: Include matcher configuration in decoding scorer identity
Merged
Score categories came out mangled in the printed score
FIX: join score categories in pretty score output
Merged
DuckDB output dropped the UNIFORM seed, so every seed gave the same SQL
fix(duckdb): read the UNIFORM seed set by the Databricks parser
Merged
The configured Mattermost botname was silently ignored
Pass the configured botname to NotifyMattermost

Journey · Paris, open to relocation in Europe
Internships, work-study, freelance missions and a company of my own, newest first.
Sep 2026 - present
Full-stack developer · Freelance
Remote

Jan 2026 - present
Founder and software engineer · Founder
Solo-built LLM outbound platform, pre-launch.
Paris

May 2026 - Sep 2026
Full-stack engineer · Freelance
SEO and AEO refactor on Next.js 15, React 19 and TypeScript. Every build gated by Lighthouse CI budgets across 9 pages, plus Playwright specs.
Remote

Jan 2026 - Aug 2026
Full-stack developer, work-study · Work-study
Scraping robots and AI agents collecting from 51 real-estate sources over Kafka. Built the Scheduler Command on Fastify and TypeScript microservices, balancing tasks by per-source quotas. Docker, Grafana, Loki.
Paris

Dec 2025 - Feb 2026
Full-stack engineer · Freelance
Delivered the FirstDown Tech website end to end on Next.js 15 App Router, strict TypeScript and Tailwind CSS v4, with JSON-LD for answer engines.
Remote

Aug 2025 - Jan 2026
Full-stack developer intern · Internship
Fastify and TypeScript microservices and React front end on the CFP Hub real-estate platform.
Paris

Jun 2024 - Nov 2024
Full-stack developer · Freelance
Property and client matching algorithm and price predictions over scraped listings. A CNN image classifier served through a Flask API.
Dubai, remote

Jun 2023 - Sep 2023
Software engineer intern · Internship
CV generator on Angular, Spring Boot, LaTeX, Kafka and Docker.
Tunis

Jun 2022 - Jul 2022
Software engineer intern · Internship
Keycloak authentication service on Spring Cloud behind an API gateway.
Tunis

IPSSI
Master's programme, AI and Big Data development
Paris · Feb 2026 - Mar 2027

ESPRIT
Engineering degree, software engineering
Tunis · Sep 2019 - Jun 2025
From the blog
Short write-ups of fixes merged upstream: the defect, what review found, and what I took from it.

· 2 min read
Streamed Gemini calls in Microsoft Agent Framework lost their model name, so token metrics belonged to no model. The merged fix is stream-scoped, and it took review to get there.
Read
· 1 min read
Kafka's build declared three test dependencies twice. Deleting them was easy. Proving that nothing moved, not even the classpath order, was the actual work.
Read
Contact
Available for full-time roles from February 2027, in Paris or anywhere in Europe.
ayoub.hammoudi05@gmail.com