Mark Stratmann
About Me Background Image

À propos de moi

Un nerd de l’informatique et je le suis depuis très, très longtemps

Expérience récente

Plateforme d’archivage d’e-mails

CTO et développeur full-stack senior

Responsable d’une plateforme complète d’archivage et de conformité des e-mails de niveau entreprise, au service de plusieurs clients internationaux. La plateforme traite des millions d’e-mails chaque jour sur une infrastructure cloud AWS et des déploiements on-premise.

Technologies clés : TypeScript, Node.js, Go, Java 21, Spring Boot 3.5, React, Next.js, MongoDB, MySQL, Kafka, Kubernetes, Helm, Ansible ELK, Prometheus, Grafana, AWS, Docker, Cypress, Redis, Prisma, SAML 2.0, OAuth2

Infrastructure & DevOps

Déploiements Kubernetes : Création de 50+ configurations de charts Helm pour l’ensemble des services de la plateforme. Mise en œuvre de politiques d’autoscaling, de pod disruption budgets et de network policies pour une communication service-à-service sécurisée.

Infrastructure AWS : Mise en place de pipelines de déploiement automatisés à l’aide de templates CloudFormation et de playbooks Ansible sur plusieurs régions AWS. Gestion des passerelles VPN, rôles IAM, groupes de sécurité et de la configuration DNS Route53.

CI/CD : Mise en œuvre d’Azure Pipelines pour les tests automatisés et les builds de conteneurs. Exécution de tests en parallèle avec Jest et Mocha, rapports de couverture de code et pipelines de déploiement multi-étapes.

Supervision : Intégration de la collecte de métriques Prometheus, de tableaux de bord Grafana et de la stack ELK pour l’agrégation des logs. Mise en place de checks de santé des services et de politiques d’alerte.

Environnements de développement Docker : Conception de configurations docker-compose complètes pour le développement local, incluant :

  • Replica sets MongoDB avec checks de santé via mongosh
  • Bases MySQL/Percona avec paramètres de collation personnalisés
  • Clusters Kafka/Zookeeper avec initialisation des topics
  • Serveurs MinIO (compatibles S3) avec création de buckets
  • Architectures multi-services avec orchestration des dépendances
  • Outillage de développement : kubectl proxy, mongo-express, kafdrop, clients MySQL

Images de conteneurs Docker : Construction et optimisation d’images de conteneurs via des builds multi-étapes pour :

  • Services Node.js : Images basées sur Alpine avec compilation TypeScript, node-prune pour l’optimisation de la taille, et des runners distroless pour une empreinte d’exécution minimale
  • Services Go : Images basées sur devcontainer avec dépendances librdkafka pour la connectivité Kafka
  • Images de base Ubuntu : Images personnalisées préconfigurées avec Node.js, Java JDK, AWS CLI et des outils de développement

Conteneur de base Ubuntu : Construction et maintenance d’une image de base Ubuntu 22.04 avec Node.js, Java JDK 24, AWS CLI, ZooKeeper, etcd, Kafka et des outils de développement pour des environnements de build cohérents.

Conteneur CloudShell : Construction de conteneurs de base et d’outils Azure Cloud Shell avec PowerShell 7 et divers SDK Azure pour les workflows de gestion du cloud Microsoft.

VS Code Dev Containers : Configuration d’environnements de conteneurs de développement pour plusieurs services avec support du développement à distance, passthrough SSH et gestion des extensions.

Base de données & gestion des données

MongoDB : Base orientée documents avec replica sets pour la haute disponibilité. Mise en œuvre de sauvegardes automatisées et de procédures de reprise après sinistre via mongodump/mongorestore.

MySQL/Percona : Base relationnelle pour les données structurées, avec des workflows de sauvegarde et restauration Percona utilisant myloader/mydumper pour une migration efficace des données.

CouchDB : Base orientée documents en cluster pour le stockage distribué, avec des déploiements multi-nœuds.

Migration de bases de données : Développement d’outillage de migration de données entre des clusters MySQL et MongoDB, prenant en charge des transferts de données à grande échelle avec des tests d’intégration sur des jeux de données proches de la production.

Environnement de développement Claude Code (ralph-agent)

Projet personnel - Environnement de développement IA

Création d’un environnement de développement basé sur Docker, optimisé pour des tâches d’agents IA de longue durée avec Claude Code. Inclut une configuration en utilisateur non-root avec passthrough SSH et Git, la gestion automatique de version Node.js via NVM, et la compatibilité avec VS Code Remote Development.

Technologies clés : Docker, Ubuntu 24.04, Node.js, VS Code Remote

Résumé

Vaste expérience dans la construction de plateformes SaaS d’entreprise scalables et multi-tenant, avec une expertise sur l’ensemble de la stack technologique. Capacité démontrée à architecturer des microservices, à mettre en place des pipelines CI/CD robustes et à gérer des déploiements complexes d’infrastructures cloud. Solide expérience des systèmes d’authentification, des architectures event-driven et des frameworks frontend modernes, avec un focus sur des bases de code maintenables et bien testées.

Synthèse technologique

TechnologyPurpose
TypeScriptLangage principal pour les API (Fastify, Express), le frontend (Next.js, React), bibliothèque de types partagée (@cryoserver/types)
Node.jsRuntime backend pour plus de 10 microservices
GoService SMTP pour un transfert d’e-mails haute performance
ReactFramework UI pour les tableaux de bord clients et l’administration interne
Next.jsFramework React pour les interfaces orientées client
MongoDBBase de documents principale pour les données utilisateurs et de configuration
MySQL/PerconaBase relationnelle pour les données structurées, utilisée avec Prisma ORM
CouchDBBase de documents en cluster pour les données distribuées
RedisMise en cache des sessions
Kafka/KafkaJSMessagerie event-driven entre microservices
KubernetesOrchestration de conteneurs pour les déploiements en production
HelmGestionnaire de packages pour 50+ configurations de charts Kubernetes
AnsibleProvisioning d’infrastructure et gestion de configuration (AWS, Azure)
DockerConteneurisation de tous les services avec builds multi-étapes
AWS SDKIntégration avec S3, IAM, Cognito et d’autres services AWS
OAuth2/JWTAuthentification et autorisation des API
CypressTests end-to-end et de composants pour les applications frontend
PrismaORM de base de données typé pour les migrations MySQL
ZodValidation à l’exécution des types TypeScript
MUI (Material UI)Bibliothèque de composants UI pour les applications Next.js
PuppeteerGénération de PDF
Node-RD KafkaClient Kafka pour les services Node.js
SolrService d’indexation et de requêtage pour la recherche
Prometheus/GrafanaCollecte et visualisation de métriques
ELK StackElasticsearch, Logstash, Kibana pour la centralisation des logs
Azure PipelinesCI/CD pour les builds et déploiements automatisés
Playwright/MCPAutomatisation de navigateur pour des tests UI pilotés par IA
llama.cppInférence LLM locale pour des outils CLI expérimentaux
Shibboleth SPModule Apache pour la fédération SAML 2.0
ZooKeeperService de coordination pour les clusters Kafka et Solr
MinIOStockage compatible S3 pour le développement local
MavenOutil de build de projets Java avec tests Surefire
TurboRepoOutil monorepo pour gérer plusieurs applications Next.js