Bonjour, je suis
Churchill
Atchedji

Ingénieur Backend - NestJS / TypeScript - Pipelines de données & architectures multi-tenant
Je conçois des systèmes backend NestJS/TypeScript multi-tenant, des pipelines de données asynchrones et des intégrations B2B - de l'architecture au déploiement Kubernetes.
Profil professionnel
01 / À propos
Ingénieur backend spécialisé NestJS / TypeScript, avec une expérience en production des architectures multi-tenant : isolation par tenant, RBAC granulaire, cache par tenant avec invalidation contrôlée, authentification via Keycloak/JWT. Je conçois des systèmes robustes, testables et maintenables, avec une séparation claire des responsabilités à chaque couche.
Je conçois des pipelines de données complets : ingestion SFTP, traitements batch asynchrones via GCP Pub/Sub, stockage sur Google Cloud Storage, analytique BigQuery. J'intègre les systèmes externes (SFTP, HTTP, email, webhooks) avec retry logic, idempotence et observabilité via Prometheus et logs structurés.
J'assume la chaîne complète de delivery - architecture, tests (Jest, Supertest), containerisation Docker, déploiement Kubernetes via Helm, CI/CD GitLab avec semantic-release. J'ai également conçu et publié une bibliothèque NestJS interne consommée par plusieurs services, de la conception de l'API à la distribution sur registre npm privé.
Stack technique
02 / Compétences
01Backend
- Node.js
- TypeScript
- NestJS
- REST API
02Architecture
- Microservices
- Event-Driven
- Multi-tenant
03Auth & Sécurité
- Keycloak
- JWT
- RBAC
- OAuth2
04Bases de données
- MongoDB
- PostgreSQL
- BigQuery
05Messaging & Data
- GCP Pub/Sub
- SFTP
- Webhooks
- GCS
06DevOps & Cloud
- Docker
- Kubernetes
- Helm
- Helmfile
- GCP
- GitHub Actions
- GitLab CI
07Tests
- Jest
- Supertest
- Integration Testing
08Frontend
- Angular
- React
- SCSS
- HTML
- CSS
Réalisations
03 / Projets
01
Ernest Net
Calculateur de salaire brut en net pour la France, avec un simulateur d'augmentation et un comparateur de deux offres d'emploi : cotisations, prélèvement à la source et estimation du net après impôt, en français et en anglais. Site React + TypeScript pré-rendu au build ; tous les calculs se font dans le navigateur. Tests Vitest, versions publiées par semantic-release et déploiement continu sur VPS (GitHub Actions, rsync, Caddy). Développement assisté par l'IA.
Projet personnelReact · TypeScript · Vite · Vitest · GitHub Actions · Caddy · Claude Codeernestnet.fr02
Portfolio Platform
Développement d'un site portfolio statique en Astro avec toggle dark/light et FR/EN. Déploiement en production sur VPS OVH avec Caddy en reverse proxy et certificats TLS automatiques. Automatisation du build et du déploiement par une pipeline CI/CD GitHub Actions ; configuration et administration du serveur via Ansible over SSH (provisioning, mises à jour, secrets).
Projet personnelAstro · TypeScript · Tailwind · Caddy · Ansible · GitHub Actions03
Data Export Pipeline
Conception d'un microservice NestJS automatisant la génération et la livraison d'exports CSV pour plus de 10 tenants en production, avec des volumétries allant de milliers à plusieurs millions de lignes selon la fréquence (quotidienne, hebdomadaire, mensuelle) et le type de données. Patterns clés : architecture event-driven via GCP Pub/Sub, verrous MongoDB pour la concurrence multi-instances, retry idempotent sur les uploads SFTP, tâches cron orchestrant la planification par tenant, observabilité Prometheus et logs structurés.
En production · LimpidiusNestJS · TypeScript · MongoDB · GCP Pub/Sub · Docker · Kubernetes · Helm04
Enrichissement CO2e des tickets
Conception d'un flux d'enrichissement des tickets de caisse : rapprochement des produits passés en caisse avec un catalogue produit synchronisé en continu (données d'empreinte carbone), restitution aux clients finaux par email. Reporting CO2e en production sur environ 1 490 magasins Coopératives U.
En production · LimpidiusNestJS · TypeScript · MongoDB · GCP Pub/Sub05
Rattrapage de 7,8M de transactions
Conception et exécution d'un traitement batch reprenable pour le rattrapage de 7,8M de transactions de production sur données live, sans interruption de service et sans doublon.
En production · LimpidiusNestJS · TypeScript · MongoDB · Batch06
Data Import Pipeline
Refonte complète du système d'ingestion de données NestJS en environnement multi-tenant. Traitement de volumétries hétérogènes selon le type d'import : de centaines de lignes pour les référentiels à plusieurs millions pour les données métier volumineuses. Fonctionnalités livrées : ingestion SFTP automatisée avec validation et mapping configurable, écriture directe en base optimisée pour les forts volumes, lignes en erreur exportées pour rejeu (CSV), dashboard Angular de suivi des statuts avec téléchargement des fichiers originaux et mappés.
En production · LimpidiusNestJS · TypeScript · MongoDB · PostgreSQL · SFTP · Angular · Docker · Kubernetes07
Internal NPM Library
Conception, packaging et distribution d'une bibliothèque NestJS d'extraction et d'enrichissement de données produit à partir du contenu des tickets de caisse retail, réutilisée par plusieurs services pour les opérations liées aux produits. Persistance MongoDB et cache configurable. Publication sur un registre npm privé self-hosted, avec versioning et changelog automatisés via semantic-release. Workflow de release intégré au pipeline CI/CD GitLab avec linting, tests et publication automatisée par bumps conventionnels.
En production · LimpidiusNestJS · TypeScript · MongoDB · npm · semantic-release · GitLab CI · Self-hosted Registry08
Modern Receipt Viewer Refactor
Refonte complète du viewer web de tickets de caisse destiné aux clients finaux des enseignes retail (PWA Angular, multi-tenant). Migration d'une base legacy vers une architecture Angular moderne, thèmes multi-tenant en SCSS, conformité RGAA 4.1 / WCAG 2.1 AA, gestion fine des états. Développement assisté par Claude Code, avec review humaine systématique du code généré et des choix d'architecture.
En production · LimpidiusAngular · TypeScript · SCSS · PWA · RGAA / WCAG · Claude Code
Travaillons ensemble
04 / Contact
Vous avez un projet ou une opportunité à partager ? Je lis tous les messages.