Work

The case study first, then the record that supports it.

Interview Challenger

A product I designed, built and operate alone, from the first need to the alert.

It turns a job-offer URL into a generated interview-preparation site: fetch the offer, research the company, plan the pages with an LLM, build a static site, publish it behind a password. One side-effect-free core, four consumers: a CLI, a FastAPI job API with SSE progress, a multi-tenant SaaS server with quotas, and a React SPA.

  • CI on GitHub Actions: lint, type checks, SAST, secret scanning, an import-boundary check, and an end-to-end suite that runs against the deployed image
  • Release pipeline builds SHA-tagged images to GHCR, then opens deploy pull requests. Development auto-merges, production waits for a human
  • GitOps delivery on Kubernetes: one ArgoCD ApplicationSet driving two environments, one Helm chart, per-environment values, self-healing sync
  • Infrastructure as code with OpenTofu (private network, dedicated PostgreSQL, firewalls, remote state on object storage), provisioned with Ansible

See my GitHub

One client at a time, since 2010.

  • 2010
    Productivix

    Wrote the Dolibarr tutorials the client's users learned from.

  • 2010
    Gabon Sprint Auto

    Django applications and payment integrations.

  • 2011
    Nitroserv

    Website redesign in Django, with Mercanet, PayPal and AlloPass.

  • 2012
    3VOIE

    iOS shopping app: catalogue, payment, inventory.

  • 2012
    Artaban

    Ported a CCFA iPhone application to Android.

  • 2013
    Vitameet

    Android application for a social network, built from scratch.

  • 2013 to 2014
    Treshna Enterprise

    PHP and Python web applications, native Android and iOS, Debian servers, MySQL to PostgreSQL migration.

  • 2014 to 2026
    Long-term practice

    Full-stack Python, payments with Mangopay, flask-admin back offices, Vue front ends, and the legacy migrations nobody volunteers for.

Also for Somfy, Foodstack and Unikaya.

Also built

  • LetMeGetInA rebuilt accessibility referential: public FastAPI API, PostgreSQL with PostGIS, Next.js frontend. The community side is not built.
  • Strata SaladQwen 3.8 self-hosted on SaladCloud RTX 3090, driven by a shell CLI and a GitHub Actions image build.
  • Medical AppointmentFastAPI and React booking system delivered through ArgoCD and Helm.

The stack I actually run.

Backend
PythonFastAPIDjangoFlaskDjango REST FrameworkSQLAlchemyRESTSSE
Async
CeleryRabbitMQKafkaRedis
AI
OpenAI-compatible APIsQwen self-hostedagent tooling
Front and mobile
Vue.jsJavaScriptAndroidiOS
Data
PostgreSQLMySQL / MariaDBMongoDBElasticsearch
Platform
KubernetesDockerOpenTofu / TerraformAnsibleArgoCDHelm
Operations
GrafanaPrometheusAlertmanagerOpenTelemetrySentry
Quality
pytestruffmypybanditgitleaksCodeQLTrivypre-commit
Dependencies
RenovateDependabotpippoetryuv
Cloud
AWSGCPCloudflareHetznerLinux
Legacy web
WordPressMagentoDrupal
Security
PEN-200 course (OffSec)API security