D'une manière générale, je suis un expert en algorithmie, tous langages confondus, du fait de mon intérêt depuis toujours pour la recherche de solutions élégantes, performantes, génériques (réutilisables), et le nombre de sujets variés sur lesquels je me suis penchés autant a titre personnel que professionnel. Je connais une dizaine de langages et de nombreuses technologies :
Basic, Pascal, C, Assembleur, C++, Delphi, VB, JavaScript, HTML/XML, Java, C#/.Net. (ordre chronologique)
Bien sûr, sur certaines je ne suis pas autant expérimenté que sur d'autres, mais je peux expliquer les différences entre chacun des langages cités, atouts et inconvénients majeurs comparés, afin d'orienter un choix en fonction des besoins et contraintes, et je connais, en plus des concepts génériques propres au langage, au moins les fonctions de base pour permettre de commencer un développement et rechercher les informations manquantes à la finalisation d'un projet. Au final, comme tout les langages se ressemblent et se suivent à un rythme soutenu, l'algorithmie et la capacité à trouver l'information fait la différence entre deux programmeurs. Il m'est arrivé de devoir me pencher sur un langage/environnement inconnu et terminer le projet tout de même dans les délais prévus par le client, sans qu'un temps spécifique "d'apprentissage" soit pris en compte.
D'un point de vue plus global, ma culture générale en Informatique va du Hardware jusqu'au software en passant par toutes les couches intermédiaires (sur PC/Windowsonception d'architecture globales, dans l'intégration de solutions de tierces parties, dans la création de solutions spécifiques répondant à un besoin précis d'un client. Je ne suis pas fermé à une seule piste technologique, même si j'ai mes préférences, et peut aider à la conception ou l'amélioration d'un système, quelque soit le niveau d'abstraction ou au contraire de détail demandé.
principalement), incluant des notions étendues sur les systèmes les plus courant comme les SGBD, les protocoles de communication etc... parfois complétés par des connaissances très approfondies sur des sujets bien précis. Ceci me permet d'être très a l'aise dans la c
Ces deux capacités, bien au dessus de la moyenne constatée des analystes/développeurs, m'ont toujours permis de faire une différence notable dans les projets où je me suis impliqué, autant en produisant rapidement les solutions demandées sans avoir besoin de m'attarder sur les détails d'implémentation qui viennent naturellement, qu'en tant que force de proposition sur des améliorations à apporter aux produits.
Je suis par la force de mes compétences majeures et mes expériences plus attiré par la réalisation d'applications natives pour Windows, plutôt que des applications web ou des développements pour Unix/Linux.
Postes occupés
1999-2000 : Fondateur et DG d'une startup fournissant un service internet de recherche de produit dans les magasins réels (mise en corrélation de bases de données hétérogènes, recherche par caractéristiques produit, zone géographique, disponibilié et bien sur prix). Rachetée par INGENICO, leader des terminaux de paiement électroniques.
2000-2003 : Chef de projets chez INGENICO. Co-inventeur d'un concept de ticketing dynamique sur terminaux et caisse. Réalisation de la première version de cette application, mettant en réseau les TPE avec un serveur web centralisé.
2003-aujourd'hui : Fondateur et Directeur Technique de Ticket-Marketing Technologies, spin-of du groupe INGENICO exploitant le brevet déposé sur les concepts et technologies inventés, puis expansion sur d'autres plateformes et systèmes (caisses PC). Depuis 5 ans, spécialiste Français du développement de solutions autour du système de caisse haut de gamme Retail PRO. Depuis 2008 : en plus de la direction technique, j'occupe la fonction de PDG. Sur l'ensemble des 7 années, en plus de ces fonctions liées à notre activité d'éditeur de notre solution marketing, j'effectue ponctuellement des missions de développement logiciels, principalement pour le compte de sociétés partenaires dans les milieux bancaires et distributeurs de solutions pour les commerçants.
Expériences par Technologies/Languages
En Pascal, C et assembleur (au début donc), j'ai essentiellement exploré en profondeur toutes les arcanes d'un PC de l'époque pré-Pentium/Windows 95, jusqu'au moindre signal électronique envoyable sur n'importe quel chipset (horloge, VGA, ports de communication, clavier, souris, joystick...) et de l'ensemble logiciel BIOS/DOS, dans le but d'exploiter au maximum la moindre ressource de ces machines limitées. Dernier projet de cette époque : un simulateur de combat spatial en 3D et réseau IPX/SPX fonctionnant sous DOS sur un 386SX 25Mhz. C'est mon dernier programme non objet, totalisant +60.000 lignes de code dans les 3 langages.
En Delphi, j'ai touché à peu de choses prêt à tout ce qui peut être fait : connexion BD (Paradox, Oracle, Access, MySQL..), communication (Ports série, parallèle, TCP/IP, UDP, autres protocoles internet applicatifs comme HTTP, SMTP...), Impression sur tout type d'imprimantes (A4, tickets) avec tout types de technologies (Windows printing, protocoles directs, outils de reporting), création de composants visuels ou non, accès aux API windows diverses, DDE, OLE et COM automation (Word, Excel, Access, autres applications fournissant une interface COM), lancement et gestion de process/threads avec synchronisation... Et pour l'algorithmie poussée, un parser de code C capable d'analyser un ensemble de fichiers et de générer du code C aux endroits appropriés (ajout de traces automatiques pour débug par exemple)
En C++, j'ai essentiellement converti une majorité de mon code Pascal/C/Assembleur pour DOS en objets C++ a titre personnel, et bien plus tard développé un serveur TCP/IP avec visual studio pour un besoin spécifique d'un client. Je maitrise parfaitement les concepts spécifiques de C++ (operator overloading, multi-inheritance...), mais n'ai pas eu l'occasion de travailler sur un gros projet pour les mettre réelement en pratique.
En C pour plateformes embarquées , j'ai développé des applications pour tous les terminaux bancaires sur le marché français : gamme Ingenico , Sagem , Moneyline et Verifone. J'ai développé un ensemble de librairies compatibles sur tout ces équipements, quelque soit le processeur utilisé (keil, intel, ARM), 8, 16 ou 32 bits, l'OS étant toujours propriétaire aux constructeurs. Ceci représente un travail de plusieurs années pour uniformiser les couches logiciels jusqu'à un niveau d'abstraction très élevé, réutilisable, et entièrement simulable sur PC. Il n'y a pas a ma connaissance d'équivalent sur ce marché très particulier d'applications pour terminaux bancaires, que je connais d'autant mieux que j'ai passé 3 ans chez le leader mondial Ingenico, puis en mission pour les 2 concurrents, avant de créer ma propre société d'édition de logiciels sur terminaux bancaires et caisse.
En VB et VBA, j'ai fait beaucoup de petits outils et macros pour Excel, Word et Access, et développé certaines applications client/serveur (base Oracle) pour le compte d'une petite SSII.
En C#/.Net, je me suis essentiellement familiarisé avec le langage dans le cadre du Compact Framework pour le développement d'applications pour Windows Mobile. Le langage et la logique étant très similaire à Delphi, je n'ai pas poussé plus loin l'investigation, étant confiant qu'atteindre un niveau de croisière dans cet environnement ne sera l'affaire que de quelques jours le moment venu.
Methodes de travail
Une grande majorité des projets réalisés ces 5 dernières années ont été développés avec mes propres environnements, au besoin à distance en utilisant les outils de prise de contrôle comme VNC, RemoteAdmin, TeamViewer (dans tous les cas utiles lors de la validation)
Je suis également bilingue (anglais) et rodé à la négociation, analyse, conception, réalisation et documentation de projets au forfait (avec engagement sur les délais et résultats) , y compris en collaboration avec des équipes à l'international.
1994 : Bac C mention Bien
Déjà à cette époque, je bénéficiais d'une expérience étendue en programmation sur PC (utilisant essentiellement Turbo-Pascal, C et Assembleur x86 depuis le collège). J'ai appris ces langages seul, à force d'expérimentation, en testant chaque fonction présente dans les documentations techniques anglaises fournies par mon père qui travaillait pour IBM (autant dire des dictionnaires alphabétiques dédits langages), ce qui m'a permis tres tôt de développer le goût de la recherche et de l'invention de solution par combinaison d'éléments atomiques - fondement même de la science de la programmation.
1999 : Ingénieur diplomé de l'INSA de Lyon - Département Informatique
Durant les 5 années d'étude à l'INSA, j'ai continué le développement de mes compétences en informatique tant par la nature même de ma formation, que par mes projets personnels. J'ai également réalisé quelques travaux au forfait par l'intermédiaire de la Junior Entreprise de l'INSA de Lyon (notamment quelques applications de gestion pour la Société Générale). Langages utilisés principalement : C++ , Delphi
Depuis septembre 2009 : Très actif sur la communauté d'experts en ligne Experts Exchange, spécialisé dans la Zone d'Activité Delphi