Maxence Leguéry
Relevé is live on the App Store; Google Play review in progressStation 2 runs the real Cutforge editor: power it onHolding orbit around a Kerr black hole, a = 0.90, r = 70 MOpen to new missions: products, AI features, cloud infrastructure
Open to new missions
ST-01

Bridge

Maxence
Leguéry

Freelance engineer, Paris

I take products from the first commit to production and keep them running: the app, the models, and the cloud underneath.

Currently CTO for Podtech, remotely. Also shipping Relevé, a road-collecting game for France, now on the App Store.

Outside
Kerr black hole, spin a = 0.90
Clouds flown
GCP, AWS, Azure, OVH

Select a body to open its mission

ST-02

Missions

CH 1RELEVÉFEED
Relevé progress across France
Relevé badges screen
Mission

Relevé

Since2026
StatusApp Store, Play in review

A road-collecting game for France

Solo: product, design, mobile, backend, ops

Every street, track and trail you actually travel goes into your notebook. You finish a commune street by street, hunt the rare roads, and watch France fill in. I built it alone, from the map-matching backend to the store listing.

road segments in the catalog
34.6M
of French roads indexed
2.76M km
GPS traces kept after matching
0
  • OpenStreetMap cut into ~100 m segments with stable keys (way id + ordinal), imported with GDAL into PostGIS and assigned to their commune.
  • Traces are map-matched on a self-hosted Valhalla. Low-confidence matches and anything above 200 km/h are dropped, so trains and planes don't count.
  • The phone buffers background location in SQLite and flushes in batches. The server keeps segment IDs only, never the raw trace.
  • Load-tested against the live France catalog before launch. Replacing a 15 s poll cut player data use from ~265 MB/h to ~65 MB/h.

Expo / React Native / MapLibre / SQLite / Bun / PostGIS / Valhalla / Supabase Auth / Docker / nginx

ST-03

Systems

How I put things into production, for clients and for my own products. Drawn the way I declare it in Terraform; the small labels are the resource types.

HOLO 3PRODUCTION TOPOLOGYNOMINAL
Production topologyClients reach an HTTPS load balancer that spreads requests over three web instances inside a private network. The instances enqueue jobs in Redis for workers, write to a Postgres primary replicated to two read replicas, and call a GPU VM that serves a self-hosted LLM from a storage bucket. Below, the delivery lane: git push, GitHub Actions authenticating with OIDC, Artifact Registry, then a rolling deploy to the web instances.VPC: private IPs only, egress through Cloud NATDeliveryClientsweb + mobileLoad balancerHTTPS, managed TLSweb-1instance_group.webweb-2instance_group.webweb-3instance_group.webRedisredis_instance.queueWorkersBullMQ x2Postgres primarysql_database_instanceReplica Aread replicaReplica Bread replicaGPU VMself-hosted LLMModel weightsstorage_bucketgit pushGitHub ActionsOIDC, no keysArtifact RegistryRolling deploy
RequestsBackground jobsReplicationModel weightsDeploys

Flight rules

  • Infrastructure is code

    Every resource lives in Terraform with remote, locked state. Nothing gets clicked into existence in a console.

  • No long-lived keys

    CI reaches the cloud with short-lived OIDC tokens through Workload Identity Federation. No service-account JSON in repos or CI secrets.

  • Least privilege

    One service account per workload, scoped to exactly what it touches.

  • Secrets in a vault

    App secrets live in a self-hosted Infisical and are injected at runtime, not passed around as .env files.

  • Private by default

    Only the load balancer faces the internet. Instances egress through Cloud NAT; containers bind to 127.0.0.1 behind nginx.

  • Managed TLS, real health checks

    Certificates renew themselves, and an unhealthy instance leaves the pool before users notice it.

  • Scans in the pipeline

    Dependency audits, mobile security scans and SonarQube run in CI against a baseline, so new issues stand out.

  • Right-size it

    When the load allows, one well-run VPS beats a cloud bill. Adenor, Relevé and this site share one box: Docker, nginx, certbot, systemd.

Clouds flown

GCP
Cloud Run, Compute Engine with GPUs, Memorystore, Artifact Registry, Cloud DNS, Cloud Storage, HTTPS load balancing
AWS
Production deploys for Podtech's travel planner, Route 53
Azure
Model serving at Visionairy, speech-to-text for Buddy
OVH
A bare VPS running my own products
ST-04

Workbench

Languages and tools I use every week, caught mid-task.

fixmatch/train.pyPyTorch
# keep only the confident pseudo-labels
@torch.no_grad()
def pseudo_labels(model, weak, tau=0.95):
probs = model(weak).softmax(dim=-1)
conf, y = probs.max(dim=-1)
return y, conf.ge(tau)
~/researchuv
uv sync --frozen
Resolved 41 packages in 18ms
Installed 41 packages in 212ms
uv run pytest -q
................................ [100%]
32 passed in 2.41s
parser/scan.rsRust
/// hot loop of a generated JSON parser
#[inline(always)]
fn ws(b: &[u8], mut i: usize) -> usize {
while i < b.len()
&& b[i].is_ascii_whitespace() {
i += 1;
}
i
}
raytracer/trace.cuCUDA C++
__global__
void trace(const Ray* rays, Hit* hits,
BVH bvh, int n) {
int i = blockIdx.x * blockDim.x
+ threadIdx.x;
if (i >= n) return;
hits[i] = bvh.closest_hit(rays[i]);
}
~/adenorbun
bun install --frozen-lockfile
Checked 468 installs (no changes)
bun run build
▲ Next.js 16.2
✓ Compiled successfully
✓ Generating static pages (24/24)
infra/terraformTerraform
terraform plan -out=tfplan
+ google_compute_instance.llm
~ google_cloud_run_v2_service.web
Plan: 1 to add, 1 to change, 0 to destroy.
terraform apply tfplan
Apply complete! Resources: 1 added, 1 changed, 0 destroyed.
Languages
Python, TypeScript, C/C++, Rust, Java, GLSL, SQL
Machine learning
PyTorch, scikit-learn, OpenCV, MLflow, CUDA, LLM agents, Embeddings
Product
Next.js, React, React Native + Expo, Supabase, PostgreSQL, PostGIS, Redis + BullMQ, WebGPU, WebCodecs, WebAssembly
Infrastructure
Terraform, Docker, GitHub Actions, GCP, AWS, Azure, nginx, Linux, NixOS
Tooling
uv, bun, cargo, wasm-pack, Vite, Vitest, SonarQube, git
ST-05

Log

Where I have worked, studied and published, and the flights before these ones.

DocumentService record
CrewMaxence Leguéry
Revision2026-10
Sheet1 of 1

Experience

October 2025 - Present

Freelance CTO

Podtech, Remote (Paris / Tokyo)

  • Own architecture, infrastructure and delivery for Podtech's products; lead engineer on Buddy AI Note, a memo-first daily workspace where users write their daily memo and AI turns it into tasks, calendar events, and email replies
  • Designed and shipped bidirectional Google / Outlook calendar sync and Gmail / Outlook email triage with AI-generated drafts
  • Built a long-term AI memory layer (entity graph + observations + per-user distillation) so the assistant learns user preferences across sessions
  • Architected the BullMQ + Redis background fleet, leader-elected scheduler, and shipped the Next.js web app + Expo mobile app from a shared Supabase + Postgres + RLS data layer
  • Run the company's cloud in Terraform across GCP, AWS and Azure, with keyless CI deploys and self-hosted secrets management

Next.js, React, TypeScript, Expo, React Native, Supabase, PostgreSQL, OpenAI, BullMQ, Docker, Terraform, GCP

April 2025 - September 2025

Lead Engineer Internship

Podtech, Tokyo, Japan

  • Led a web application project for recommending the best itinerary for tourists in Japan
  • Deployed in production using Docker and AWS
  • Contributed to agentic AI projects

Python, Agentic AI, React, NextJS, Docker, AWS, DevOps

February 2024 - August 2024

Engineer Internship in Deep Learning

Visionairy, Paris, France

  • Implemented AI solutions for anomaly detection in industrial environments
  • Deployed machine learning models in production using Docker and Azure
  • Collaborated with cross-functional teams for smooth integration and continuous improvement of AI systems
  • Developed robust testing frameworks for ML model validation

PyTorch, Python, Computer vision, Docker, Azure, OpenCV, MLOps

September 2023 - February 2024

Research Internship in Deep Learning

U2IS Laboratory, ENSTA Paris, Palaiseau, France

  • Conducted research on uncertainty estimation to mitigate overconfident AI model predictions
  • Collaborated with teacher-researcher, resulting in a paper submitted to CVPR
  • Contributed to advancing deep learning techniques for robust and reliable AI models
  • Implemented novel Bayesian neural network architectures

PyTorch, Python, Computer vision, Bayesian Networks, Research

June 2023 - August 2023

Research Internship in General Relativity

CPHT, École Polytechnique, Palaiseau, France

  • Studied quasinormal modes of different space-time geometries
  • Developed numerical methods for solving differential equations in curved spacetime
  • Published research on quasinormal modes in curved space-time
  • Implemented computational physics simulations using Python

Python, Mathematical Modeling, Numerical Analysis, Physics

Education

2021 - 2025

Master of Science in Engineering

ENSTA Paris, Palaiseau, France

Top 10 Graduate school of engineering in France. Specialization in computer science with focus on PyTorch, OpenCV, Machine Learning, and Deep Learning.

2019 - 2021

CPGE PTSI-PT*

Lycée Gustave Eiffel, Bordeaux, France

Advanced Physics and Mathematics Class. 2 years of intense preparation for application to graduate schools.

2016 - 2019

Baccalauréat S

Lycée Fernand Daguin, Mérignac, France

French national academic qualification after secondary education. Graduated with honor.

Publications

December 23, 2023

Make Me a BNN: A Simple Strategy for Estimating Bayesian Uncertainty from Pre-trained Models

Gianni Franchi, Olivier Laurent, Maxence Leguéry, Andrei Bursuc, Andrea Pilzer, Angela Yao

Deep Neural Networks (DNNs) are powerful tools for various computer vision tasks, yet they often struggle with reliable uncertainty quantification - a critical requirement for real-world applications. Bayesian Neural Networks (BNN) are equipped for uncertainty estimation but cannot scale to large DN…

2023

Quasinormal modes in curved spacetimes

Research report, ENSTA Paris and CPHT, École Polytechnique

Earlier flights

Student and early client projects, kept on file.

Parts selection applicationPython Smolagents / Agentic AI / NextJS

Leverage specialized large language models to instantly recommend optimal parts from vast component databases. Our AI agent understands your requirements and finds the perfect match.

  • Simply describe what you need in natural language. Our AI understands context and asks clarifying questions.
  • Advanced algorithms search through multiple databases simultaneously, finding parts that match your exact specifications.
  • Get recommendations in seconds, not hours. Our AI processes your requirements and delivers results instantly.
  • Browse instantly though Monotaro, Castorama or SMC catalogs.

Python Smolagents, Agentic AI, NextJS, React, Docker, AWS

Tabichan, an AI-driven travel plannerPython Smolagents / Agentic AI / NextJS

Tabichan brings your travel ideas to life. Easily find the best travel experiences by chatting with Tabichan.

  • Simply ask Tabichan where you want to go, what you want to do, or even just how you're feeling.
  • Tabichan instantly suggests unique tourist spots you've never seen before, tailored to your preferences.
  • Choose your favorite plan, book, and enjoy the best trip ever!

Python Smolagents, Agentic AI, NextJS, React, Docker, AWS

C++ raytracer engine, first versionC++ / CUDA / SDL2

A realistic 3D renderer with raytracing built from scratch using C++. Features CUDA acceleration for massive performance improvements and real-time rendering capabilities.

  • Render triangles and polygons with triangle decomposition
  • Bounding Volume Hierarchy (BVH) optimization
  • Advanced material system with light emission, color, glossiness, transparency
  • Dynamic camera with adaptable parameters (FOV, image size)
  • SDL2 live screen with keyboard camera control
  • PNG export functionality
  • OBJ file format support

C++, CUDA, SDL2, OpenGL, Linear Algebra, Computer Graphics

FixMatch algorithm implementationPython / PyTorch / Machine Learning

Implementation of the FixMatch semi-supervised learning algorithm for training ML models with limited labeled data by leveraging pseudolabeling on unlabeled examples.

  • Semi-supervised learning implementation
  • Pseudolabeling for data augmentation
  • Consistency regularization techniques
  • State-of-the-art performance on benchmark datasets
  • Comprehensive evaluation metrics

Python, PyTorch, Machine Learning, Semi-Supervised Learning, Data Augmentation

3D Tetris gameC++ / OpenGL / GLFW

A modern 3D interpretation of the classic Tetris game, featuring enhanced graphics, smooth animations, and immersive gameplay mechanics.

  • 3D block mechanics and physics
  • Smooth rotation and movement animations
  • Multiple camera angles
  • Score tracking and level progression
  • Modern OpenGL rendering pipeline

C++, OpenGL, GLFW, Game Development, 3D Graphics

ST-06

Comms

Tell me what you're building.

A few lines are enough: what exists today, what should exist, and by when. I usually answer within a day.

What I take on

  • Building a product from zero to production: web, mobile, AI features
  • Cloud infrastructure in Terraform, CI/CD and security hardening
  • Taking over an existing codebase and making it dependable
  • Fractional CTO work: architecture and technical decisions

Open to new missions. Remote from Paris, in French or English.

© 2026 Maxence Leguéry. A static Next.js export, served by nginx from a VPS I run.