Parcours

Je suis né en 1972 à Valence. Après un bac C en 1990, j'ai suivi le département informatique de l'INSA de Lyon, avec une année d'échange à l'université McGill de Montréal en 1993-1994, et j'en suis sorti ingénieur en 1995. Depuis, je n'ai fait que ça : écrire du logiciel, d'abord pour des terminaux de poche, puis pour des téléphones, des navigateurs et des serveurs.

1997-2009 : Smartcode, puis Palm

J'ai débuté chez Smartcode Technologie, une société de trente personnes, comme ingénieur C/C++ sur des applications de télécommunication (IP/RAS), de sécurité (Setref) et de carte à puce (Gemplus, carte VITALE). J'y suis devenu chef de projet sur Windows CE, puis responsable de l'équipe Applications (six personnes) : HandMail, HandWeb, HandMinitel, HandPhone et HandWAP, le courrier, le navigateur web, le Minitel, le téléphone et le WAP sur Palm OS et Windows CE.

En 1999, Palm Computing Europe m'a confié son équipe Applications (huit personnes) : les applications de communication intégrées à Palm OS, SMS, numérotateur, communication série, internet et téléphonie, livrées à six millions d'utilisateurs. De 2001 à 2003, je suis parti chez PalmOne à Sunnyvale, en Californie, comme chef de projet du PDA Zire 71, responsable technique de l'ensemble des logiciels et de leur intégration. De retour en France, j'ai continué à distance pour Palm France jusqu'en 2009 : applications pour téléphones et agendas Palm, puis composants du nouveau système, du natif Linux au Java et au JavaScript, jusqu'à webOS.

Ces douze années m'ont appris le logiciel embarqué, le travail avec une équipe américaine au quotidien et la livraison de produits utilisés par des millions de personnes.

2009-2015 : Tekartik, les premières années

En 2009, j'ai créé Tekartik pour travailler en indépendant depuis le Gard. J'ai développé en sous-traitance, à distance ou sur site, pour des sociétés françaises (Mobisystème, Aerocom) et suisses (InZair) : une messagerie de type SMS (ZMS), la gestion d'une montre pour enfant par Bluetooth (Octopus), une application de gestion du temps (Zime), et pour Audience en Amérique du Nord. Android en Java, Google App Engine en Java, le web en JavaScript et HTML, iOS en Objective-C.

En parallèle, j'ai publié mes premières applications : Tekachords et Basichords, des dictionnaires d'accords pour iPhone, Android et le web, Tekabeat et Basitempo, et j'ai construit des sites WordPress pour les associations locales. C'est aussi là que j'ai adopté Dart, dès 2013-2014 : idb_shim et sembast, mes deux premières bibliothèques, datent de 2014.

2015-2020 : Dart, Flutter et Firebase

Avec Flutter, Dart est devenu mon langage unique, du mobile au serveur. En 2017, j'ai écrit sqflite, le plugin SQLite de Flutter, devenu le plugin de base de données le plus utilisé de l'écosystème. Autour de lui, j'ai publié ce qui me manquait : sembast pour une base NoSQL, synchronized pour les verrous asynchrones, process_run pour lancer des processus et des scripts portables, fs_shim pour un système de fichiers qui marche aussi dans le navigateur, et une couche d'abstraction de Firebase (auth, Firestore, Storage, Functions) implémentée pour le navigateur, la VM, Node, Flutter, l'API REST et le SDK admin, avec des implémentations en mémoire pour les tests.

Côté clients, des applications Flutter et des solutions Firebase, Firestore et Cloud Functions pour des sociétés françaises (Inventhys, Schneider, Clinident) et suisse (Blue Infinity), et en 2020 les premières applications web de festival : une par édition, construites comme des sites statiques, qui marchent encore des années après.

2020-2026 : des applis, des plateformes

Depuis 2020, mes références sont des applications connectées et métier :

  • Hublot : les applications Wear OS et Android de la montre connectée, avec les données de matchs de football en direct, et leur backend en Java et Dart servi en Europe et en Chine (Google Cloud et Aliyun) ; une application Android de gestion de stock interne, en Flutter.
  • Novostable (Novosenso) : le suivi des chevaux dans leur box par vidéo HLS en direct, sur iOS et Android, avec son API REST et sa synchronisation de données.
  • Aisprid, par Kickmaker : les applications web Flutter des robots d'effeuillage de tomates sous serre portées sur Android et iOS, avec notifications push, l'appli des opérateurs et celle des clients réunies dans un seul dépôt.
  • A2K Technologies, l'entreprise montpelliéraine de technologies événementielles : les applications Flutter de ses opérations de marque depuis 2022. Quiz avec buzzers, karaoké, capture vidéo, cabine DJ pilotée par un contrôleur Hercules pour Coca-Cola ; photomaton avec échange de visages pour JD Sports ; réservation d'événement pour Costa Coffee ; chasse au trésor en magasin sur appareils verrouillés pour Decathlon × Disneyland ; et le quiz géant de la place de la Concorde pour la Coupe du monde de rugby 2023 et les Jeux olympiques 2024, joué depuis un QR code, avec sa télécommande d'animateur et son grand écran.
  • SNUDI-FO : adhésions et paiement en ligne avec Stripe pour un syndicat d'enseignants.
  • Les applications de festival : Trad'Hivernales 2020, 2021 et 2022 et Ciné Jazz à la Tour 2021 à Sommières, Cafés littéraires 2020 à Montélimar, Watt the Funk 2023 à Bessèges et son enquête de déplacements, et en 2026 Festen Orga, le back-office d'une organisation de festival : artistes, bénévoles, repas, nuits, créneaux et lieux, reliés au programme.

Ces projets reposent sur une plateforme que j'ai construite au fil des ans, festenao : un CMS, la synchronisation hors ligne, des fonctions Cloud en Dart, les règles Firestore écrites comme du code, et des applications de base (administration, tableau de bord, public) dont dérivent les nouvelles applis. Dessus, une famille d'applications gratuites, youpi.app : Chordelio pour les accords, Buzzerelio pour les soirées quiz, Sondelio pour choisir une date, Playelio pour les playlists karaoké, et d'autres (PliCount, Prêt Track, QR codelio...). En 2026, j'ai aussi repris mes sites en jaspr, le framework web de Dart (tekartik.com, youpi.app, les sites de groupes de musique), et j'ai fait du développement assisté par IA, avec Claude Code, une pratique quotidienne : spécifications, revues, skills documentant chaque package.

Open source

Tout ce travail laisse une trace publique : une centaine de dépôts sur github.com/tekartik, plus de 4 600 étoiles, et 21 packages publiés sous l'éditeur tekartik.com sur pub.dev, 8 400 « likes » et 23 millions de téléchargements par mois (au 25 octobre 2026). Les principaux :

  • sqflite (2017), SQLite pour Flutter sur iOS, Android, macOS, desktop et web : 3 000 étoiles, 5 500 likes, plus de 3 millions de téléchargements par mois.
  • sembast (2014), base NoSQL persistante pour Dart et Flutter.
  • synchronized (2016), verrous pour code asynchrone, 5 millions de téléchargements par mois.
  • process_run (2015), exécution de processus et shell portable.
  • idb_shim (2014) et sa couche simple sdb, l'API IndexedDB partout ; idb_sqflite ; fs_shim (2015), le système de fichiers portable.
  • Les abstractions Firebase et Firestore, la synchronisation hors ligne (tekaly), la plateforme festenao, des outils de build, de test et de CI (dev_test, dev_build, ci.dart), un port pur Dart de Tone.js, un codec WebP pur Dart. Au total près de 300 packages documentés.

Compétences

  • Plateformes : Android (Flutter, Kotlin, Java), iOS (Flutter, Objective-C, Swift), web (Dart, JavaScript, HTML5, jaspr), desktop (Linux, macOS, Windows), Wear OS, Google Cloud (App Engine, Cloud Functions, Firebase), Aliyun.
  • Langages : Dart, Java, Kotlin, Objective-C, C/C++, JavaScript, SQL, Python, bash.
  • Domaines : plateformes mobiles, client/serveur, bases de données et synchronisation hors ligne, multimédia, interfaces, Bluetooth, NFC, CI et outillage.
  • Langues : français, anglais courant (trois ans aux États-Unis, un an au Canada, neuf ans de travail quotidien avec Palm USA).

Et en dehors : la musique, contrebasse, basse, guitare et accordéon dans plusieurs groupes du Gard, le badminton et le VTT.

Pour les machines

Le même profil en données, généré des mêmes faits : un JSON Resume, un llms.txt et une Person schema.org.