Développement informatique

Autodidacte, je conçois, déploie et maintiens des solutions web: extensions CiviCRM, sites WordPress, applications web et infrastructure sur serveur. Je travaille avec des outils d’IA et je m’attache à livrer des projets en production, documentés et maintenus.

Extensions pour CiviCRM
"

Plugins CiviCRM

  • Swiss QR Invoice – facturation QR Suisse pour CiviCRM
    Extension open source générant des factures QR-bill, en production dans une association et soumise au registre civicrm.org. PHP, API CiviCRM 6, TCPDF, intégration avec le rapprochement bancaire (CiviBanking).
  • Booking IPIK – prise de rendez-vous pour CiviCRM
    Extension de réservation pour cabinet multi-praticiens : disponibilités, notifications email personnalisées, lien avec la facturation QR. Publiée sur GitHub, documentation en anglais.
  • SMTProuter – routage SMTP pour CiviCRM
    Extension qui dirige les emails sortants vers le bon serveur SMTP selon l’adresse d’expéditeur. En production, publiée sur GitHub et sur le dépôt officiel de la communauté CiviCRM, avec un rôle de mainteneur.
Extensions pour CiviCRM
"

Infrastructure auto-hébergée sur VPS et serveur Cloud Infomaniak

J’administre un serveur cloud infomaniak et un VPS qui héberge plusieurs services : gestionnaire de mots de passe (Vaultwarden), serveur de notes (Joplin), plateforme communautaire (HumHub, HiEvents), outils de gestion de projets (NextCloud, Planka, TimeTagger), web (yoURLs) et mes propres applications. L’infrastructure combine Docker Compose, nginx en reverse proxy, certificats Let’s Encrypt via Certbot et un relais mail Postfix configuré avec SPF, PTR et DKIM pour la délivrabilité.

Portail IPIK – Portail Kerma

Compétences techniques

 

  • Langages : HTML, CSS, PHP (extensions CiviCRM, Smarty), JavaScript (Node.js, JS natif côté navigateur), SQL, bash
  • Bases de données : MySQL/MariaDB, PostgreSQL/PostGIS
  • CMS et CRM : WordPress (avec ou sans Divi), CiviCRM 6, WP-CLI, Concrete 8/9
  • Serveur et DevOps : Linux (Debian), SSH, Docker et Docker Compose, nginx (reverse proxy), Let’s Encrypt/Certbot, Postfix, rsync, launchd
  • Outils : Git et GitHub, Homebrew
  • Web applicatif : Fastify, Leaflet, PWA et service workers
  • Messagerie : configuration SMTP, SPF, PTR, DKIM (délivrabilité), TCPDF
  • Applications auto-hébergées : HumHub, Vaultwarden, Joplin Server, Moodle, n8n
  • Internationalisation : Transifex

Pratiques de travail

  • Migrations SQL versionnées et déploiements par versions numérotées
  • Environnement de test avant la production
  • Sauvegardes automatisées avec rotation
  • Contribution à l’écosystème open source (dépôts GitHub, lab.civicrm.org)
  • Automatisation des sauvegardes d’une flotte de sites WordPress/CiviCRM: protocole de sauvegarde automatisé pour une quinzaine de sites WordPress et CiviCRM répartis sur plusieurs comptes d’hébergement.
Extensions pour CiviCRM
"

Pavillon, PWA de jeu géolocalisé

Application web de capture de territoires pour l’équipage d’un voilier du Léman : cartographie interactive, défis, classements, mode hors ligne. Node.js/Fastify, PostgreSQL/PostGIS, Leaflet, Docker Compose, migrations SQL versionnées.

J’ai conçu et je maintiens, avec l’aide de l’IA, Pavillon, une application web progressive de capture de territoires façon pirates, créée pour l’équipage élargi d’un voilier du Léman. L’app combine géolocalisation, cartographie interactive (Leaflet), défis, système de points et classements. Le backend repose sur Node.js/Fastify et PostgreSQL/PostGIS pour les requêtes géospatiales. Le frontend est en JavaScript natif, avec un service worker pour l’usage hors ligne. L’ensemble tourne sous Docker Compose sur un VPS, avec un système de migrations SQL versionnées (plus de 40 à ce jour) et un cycle de livraison par versions numérotées (déjà 102!). Ce projet montre ma capacité à mener un produit de la conception au déploiement, avec des règles de jeu métier, une base de données spatiale et un suivi de version rigoureux.

Traduction en français
"

Biais cognitifs

Modèle Organisationnel de Buster Benson

Version en français, interactive, d’après la version de ic-33, elle même issue de la version wipikedia traduite par Albert Moukheiber & Mariam Chammat, d’après la version originale de designhacks.co (design: John Manoogian III).