Martin Poiroux
Software engineer · Full-stack and algorithms · AI-augmented development
Toulouse, France · remote from France, or on site in Toulouse
Day-to-day developer, and de facto technical lead, of a fibre-network design product of more than five hundred thousand lines of C#, deployed at telecom operators, and on the TypeScript and Azure chain around it. The domain is geospatial throughout: routing, cabling, service areas, connectivity. Alongside it, since 2022, a C++ chess engine and products taken end to end, from idea to production.
STACK
- Languages
- TypeScript · C++ · C# · Rust · Python · C · JavaScript · AssemblyScript · Kotlin · OCaml · PHP · GLSL · NetLogo
- Frameworks and platforms
- .NET · WPF · Blazor · EF Core · Next.js · React · React Native · Astro · NestJS · Node.js · Expo · Tailwind · Express · raylib · Unity · Phaser · Three.js · SDL2 · WebAssembly · Pygame · Android · Processing · Arduino
- Data and infrastructure
- PostgreSQL · SQLite · Supabase · Azure SQL · Cosmos DB · Firestore · Firebase · Azure · Azure Pipelines · Vercel · Nginx · Stripe · Socket.IO · WebRTC · CUDA · numba · NumPy
- Geospatial
- ArcGIS Pro · QGIS · shapely · networkx · GDAL
- Models and agents
- Claude Code · Ollama · llama.cpp · LM Studio · PyTorch · RAG · Microsoft Graph
- Languages
- French (native) · English (fluent, C1+) · German (basic notions)
- Eligibility
- French national · EU work authorisation
EXPERIENCE
2023 →
Seticsthe page
Developer on the software portfolio of a Toulouse company in fibre networks, and its de facto technical lead.
- Sttar, the flagship product: over five hundred thousand lines of C# and WPF, deployed by telecom operators in Europe, the United States and Asia.
- Main algorithm made modular, optimisation pipeline designed end to end (case-based reasoning, Delaunay triangulation): a critical operation went from several minutes to a few seconds.
- Technical lead in practice: daily review, architecture decisions, licence operations, coordination of an external contractor through a single point of contact.
2026 →
SaaS productsthe page
Three sold products whose roadmap the company decides and whose technical choices sit with the position.
- FiberState (TypeScript, React, .NET, Azure): field tracking of fibre rollout, then a native physical inventory, dependency scheduling, offline-first field work, as-built reconciliation.
- STEM and the network-supervision component (NestJS, Next.js, Cosmos DB): multi-tenant platform and supervision sold as a service, API and frontend as separate services on Azure App Service.
2026 →
Internal web appsthe page
Three internal tools proposed and written alongside the rest, outside the roadmap.
- Licensing chain rebuilt from scratch (.NET, Blazor Server, EF Core, Azure SQL): request, template-prefilled quote, human sales validation, then automatic generation and delivery.
- Unified portal in Blazor Server with its single sign-on; internal assistants (prototype) for Teams, multi-agent on Claude, retrieval-augmented search and the Graph API.
2026 →
GIS toolingthe page
Two GIS extensions in two languages, an ArcGIS Pro add-in in C# and a QGIS plugin in Python, on top of a computation core that knows neither.
- WKB exchange boundary, core depending on shapely and networkx alone: a business-logic fix lands on both sides instead of being written twice.
- The QGIS plugin covers QGIS 3 and QGIS 4 from a single delivery.
2023
Final-year internship
- Six months of development in Germany, before being hired in Toulouse.
2022
Silvaco internship
- Integrated-circuit netlist reduction and the simulations around it, in Python and XML, inside the pre-release test framework.
PROJECTS
2022 →
OptiChessthe page
Chess engine and analysis interface written from scratch in C++ with raylib, without a line borrowed from another engine.
- Hybrid search, a UCT-style tree above an alpha-beta and a quiescence, rather than the more common plain alpha-beta.
- Hand-written evaluation rendered as outcome probabilities; runs as a bot on Lichess, so against real opponents, at real time controls and under a real protocol.
2026 →
BlitzVolleythe page
Two-player online volleyball game in the browser: designed, written, deployed and operated end to end.
- Real time: state synchronisation, server authority, matchmaking, Elo rating, bots and a career mode.
- Self-administered server: updates, monitoring, backups, incidents.
2026 →
Lucenathe page
Chess training platform in Next.js and Supabase, in production.
- Game import from Lichess, Chess.com or a PGN file: common format, duplicates discarded, resynchronisation limited to what is new.
- The sign-in link sent by email broke outside the originating browser: authentication flow changed rather than patched.
2026 →
ConformeRGPDthe page
GDPR compliance service in production since July 2026.
- Site scanner producing a report scored by category, embeddable cookie banner in plain JavaScript inside a Shadow DOM, legal document generator.
- Registered micro-enterprise, European hosting, row-level data isolation in the database.
2026 →
Local Factorythe page
Software workshop putting open-weight models to work on a local GPU: a specification goes in, a diff comes out, the tests decide.
- A ladder of models, the smallest trying first and only failures moving up a rung, and guardrails that execute rather than being written on a wall.
- A register of optimisations where ideas are marked falsified when the numbers say so.
2026 →
claude-remotethe page
Orchestration layer on top of Claude Code: several agent sessions in parallel, each isolated in its own worktree.
- Graph scheduler, forced compaction of idle sessions, supervisor that restarts what falls over.
- PWA and push notifications: approving a tool call from a phone stops a session started in the morning from waiting until the evening.
2024 →
AI-assisted codingthe page
Daily practice since May 2024, followed along the whole curve: autocompletion, then agents, then custom layers on top.
- A specification, diff, regression, review loop, with a second reviewer taken from a different model family, because a model reviews its own work badly.
- No productivity figure claimed: the verification flaws in the custom harness all leaned towards success, and without a clean protocol a percentage means nothing.
2026 →
martinpoiroux.comthe page
Portfolio in Astro and Tailwind, fully static, bilingual, with a CV and a score reader rendered from the same content.
- Editorial rules execute rather than being written down: fact parity across both languages, French typography, drafts excluded from the production build.
2026 →
Octavethe page
Personal assistant reached from a phone, in writing or by voice: incoming email triage, memory, actions gated on approval.
- Every outgoing action waits for explicit approval: the model has no tool able to confirm what it proposes.
- Dictation transcribed on the machine: word error rate down from 20.8% to 4.1%, measured on 61 real voice notes.
2026 →
chess-netthe page
Second chess engine, in Rust, whose evaluation is a learned network: the opposite approach to the first, written by hand.
- Bitboards, magic move generation, zobrist, principal variation search with transposition table, killers, null move and quiescence, all driven over UCI; supervised training then self-play.
2026
learn-appthe page
Spaced-repetition revision app in Expo and React Native, offline by default.
- SM-2 at the centre, and the recall grade inferred from response time rather than asked of the user; two-player duel in a Firestore document watched in real time.
2026 →
game-solverthe page
Combinatorial game solver: not playing well, but proving who wins once nobody makes a mistake.
- Memoised alpha-beta negamax, compiled to WebAssembly from AssemblyScript and spread across a worker pool, with a JavaScript fallback when WASM is missing.
2026 →
dominatusthe page
Strategy and management game prototype: hexagonal island generated by biomes, four seasons that matter, around thirty buildings chained by their resources, two victory paths.
2022
itch.io gamesthe page
Five games made in Unity and published on itch.io, playable in the browser, each with its own rules, difficulty and ending.
2026 →
Barricadethe page
Board-game engine in Python: alpha-beta negamax, then a compiled kernel, with the gap between the two measured.
EDUCATION
2020-2023
ENSIIE, engineering degree
- JIN major: Digital Interaction and Video Games.
- The school chess association, EchequIIE: OptiChess’s first real opponents.
2021
BSc in Mathematics
- A double degree run alongside the engineering school.
2018-2020
Classes préparatoires MPSI / MP
- Two years of mathematics and physics, MPSI then MP.
BEYOND WORK
2020 →
Chessthe page
Chess since 2020, 2304 rapid on Chess.com. The thread that connects the engine, the training platform and the evening games.
2009 →
Compositionthe page
Classical composition since 2009, in a romantic idiom, somewhere between Beethoven, Chopin and Rachmaninov.
2011 →
Pianothe page
Piano: eight years of lessons from 2011, a stop in secondary school, a return in 2024, and writing moved back from software to the keyboard.
2018 →
Runningthe page
Running: a half marathon in 1 h 54 with no preparation, and forty-two kilometres in 3 h 55 with preparation. Mountain biking in Haute-Savoie the rest of the time.
2020 →
Cookingthe page
Cooking without a recipe, from what is left over; and an interest in ingredients that look simple and are not.
2010
Before the codethe page
Making things before programming: flip books and stop-motion animation around 2010, GameMaker then Game Develop, and the first real code in 2016.
2021 →
Nutritionthe page
Attention to macronutrients since around 2021: very little sugar, meals built for a protein/fat/fiber balance rather than a calorie total.