Skip to content
View emmanuelballery's full-sized avatar
🚀
Working from home
🚀
Working from home

Highlights

  • Pro

Block or report emmanuelballery

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
emmanuelballery/README.md

Emmanuel BALLERY

Cognitics engineer turned Tech Lead, PHP & Symfony addict, and owner of x10, my technical consulting company, since 2010.

Ingénieur cogniticien devenu Tech Lead, accro à PHP & Symfony, et gérant de x10, ma société de conseil technique, depuis 2010.



🇬🇧 English

Tech Lead by day at Alumnforce, owner of x10 the rest of the time, Cognitics Engineer forever.

I've been building web apps since the late 2000s — in other words, I knew jQuery before it was vintage.

Trained to understand humans, I ended up spending my life talking to machines.

Fate has a sense of humor.

👨‍💻 In short

  • 15+ years of experience, 100+ web apps delivered — from healthcare to defence, from real estate to hunting. Yes, hunting.
  • Clients: LVMH, Lacoste, Le Coq Sportif, Orange, CNRS, URGO, the French Hunting Federation…
  • Ex-CTPO of a B2B SaaS: legacy migration in 4 months with zero downtime, −70% cloud costs, 300+ deployments in 2 years, 1M+ product data points validated per day.
  • Ex-DGSE: R&D and security in a high-confidentiality environment.
  • I've led teams of 10+ developers and lectured in an engineering school (HITEMA).
  • Cognitive-science graduate — I know why users click where they shouldn't. I just can't stop them.
  • Obsessive about PHP standards, and proud of it. My CS Fixer has more rules than a tax code.
  • AFUP member for 10+ years, and x10 sponsors Forum PHP.
  • AI-driven development: Claude, Gemini and ChatGPT are my favourite colleagues. They never grumble in code review.
  • I don't just code with AI, I build with it: a Claude Code plugin for my team (Jira, Sentry and Slack MCP, GitLab, Jenkins, MR review), 3 domain MCP servers being finalized, an autonomous agent turning Jira tickets into GitLab fix MRs (rolling out), and a semantic search POC (Voyage AI embeddings + pgvector).
🕶️ Declassified file — DGSE, 2012-2015 (partially)
EMPLOYER ....... French Ministry of Armies — DGSE
ROLE ........... Full Stack Web Engineer / R&D
LOCATION ....... Paris, ████████████████
WORKED ON ...... access control, cryptography, audit trails
ALSO WORKED ON . ████████████████████████████████
STACK .......... PHP, Symfony, AngularJS, Linux
CODENAME ....... ██████████
COFFEE ......... ████████████████████████████████████ (litres)

I could tell you more, but then I'd have to refactor you.

🚀 Journey

2026 - ………… ⇝ Senior Full Stack Developer · Tech Lead — Alumnforce (100% remote)
2023 - 2026 ⇝ CTPO Sinfin — PIM/DAM/OMS SaaS for retail & luxury (LVMH, Lacoste, Le Coq Sportif, …)
2021 - 2023 ⇝ Co-founder & CTO Timcity — real-estate ERP from scratch (Paris)
2015 - ………… ⇝ Freelance for Orange — 11 years, back/front/ops (Paris)
2012 - 2015 ⇝ Full Stack Web Engineer / R&D — DGSE (Paris)
2009 - 2012 ⇝ Full Stack Engineer — e-health SaaS / HAD (Bordeaux)
2010 - ………… ⇝ Owner of x10 — my company, my baby

I started as an intern in a Bordeaux e-health startup, founded x10 while still a student, moved on to the DGSE, then grew key account after key account — including Orange, loyal for over ten years. A CTO seat, a CTPO seat and a few thousand composer update later, here I am a technical referent working fully remote — and still running x10.

Full release notes: CHANGELOG.md. Semantic versioning applies. Mostly.

🔧 Stack

Area Technologies
Back PHP 5→8 · Symfony 2→8 · API Platform 1→4 · Doctrine · Node.js · SQL (My/Maria/PostgreSQL + pgvector) · Redis · ElasticSearch
Front TypeScript · ReactJS · VueJS · Twig · (survivor of jQuery, AngularJS and BackboneJS — three frameworks, zero regrets)
DevOps Docker · Kubernetes/Openshift · AWS · Azure · GitHub Actions · GitlabCI · Jenkins · Ansible · Vault · Sentry · Linux · Apache/Nginx
Quality PHPUnit · Cypress · PHPStan · CS Fixer · Code Review (the real martial art)
AI Claude Code · MCP · Gemini · Voyage AI · Agents · Embeddings
Bonus RabbitMQ · Websockets · MongoDB · Kibana · UX · DX · SEO · Accessibility · DDD

I bet on PHP back when owning up to it wasn't fashionable. Symfony proved me right.

🏫 Education

  • 2010 — Engineer in Cognitics & Research Master's · ENSC / Bordeaux Institute of Technology
  • 2007 — Preparatory classes, PSI track · Lycée Claude Fauriel, Saint-Étienne
  • 2005 — Baccalauréat S, SI/MPI · Lycée Carnot, Roanne

Roanne → Saint-Étienne → Bordeaux → Paris → Metz → all of France. The itinerary of a spoiled dev.


🇫🇷 Français

Tech Lead le jour chez Alumnforce, gérant de x10 le reste du temps, Ingénieur en Cognitique pour toujours.

Je développe des applications web depuis la fin des années 2000 — autrement dit, j'ai connu jQuery avant que ce soit vintage.

Formé pour comprendre les humains, j'ai fini par passer ma vie à parler aux machines.

Le destin a de l'humour.

👨‍💻 En bref

  • +15 ans d'expérience, +100 applications web livrées — du médical à la défense, de l'immobilier à la chasse. Oui, la chasse.
  • Clients : LVMH, Lacoste, Le Coq Sportif, Orange, CNRS, URGO, Fédération Française de Chasse…
  • Ex-CTPO d'un éditeur SaaS B2B : migration du legacy en 4 mois sans interruption, −70 % de coûts cloud, 300+ déploiements en 2 ans, +1M de données produit validées par jour
  • Ex-DGSE : R&D et sécurité en environnement de haute confidentialité
  • J'ai encadré des équipes de 10+ développeurs et j'ai enseigné en école d'ingénieurs (HITEMA)
  • Diplômé en sciences cognitives — je sais pourquoi les utilisateurs cliquent là où il ne faut pas. Je ne peux juste pas les en empêcher.
  • Psychorigide des standards PHP, et fier de l'être. Mon CS Fixer a plus de règles que le Code Civil.
  • Membre de l'AFUP depuis plus de 10 ans, et x10 sponsorise le Forum PHP
  • AI-driven development : Claude, Gemini et ChatGPT sont mes collègues préférés. Ils ne râlent jamais en code review.
  • Je ne fais pas que coder avec l'IA, je construis avec : un plugin Claude Code pour mon équipe (MCP Jira, Sentry et Slack, GitLab, Jenkins, relecture de MR), 3 serveurs MCP métier en cours de finalisation, un agent autonome qui transforme un ticket Jira en MR GitLab de correctif (en cours de déploiement), et un POC de recherche sémantique (embeddings Voyage AI + pgvector).
🕶️ Dossier déclassifié — DGSE, 2012-2015 (partiellement)
EMPLOYEUR ...... Ministère des Armées — DGSE
POSTE .......... Ingénieur Web Full Stack / R&D
LIEU ........... Paris, ████████████████
TRAVAUX ........ gestion des accès, cryptographie, traçabilité
AUTRES TRAVAUX . ████████████████████████████████
STACK .......... PHP, Symfony, AngularJS, Linux
NOM DE CODE .... ██████████
CAFÉ ........... ████████████████████████████████████ (litres)

Je pourrais vous en dire plus, mais ensuite je devrais vous refactorer.

🚀 Parcours

2026 - ………… ⇝ Développeur Full Stack Senior · Tech Lead — Alumnforce (100 % remote)
2023 - 2026 ⇝ CTPO Sinfin — SaaS PIM/DAM/OMS pour le retail et le luxe (LVMH, Lacoste, Le Coq Sportif, …)
2021 - 2023 ⇝ Co-fondateur & CTO Timcity — ERP immobilier from scratch (Paris)
2015 - ………… ⇝ Freelance pour Orange — 11 ans, back/front/ops (Paris)
2012 - 2015 ⇝ Ingénieur Web Full Stack / R&D — DGSE (Paris)
2009 - 2012 ⇝ Ingénieur Full Stack — SaaS e-santé / HAD (Bordeaux)
2010 - ………… ⇝ Gérant x10 — Ma boîte, mon bébé

J'ai commencé en stage dans une startup bordelaise en e-santé, créé x10 encore étudiant, enchaîné à la DGSE, puis grandi grand compte après grand compte — dont Orange, fidèle depuis plus de dix ans. Un fauteuil de CTO, un de CTPO et quelques milliers de composer update plus tard, me voilà référent technique en full remote — et toujours gérant de x10.

Notes de version complètes : CHANGELOG.md. Versionnage sémantique respecté. Presque.

🔧 Stack

Domaine Technologies
Back PHP 5→8 · Symfony 2→8 · API Platform 1→4 · Doctrine · Node.js · SQL (My/Maria/PostgreSQL + pgvector) · Redis · ElasticSearch
Front TypeScript · ReactJS · VueJS · Twig · (survivant de jQuery, AngularJS et BackboneJS — trois frameworks, zéro regret)
DevOps Docker · Kubernetes/Openshift · AWS · Azure · GitHub Actions · GitlabCI · Jenkins · Ansible · Vault · Sentry · Linux · Apache/Nginx
Qualité PHPUnit · Cypress · PHPStan · CS Fixer · Code Review (le vrai sport de combat)
IA Claude Code · MCP · Gemini · Voyage AI · Agents · Embeddings
Bonus RabbitMQ · Websockets · MongoDB · Kibana · UX · DX · SEO · Accessibilité · DDD

J'ai fait le choix de PHP à une époque où ce n'était pas encore à la mode d'assumer. Symfony m'a donné raison.

🏫 Formation

  • 2010 — Ingénieur en Cognitique & Master Recherche · ENSC / Institut Polytechnique de Bordeaux
  • 2007 — Classes Préparatoires PSI · Lycée Claude Fauriel, Saint-Étienne
  • 2005 — Bac S SI/MPI · Lycée Carnot, Roanne

Roanne → Saint-Étienne → Bordeaux → Paris → Metz → la France entière. Itinéraire d'un dev' gâté.


🐘 Développeur

<?php

declare(strict_types=1);

namespace X10\People;

use X10\Contracts\{CognitiveScientist, Engineer, TechLead};
use X10\Domain\{Problem, Solution};

/**
 * PHPStan level: max. Baseline: my conscience.
 */
final class EmmanuelBallery implements Engineer, CognitiveScientist, TechLead
{
    public const string BASED_IN = 'Metz, France';
    public const int SHIPPING_SINCE = 2009;

    #[\Deprecated(message: 'Survived it. Not going back.')]
    public const string FAVOURITE_JS_LIBRARY = 'jQuery';

    public int $yearsOfExperience {
        get => (int) date('Y') - self::SHIPPING_SINCE;
    }

    /** @var list<string> */
    public private(set) array $hats = ['Tech Lead @ Alumnforce', 'Owner @ x10'];

    /** @var list<string> */
    public private(set) array $favouriteColleagues = ['Claude', 'Gemini', 'ChatGPT'];

    public function solve(Problem $problem): Solution
    {
        return $problem
            |> $this->understandTheHumans(...)
            |> $this->talkToTheMachines(...)
            |> $this->writeTheTests(...)
            |> $this->ship(...);
    }

    public function whyDidTheUserClickThere(): never
    {
        throw new \LogicException("I know why. I just can't stop them.");
    }
}

Pinned Loading

  1. symfony/symfony symfony/symfony Public

    The Symfony PHP framework

    PHP 31.2k 9.9k

  2. api-platform/core api-platform/core Public

    The server component of API Platform: hypermedia and GraphQL APIs in minutes

    PHP 2.6k 987