Jean-Philippe ULPIANO Kantstr. 19 80807 Munich Allemage Depuis Septembre 2012 Ingénieur ENSEEIHT Ingénieur senior développement informatique C++/Java/Assembleur & Oracle Né le 26 Novembre 1972 Nationalité : Français [email protected] Célibataire Expérience professionnelle Ingénieur senior développement C++, Qt4, JAVA & mySQL http://twoblackcoffees.wordpress.com Développement JAVA d'un programme à orientation médicale permettant de définir une anamnèse précise en fournissant des outils d'analyse de la progression d'un traitement. Le programme a une forte dépendance avec l'acupuncture. Le programme et son code source peuvent être présentés en entretien. Développement en Java : RCP-JFACE-SWT Développement d'un Wizard modulaire et flexible basé sur une configuration similaire à XML et ayant une forte dépendance avec la base de données mySQL. Outils graphiques proposant une analyse visuelle de l'évolution des symptômes. La classe gérant les cartographies permet d'avoir facilement accès aux points d'acupuncture et leur description complète. Son interface modulaire nécessite peu de développement pour l'ajout de nouvelles cartographies (les types de points liés à chaque cartographie devant réagir différemment). Les fichiers sources sont versionnés sous GIT. Développement sur une base de donnés mySQL Design des tables. Séparation complète entre le code JAVA et les tables de la base de données en utilisant des view pour la lecture et des stored procedure mySQL pour l'écriture de données. Développement d'outils C++ et Perl Outils écrits en Perl permettant l'analyse d'image pour retrouver précisément la location d'un point à partir d'une cartographie. Programme C++ basé sur la bibliothèque wxWidgets permettant de relier la location d'un point avec sa description en générant un fichier XML utilisé comme référence pour le programme JAVA. Development en C++/Qt4 d'un outil de Time tracking (En cours de développement) Décembre 2004 Août 2012 Ingénieur senior développement C++/Oracle chez Intel (7 ans et 8 mois) Munich, Allemagne À partir de Jan 2006: développement C++ de OptiCM, un logiciel définissant un process de développement (Continuous Integration). OptiCM fonctionnant sur Linux, Solaris et Windows. Développement Agile basé sur Scrum/Kanban. OptiCM force 2000 développeurs à suivre le process officiel de développement. L'outil a permis d'augmenter la qualité et la rapidité de développement des releases. Développement d'une interface multithreaded C++ / Perl gérant des accès directs à l'engine. Appel direct de fonctions Perl à partir de C++ (Multithreadées pour les longs process). Interface client/server XMLRPC permettant de communiquer avec des outils extérieurs. Intégration et développement de requêtes mySQL permettant d'observer l'état des tests de régression en temps réel. Interface graphique écrite en C++ utilisant la bibliothèque wxWidgets Nombreuses possibilités de configurations proposées à l'aide de différents Wizards dynamiques dont le contenu varie en fonction de nombreuses sélections de l'utlisateur. Possibilité de travailler en mélangeant des Product Line différentes dans une vue unique : concept unique n'ayant pas de concurrents. Développement de nombreux widgets, notamment une grille permettant de gérer des configurations de composants complexes. Développement sur Oracle de Stored Procedure PL/SQL et requêtes SQL. Documentation UML des parties les plus complexes du programme. À partir de juin 2010 Responsable technique et développement C++ d'amélioration de performances et de nouvelles fonctionnalités basées sur des demandes souvent ambitieuses de l'équipe cliente. Jan 2010 - Juin 2010 Responsable technique et développement C++ de Multiview, concept permettant de travailler sur différentes Product Line en même temps dans la même vue. Oct 2009 - Dec 2010 Développement/support/validation de nombreuses nouvelles fonctionnalités en C++ et sur Oracle, formation de nouveaux ingénieurs rejoignant le projet. Jan 2007 - Sep 2007 Responsable technique et développement C++/Python d'un environnement de régression pour l'interface GUI basée sur pyWinAuto. Développement d'une interface C++ sous OptiCM permettant de créer des macros exportées au format XML. L'outil Python prend le fichier XML et reproduit la macro. Un résultat est automatiquement comparé à l'aide de l'interface pyWinAuto permettant d'extraire les données utilisateur d'une application graphique. Outil fournissant un résultat fiable utilisable uniquement en mode maintenance en raison de la surcharge de travail pour chaque modification de l'interface graphique. De Dec 2004 à Dec 2005: Développement Perl de OptiSync, outil permettant la réplication synchronisée de VOBs Clearcase, fichiers et commandes OS à travers un réseau instable. Formation (2011): Oracle Database 11g: PL/SQL and Database Programming Release 2 Octobre 2002 Ingénieur senior développement à Texas Instruments Jean-Philippe Ulpiano Ingénieur senior développement informatique haut et bas niveau et systèmes embarqués Page 1/2 Décembre 2004 (26 mois) Villeneuve-Loubet, France Développement C bas niveau et assembleur ARM11 pour les projets OMAP1710, OMAP2420, Dolomites, OMAP2430, OMAP2140. Développement C pour la configuration des firewalls dédiée à la sécurité des chips pour un environnement Symbian. Développement et optimisation en assembleur ARM11 de drivers NAND accédant des interfaces hardwares NAND et NOR (émulation de driver NAND). Intégration de drivers MDOCs. Développement des tests de production et de la fonctionnalité de start-up des chips. Développement JAVA d'un outil de profiling permettant l'optimisation du code embarqué. Développement d'une machine d'état permettant une analyse de syntaxe du code assembleur AEM9/ARM11. Interface graphique SWING proposant une interface similaire à Quantify : Affichage de toutes les fonctions à travers un arbre d'appel de fonctions. Recherche de problèmes de performance à travers une interface graphique proposant une recherche récursive. Affichage des donnés de timing selon plusieurs modes de tri. Le code de chaque fonction est proposé avec les informations de timing pour chaque ligne de code. Développement de scripts pour Linux/Solaris dédiés à l'automatisation de la validation. Développement d'un environnement de validation basé sur différents langages de scripts : BASH / TCL / PERL permettant d'automatiser l'exécution de tests mais aussi de vérifier automatiquement le statut des validations hardware et software. Développement d'un désassembleur écrit en Perl générant un fichier source C à partir d'un fichier de log ARM. Développement d'un script en Python permettant de rechercher la queue LSF la plus efficace. Ces outils ont permis de réduire le process de validation d'une release de 2 semaines à 3 jours. Développement en Python d'un outil d'analyse de couverture de test similaire à PureCov. Analyse de syntaxe de nombreux fichiers logs et de tous les fichiers source. Interface graphique permettant d'afficher le taux de couverture par fichier et par fonction. Affichage du code source des fonctions pour faciliter le debug. Formations: JAVA/UML, administration UNIX. Octobre 2000 Octobre 2002 (23 mois) Ingénieur développement C++ à Cadence Sophia-Antipolis, France Participation au développement d'une couche logicielle permettant d'interfacer deux bases de données hiérarchiques dédiées au développement micro-electronique : une base orientée front-end (FNP) et l'autre orientée back-end (Genesis). Développement C++ d'un writer Verilog permettant de générer un fichier Verilog à partir des informations stockées dans une base de donnés hiérarchique. Formation: C++ advanced formation course. Juin 1998 Octobre 2000 (16 mois) Ingénieur développement JAVA à Alcatel Illkirch, France Développement de nombreuses applet dédiées à la validation du WebPhone Alcatel pour sa partie graphique, accès disques durs et réseaux. En même temps, enseignement de cours d'assembleur 80x86 à l'IUT d'informatique d'Illkirch. Septembre 1997 Juin 1998 (10 mois) Civil military service in a center dedicated to young people with difficulties Développement JAVA de différents programmes éducatifs. Création du site WEB du centre (obtention d'un prix) : http://www.fever.com/cvj Avril 1997 Septembre 1997 (5 mois) Ingénieur stagiaire au Politecnico di Torino Turin, Italy Développement C++ d'un programme recherchant tous les chemins électriques pour des circuits numériques quelconques fournis par une netlist spice. Optimisation pour certaines topologies de circuits. Le résultat était utilisé pour rechercher les parcours électriques critiques (critical path). Metz, France Études • Mars 2010: Heilpraktiker (Diplôme autorisant la pratique de la médecine hors traitements chimiques). Médecine • Juin 1997: Diplôme d'ingénieur E.N.S.E.E.I.H.T. (École Nationale Supérieure d'ÉIectronique, d'Électrotechnique, • Juin 1997: DEA CCMM (Conception of Microelectronics Circuits and Microsystems). générale étudiée pendant 2,5 ans à l'école ZFN de Munich pour préparer l'examen national. Pour information : Le taux moyen de réussite à l'examen est de 30% sur les 10 dernières années. Depuis Mars 2010, suivi de nombreuses formations avancées sur l'acupuncture. d'Informatique, d'Hydraulique et des Télécommunications). Langages et systèmes Langages haut niveau Langages assembler Systèmes Programmes C & C++, JAVA RCP-JFACE-SWT, Python/Shell/PERL, Oracle PL/SQL, mySQL. Intel (80x86), Motorola (680x , 68000), ARM9. Clearcase, UNIX/Linux and Windows. Utilisation de GIT. ModelSim, Rational Purify et Quantify. Langues Italien Anglais Allemand Courant Très bon niveau Très bon niveau De famille italienne. Différents travaux en Italie pendant les études. Stage à Turin. Langue lue, écrite et parlée dans tous mes postes et lors de voyages personnels. Langue de travail principale lue, écrite et parlée de 2006 à 2012. Informations personnelles Missions humanitaires dans des orphelinats de Dar es Salaam (Tanzanie), Thaïlande, Vietnam et Calcutta. Acupuncteur bénévole pour Malteser à Munich (organisation caritative): Développement informatique pour l'acupuncture. Auteur d'un livre décrivant la pratique de l'acupuncture crânienne. Permis B. Jean-Philippe Ulpiano Ingénieur senior développement informatique haut et bas niveau et systèmes embarqués Page 2/2