Aller au contenu
Thème

Développeur backend et consultant DevOps. J'écris les services, et j'opère les clusters Kubernetes qui les font tourner.

Samuel Assemien

Abidjan

Disponible en mission

01Manifeste

Le bug qui coûte cher ne fait pas planter le service. Il répond « OK » alors que rien n'est parti.

Je passe autant de temps sur ce qui se passe quand ça rate que sur le chemin qui marche.

02Sélection de travaux

Ce que je fais

03Backend et architecture

Du code qu'on peut reprendre dans deux ans

  • NestJS
  • Fastify
  • TypeScript
  • Prisma
  • PostgreSQL
  • Redis
  • BullMQ
  • Keycloak

Monolithe modulaire, événements internes plutôt qu'appels croisés, une seule couche d'accès aux données. Je dessine le schéma PostgreSQL avant d'écrire la première ligne. Un exemple de ce que ça évite : un pool de connexions Prisma qui s'épuisait sous charge, réglé en passant par PgBouncer en mode transaction plutôt qu'en agrandissant le pool.

03DevOps et infrastructure

Je monte les clusters, et je les garde

  • Kubernetes
  • k3s
  • Helm
  • ArgoCD
  • GitLab CI
  • WireGuard
  • Harbor
  • Prometheus

Vingt-cinq services migrés de Docker et Portainer vers un cluster kubeadm en production. Avec tout ce qui va autour : Keycloak multi-realm, certificats wildcard en DNS-01, VPN WireGuard pour l'administration, scans Trivy, kube-bench et Falco. Et les pannes à deux heures du matin, qui font partie du travail.

03Paiement — spécialité

Mobile Money : le dur, c'est après l'appel

available_balance
Retirable maintenant
pending_balance
En attente de règlement
locked_balance
Gelé — litige ou KYC

Orange Money, MTN, Wave, Moov, Airtel. L'intégration prend une journée ; le reste du temps part dans les états non finaux, le rejeu des webhooks, l'idempotence par référence client et la réconciliation quotidienne. J'ai conçu un portefeuille à trois soldes pour qu'aucun écart ne reste inexpliqué. Le tout sous les exigences de la BCEAO.

04À propos

Samuel Assemien

J'écris le service, et je reçois l'alerte quand il tombe

J'ai commencé en 2020 à Yamoussoukro, sur des applications de gestion immobilière et hôtelière. Depuis fin 2023 je fais surtout du paiement, et depuis début 2026 je m'occupe aussi de l'infrastructure d'un distributeur pétrolier, en freelance.

Ce qui me va dans ce métier, c'est de tenir les deux bouts. J'écris le service, je le déploie, et c'est mon téléphone qui sonne s'il tombe. Ça change la façon dont on écrit les logs.

Basé à
Abidjan, Côte d'Ivoire
Langues
Français, anglais
Format
Freelance, à distance ou sur site

05Quelques repères

6
ans de développement backend
5
paquets publiés sur npm
12
projets clients depuis 2020
4
clusters Kubernetes en production

06Publié sous @samofprog

Des briques extraites du travail réel, publiées sous licence MIT quand elles sont assez propres pour servir ailleurs. Toutes typées TypeScript.

  • @samofprog/corekitUtilitaires NestJS partagés — normalisation des erreurs Axios, gardes de type, helpers de log structuré.8 /sem.
  • @samofprog/nestjs-logstackLogger Winston clé en main — rotation quotidienne, fichiers séparés par niveau, archives compressées, JSON en production.14 /sem.
  • @samofprog/nestjs-password-validatorValidation de mot de passe par décorateurs — règles composables, liste noire, confirmation.11 /sem.
  • @samofprog/nestjs-request-loggerMiddleware de journalisation HTTP pour NestJS — masquage des en-têtes sensibles, exclusion de chemins, zéro dépendance externe, compatible Express et Fastify.39 /sem.
  • @samofprog/tiptap-vuetify-nuxtPortage Nuxt de l'éditeur riche Tiptap pour Vuetify.6 /sem.

07Parlons de votre prochain projet

sa.assemien@gmail.com

Développement backend, reprise ou mise en place d'une infrastructure, audit d'une intégration de paiement existante. Écrivez-moi, je réponds dans la journée.