---
# System prepended metadata

title: Adverline - Régie publicitaire internet 2004

---

## [Mon CV](https://www.canva.com/design/DAD-GZ4ufK8/gZItKIlGya9AxzyHVvAmgg/view?utm_content=DAD-GZ4ufK8&utm_campaign=designshare&utm_medium=link&utm_source=sharebutton)
#### [Linked-in](https://www.linkedin.com/in/thomas-coulomb-2667171a/)
## A propos
CTO / directeur technique, 15 ans d’expérience.
Autonome, agile, transverse, très opérationnel.. Architecte logiciel, dev référent, tech lead passionné, manager d’équipe et d'infrastructure.
*“Release early, release often”.*
**J’ai livré 500 milliards de publicités en ligne.**
Ex-formateur, je vulgarise l'informatique et assiste les décisions stratégiques.

42 ans. Geek depuis 1985. Sportif, j’aime le challenge. Je voyage loin et souvent, je guide les raids motos et je suis licensié d’ULM. Je parle anglais.

### Projets professionnels recherchés
Je cherche des responsabilités de CTO dans une structure à taille humaine, ou product-owner technique dans une business-unit. Je souhaite conseiller stratégiquement une direction technophile. Entièrement responsable de mes produits techniques, je me charge de l'équipe de développement, que je peux recruter mais que je fidélise. Mon service propose, conçoit, réalise, teste, déploie et surveille.

# Adverline - Régie publicitaire internet 2004
Pour Adverline j'ai réalisé un système d'information fullstack: depuis le POC jusqu'à l'industrialisation multi-site. Je supervisais entièrement et en complète autonomie le déploiement, le run, l'infrastructure et le personnel. Budget annuel toutes charges comprises ~500k€.

## Infrastructure technique
### (Ré)Amorçage du système:
Arrivé en start-up auprès de Loic de kerdrel et Charles Costa en 2003, je développe en quelques mois une solution logicielle de secours pour redémarrer l'entreprise. Un an plus tard je remplace l'applicatif frontal par une solution C/C++ qui déverse dans un backend SQL.

### Backoffice:
Des gigas de log sont absorbés chaque jour, je développe une opération de synthèse des données qui pose les bases de l'UI de facturation, de paiement des partenaires, et du suivi contractuel des objectifs. Le métier de régie publicitaire bénéficie également d'outil de data exploration pour la veille anti fraude, l'optimisation du ciblage publicitaire, et le planning des livraisons. Je suis rejoins par trois collaborateurs.

### Clustering:
L'architecture hardware initiale "frontal-SQL-backoffice" ne suffit plus. L'architecture software frontale est multithread asynchrone "no disk" dès l'origine, et s'organise naturellement en un nouveau cluster multi-frontaux , multi-SQL. Nous développons la résistance aux pannes et la reprise à chaud, qui sont éprouvées de nombreuses fois en production.

Le data crunch est également refondu pour fonctionner en cluster: le design map-reduce est utilisé, permettant d'ajouter et de retirer à chaud des serveurs de calcul. L'intensité des échanges entre les unités frontales et les unités de data-crunch est réglable afin d'anticiper le multi-site.

### Multi-Site
Le cluster est divisé en deux parts égales, la moitié des équipements est déménagé dans un second data-center sans provoquer de panne ni de ralentissement visible. L'intensité des échanges est reconfigurée pour ne pas dépendre de la liaison trans-site.

### Plan de continuité d'activité:
Deux load-balancers redondants, en actif-passif. Les frontaux peuvent crasher sans conséquence, ils ne conservent aucun stockage local. Le backend utilise une stratégie de double redondance cyclique entre les nodes du clusters. Cependant ce n'est pas l'intégralité du node qui est répliqué mais seulement le résultat du réduce précédent. En cas de disparition d'un node, les nodes frères récupèrent le sous résultat précédent. L'exposition au risque est donc limité à une dizaine de minute d'activité en cas de catastrophe irrécupérable. En conséquence de quoi l'économie d'infrastructure réalisée est très importante.

### Plan de reprise d'activité
Frontaux: pas de stockage, pas de sauvegarde. Backend: Nous utilisons des backup quotidiens, hors site, avec une rotation sur 7 jours, et écrasement de la journée en cours toutes les 6 heures. Chaque backup est immédiatement restauré sur un node spécifique et l'accès aux données passées est monitoré par l'applicatif.

### Hébergement, déploiement
Suite à l'achat de l'hébergeur Oxeva par Adverline, nous transférons nos demi baies dans leurs data centers. Adverline est propriétaire des machines, et mon équipe assure la maintenance software, mise à jour et la sécurité. Adverline gère les interventions sur le matériel et la mise en place du réseau. Le monitoring est hybride également avec des remontés de métriques métier dans nos UI, avec déclenchement d'alerte SMS sur dépassement de seuil. Des sondes spécifiques sont concues pour alerter les équipes d'infogérence.

Le déploiement est hybride et dépend des projets: manuel sur les frontaux, il respecte néanmoins une procédure de montée en charge progressive du cluster vers la nouvelle version. Il intègre une procédure de rollback et un contrôle instantané du healthcheck. Les derniers projets bénéficie d'une intégration continue sous gitlab avec déploiement automatisé à partir de runner docker custom.

## Fonctionnalités clefs
En plus des fonctions de campagnes publicitaires basiques (Volume d'affichage réservé, payé à l'affichage tracké) Adverline opére également des modèles économiques hybrides impliquant un risque sur ses marges opérationnelles.

### Performance
Un nouveau modèle économique publicitaire apparait: des campagnes sans ciblage et sans limite de temps rémunérées par des commission sur la vente finale des produits. Je propose de créer des algorithmes d'achats automatiques d'emplacement publicitaires et je les mets en oeuvre. Mon équipe modélise la rentabilité réelle et prévisionnelle selon le produit, le site, l'internaute, et le mode de rémunération finale. Toutes les heures nous recalculons les rentabilités multi-axes, pour pondérer automatiquement les achats hyper-rentables et éliminer les pertes.

### Retargeting / Data management platform
Le modèle à la performance s'épuise: la fraude ruine le modèle et la perte de confiance dévalue le marché. Nous montons une business-unit informelle autour d'un nouveau modèle qui exploite fortement le tracking de l'internaute: le core AdServer est adaptée pour transporter des trackings agnostiques et alimenter en data un générateur de visuel publicitaire automatisé.

Les premiers micro-service d'ingestion de donnée sont imaginés: il faut récupérer les visuels des produits à vendre dans les sites marchands. Nous finissons par créer et généraliser plusieurs crawlers web "pirates", afin d'épauler les API de synchronisation de catalogue défaillantes ou obsolètes.

### Retargeting dynamique
Les acquis du modèle à la performance et du modèle retargeting se rejoignent: les nouvelles versions des algorithmes de performances atteignent une granularité extrème: un score est calculé pour chaque appel publicitaire. Pour cela le core adServer intègre un langage intermédiaire exécuté coté serveur, afin que l'équipe retargeting éditent ses formules de calcul indépendament des modifications du core. La quantité de paramètres tenus à jour en temps réel et mis à disposition dans ce langage de pilotage en font un produit expert inédit sur le marché. Les résultats des calculs s'appliquent immédiatement et individuellement pour chaque internaute, chaque publicité. Sous ma supervision, mon dernier collaborateur est promu product-owner sur cette business unit, qui est enfin officialisée. Cette technologie constituera 10% du CA pendant quelques années.

### AdExchanges, SSP: Marché programmatique
Le modèle économique publicitaire classique est balayé en quelques années par un modèle aux enchères. Les campagnes publicitaires ne sont plus saisies dans le backoffice, mais enchéries en temps réel pour chaque affichage, au moyen d'une liaison serveur à serveur, impliquant le protocol openRTB et le cookie-matching. L'adserver est rendu compatible avec ces technologies. l'ad-exchange Rubicon nous choisi comme test-bed technologique pour la France.

### Prebid
Un système d'enchère concurrent, open source, exécuté côté client s'impose ensuite sur le marché de la publicité. Il contourne les pertes mondiales dûes aux défaillances du cookie-matching. La configuration de ces partenaires connectés avec Prebid est intégrée dans l'UI backoffice.

### Data ingestion
Le modèle aux enchères impose des modèles de rémunération très fléxibles. Coût unitaire variable, volume non garanti, ciblage extrème, chaine d'achat complexe: nous ne pouvons plus calculer notre rémunération unilatéralement: notre comptabilité ne fait plus foi contractuellement car nos acheteurs imposent leurs chiffres comme référence.

Ainsi pour chaque nouveau partenariat avec une plateforme acheteuse, nous devons ingérer les flux de rémunérations qui concernent les sites de nos réseaux dans les plateformes étrangères. Je mets à disposition de mon équipe un modèle de donné minimaliste commun et un framework d'import propriétaire, afin que plusieurs centaines de connecteurs spécifiques récupèrent quotidiennement et rétroactivement les flux de rémunération. Ces flux sont proposés à l'équipe traffic dans un assistant d'intégration qui permet de génèrer, officialiser et synchroniser continuellement la ligne comptable dans notre système.

Les moyens de récupérations sont complètement hétérogènes: simple rapports par email, api documentées, api hackées, ou crawl des sites web. L'écosystème de contrôle de la synchronisation est fournit et lourdement utilisé.

### DSP
Nous augmentons nos capacités d'achat publicitaire pour le compte de la BU Retargeting en développant un automate d'achat aux enchères connecté directement aux espaces publicitaires vendus par Google. Notre adServer passe une certification qui l'autorise à opérer de serveur à serveur avec Google.

### No-SQL propriétaire
Pour enchérir en temps réel sur des propositions d'affichage publicitaire, nous devons accéder instantanément aux datas de l'internaute qui nous est proposé par la plateforme vendeuse. Celle ci ne nous fournit qu'un id anonyme obtenu précédement par cookie-matching. Nous avons besoin d'une gestion fine du cache et du stockage chaud/froid. Nous écnomisons énormément l'infrastructure en calculant que la perte de données fraiches est acceptable sans fragiliser les estimations d'enchères. Après ces constats j'ai conçu et réalisé un service no-SQL spécifique extrèmement économe et très résistant. Entièrement réalisé en c/c++ en mode TDD. `30k hit/s sur vm16/4`.

### "KPI"
L'infrastructure monolythique de l'adServer empèche de transporter facilement des métriques au travers du data crunch. En revanche les demandes d'analyse par les équipes métiers sont hétérogènes et très ponctuelles. Je développe donc un nouveau moteur de diffusion/aggregation de trackers agnostiques. Indépendant de l'adServer, Ils n'ont pas de modèle de donnée imposé. D'abord équipé de dashboard Javascript consommant des données aggrégées en live et non stockées, l'un des modules de reporting permet le transfert simple des données JSON à ElasticSearch-Kibana. La construction de sondes et les pages de résultat sont désormais réalisables en une demi-journée, et 15 minutes suffisent à raffraichir un dashboard complet. 

L'instrumentation des tests automatisés des habillages, et le monitoring live des habillages programatiques permet une proactivité sur les problèmes de défaçage de site complètement inédite.

### React To SQL
Mon équipe est chargée de développer une nouvelle UI d'accès aux données semi-privées. Pour simplifier l'accès au backend, je conçois un framework NodeJS de génération d'API json/rest généralisant le modèle "endpoint => requête paramétrée". Le développeur n'a plus qu'à produire un fichier template décrivant les endpoint et leur SQL associé. Le framework compose la requête SQL avec les données JSON correspondantes aux macros trouvées dans l'entrée HTTP et l'exécute. Les données de session privées sont mises en cache coté service, sécurisée par un token généré librement par le dévellopeur.

### Mobile
Nous mettons à disposition de nos partenaires un kit logiciel pour équiper leurs applications en publicité. Un collaborateur s'approprie le pilotage du SDK mobile et je le guide sur l'intégraton avec l'adServer core.

### Habillage
Inspiré par la demande du marché, avec mon premier collaborateur nous corréalisons notre version de la technologie publicitaire qui permet de transformer entièrement l'aspect d'un site pour une campagne publicitaire pleine page. Il faut définir de nouveaux automatismes de livraison publicitaire et tout l'écosystème qui permet à l'équipe métier d'ajouter de nouvelles créas, de les suivre et les facturer sans notre aide. Mon collaborateur s'approprie cette technologie et devient product-owner sur ce système que nous combinons également avec le retargeting.

### Habillage programmatique
Nous détectons que des acheteurs émettent des enchères pour des habillages, mais aucun standard n'existe. Mon équipe développe un interpréteur d'enchère programmatique capable de traduire automatiquement les habillages publicitaires non spécifiés.

### Tests automatisés
La technologie habillage s'émancipe de l'adserver et passe en V2. Un système de test basé sur l'automatisation de Chrome est développé afin de mettre en place une surveillance proactive des campagnes d'habillage reçues en programatique.

### Vidéos
Je supervise, sans m'impliquer dans la réalisation, la création d'un player vidéo répondant aux besoins des sites et compatible avec le standard publicitaire mondial. Nous créons notre indépendance technologique.

### Data-analyse / anti-fraude
Indépendamment du data crunch, un détecteur de comportement anormaux alerte l'équipe relation partenaire. Un modèle statistique propriétaire détermine l'anormalité des KPI en faisant, entre autre, un lourd usage de la comparaison avec l'écart-type.

### The end
En aout 2020, après 18 ans de fonctionnement et 500 milliards de livraison publicitaire, L'adServer est remplacé par Google Admanager (fortement promu par un système de ventes-liées). Le backend est très fortement réduit, le data crunch supprimé, la BU retargeting dissoute.

# Expérience passée:
### Elève en cours du soir 1985
Au clavier dès l'age de 7ans, je suis pratiquement autodidacte en informatique.
### Club Informatique de Lamorlaye 1993-1997
Formateur en association. Je donne des cours magistraux devant 20 élèves pour les former à la bureautique, à Access et à Internet, qui arrive à peine en France.
### Moteur 3D en assembleur
Projet baccaloréat informatique: réalisation d'un moteur en assembleur, avec mapping et z-buffer. Noté 20/20.

# Zeni Corporation - SSII 2000
### Serveur minitel sur X25
Portage d'un ancien serveur Minitel en C de Unix à Linux.
### 3D click color
Projet de fin d'étude, je conçoit et réalise un système de visualisation/personnalisation de produit en 360 degrés. Cette initiative me fait décrocher le poste de responsable recherches et développements, et le produit est vendu à Citroën pour la promotion de la Xara Picasso.

### Site WAP petites annonces "Bonjour!"
Je crée entièrement le site mobile "pré-internet" de petites annonces pour le magazine "Bonjour!". L'application est destinée au réseau SFR. Elle est certifiée et déployée sur son réseau mobile.

### Deutsh-Bank
Intervention sur site en Allemagne pour finaliser une API xml-soap

# So-What - Startup/SSII 2002
Déménagement professionel à Paris afin de vendre en direct de la prestation de développement informatique. L'entreprise tourne court. Jeune et naïf, mes associés et moi-même sommes victimes de la présidente. Nous conservons néanmoins la relation clientèle avec:

### Toluna
Dans le cadre de leur métier de comparateur de tarifs: je crée un moteur de hiérarchisation de catalogue, avec gestion de corpus.
### Equity conseil
Cette société de communication financière rachetée par la Deutsh-bank en 2005 me confie la réalisation intégrale de son SI. Après l'échec de So-What j'y entre en CDI immédiatement après la cessation d'activité de So-What.
### Adverline - Régie publicitaire
Je rencontre le fondateur d'Adverline le dernier jour de So-What. J'accepte la mission d'audit de l'existant avant de prendre en charge la refonte du système en prestation externe. Je participe aux rendez-vous de levée de fond en tant que directeur technique. Après le rachat d'Equity Conseil par DDB&Co, j'intègre finalement l'équipe au moment de livrer la version actuelle du moteur publicitaire..