Expériences Professionnelles


 

Architecte de la Librairie Analytique des Dérivatives Quantitatifs

Londres, Royaume Uni

novembre 2009 à décembre 2010

Royal Bank of Scotland

Global Business Markets

février 2007 à novembre 2009

ABN-AMRO Group

Global Markets Business Unit

 

Ce rôle a débuté à ABN-AMRO et a continué à RBS après l’acquisition d’ABN. Le rôle relevait du Head of Credit, Hybrid, Inflation and Commodity Derivative Analytics et son titre exact en anglais étai Quantitative Derivatives Analytics Library Architect.

  • Responsable de sauvegarder l’intégrité architecturale de la librairie CAL (Common Analytics Library) tout au long de son évolution, de fournir un soutien technique et des conseils à l’équipe quantitative et au Head, et de vérifier que tout nouveau code soit de qualité supérieure et conforme aux standards de l’équipe.
  • J’ai conçu un langage de programmation pour faciliter l’utilisation de CAL par les traders et pour optimiser les calculs dans la grille (DataSynapse). J’ai développé un interpréteur pour le langage.
  • Réalisé plusieurs projets pour améliorer le système de calcul distribué, pour accroître le dégrée de parallélisation ou pour la mise en cache des objets constants dans la grille pour éviter de les rediffuser à chaque calcul.
  • À RBS j’ai travaillé sur la librairie Common Analytics Framework (CAF) utilisé par le trading desk. Exemples :
    • Restructuration du moteur de volatilité (Volatility Engine), qui était éparpillé dans un nombre de librairies déconnexées, pour le démêler de ses dépendances artificielles et le placer dans une librairie unique avec une interface bien définie.
    • Étude et résolution de différences numériques dans la grille de calcul dépendantes du matériel, Intel ou AMD, ou du système opératif, Windows ou Linux.
    • Réécriture du code d’interpolation pour le rendre orienté objet et plus rapide.
    • Remplacement dans toute la librairie des fonctions mathématiques émises par le compilateur C++ par des versions plus robustes ou plus rapides écrites en C++ ou en Assembler. Comme exemple, mes versions de atoi() et atof() se sont avérées être 2.5 fois plus rapides que le code d’origine

 

Développeur (consultant)

octobre 2006 à février 2007

Barclays Capital

Fixed Income Risk and Pricing

Londres, Royaume Uni

J’étais responsable du maintien des courbes des instruments indexés sur l'inflation.  Compétences: C++, SQL, un peu de développement Excel/VBA, et des utiles propriétaires de Barclays.

 

Ingénieur de Développement Senior

2003 à 2006

Macrovision Corporation (Rovi Corporation)

Berkshire, Royaume Uni

  • J’étais responsable du moteur noyau (core engine) d’un produit pour la protection des CD contre le piratage, inclus dans plus de 300 million CD autour du monde. Des réalisations importantes pour cette mission :
    • le remaniement total du moteur pour le rendre multitâche et beaucoup plus robuste,
    • le développement d’un algorithme pour le décryptage multicanal, et
    • l’addition d’un nombre important de périphériques supportés par le moteur.
  • Conçu et développé l’infrastructure d’un nouveau produit pour la distribution sécurisé à grand échelle de programmes de TV sur l’Internet.

Compétences: Visual C++, STL, OOD, OOP, TCP/IP, IPC et programmation multitâche, protocoles SCSI.

 

Consultant Indépendant

2001 à 2003

Plusieurs postes de consultant aux États-Unis et au Canada

  • InterTrade Systems Corporation: Programmation Enterprise JavaBeans, JSP et modules servlet sur un large logiciel J2EE pour Electronic Data Interchange (EDI).
  • Fujitsu Softek: J’ai travaillé dans plusieurs parties du produit Transparent Data Mirroring Facility (TDMF).  J’ai développé tous les écrans graphiques MFC, et fait des contributions sur la base des données (MSDE SQL) et les modules de réseau.
  • Greenleaf Medical Systems: Remanié les parties COM / DCOM de plusieurs modules pour les rendre plus robustes et améliorer la performance.  Développement Windows CE (visant le H/PC Pro) pour générer et imprimer des rapports médicaux.
  • DeltaClick.com: Développement TCP/IP avec IPWorks, WinSocks, Visual C++, and MFC.

 

Chef de projet

04/2000 à 05/2001

Internet Gig.com

 San Francisco, Californie, USA

J’ai conçu l’architecture globale d’un produit pour le stockage de multimédia en grand volume et sa distribution sur Internet. J’ai supervisé une équipe de quatre développeurs et deux spécialistes QA. Mes contributions personnelles les plus importantes:

  • Développement du Serveur: j’ai conçu et développé un serveur TCP/IP - HTTP multitâche qui était considérablement plus rapide qu’Apache Server.
  • Conception d’un langage interprété: j’ai conçu un langage interprété pour permettre à l’équipe QA (contrôle de qualité) d’écrire des scenarios pour tester le serveur de façon automatique soit pour vérifier des aspects particuliers de sa fonctionnalité, soit dans des conditions de stress (grand volume). Ce langage permettait d’exécuter des tâches concurrentes pour simuler un grand nombre de sessions XML simultanées entre les clients testeurs et le serveur HTTP. Grâce à cet outil une équipe de seulement deux techniciens QA était capable de conduire des tests de fonctionnalité et de stress envoyant au serveur plus de trois millions de messages à l’heure.

Compétences: Visual C++, STL, OOD, OOP, UML, TCP/IP, MFC, HTTP, XML, technologie de compilateurs, multitâche, conception de librairies.

 

Consultant

Contrat sous-traitance

04/1999 à 03/2000

Nippon Telegraph& Telephone

Multimedia Communications Laboratories

Californie, USA

Travail effectué off-site pour NTT sur contrat sous-traitance. J’ai fait l’analyse, la conception de l’architecture, le développement, la vérification, et la documentation de:

  • Librairie de vidéoconférence: conçu et développé une librairie générique pour la communication audio et vidéo en temps réel qui implémentai la Recommandation H.323 de UIT-T: Systèmes de communication multimédia en mode paquet, et de portions d’autre recommandations UIT-T telles que H.225.0 pour la gestion des appels et de la bande passant, H.245 pour l’établissement de canaux RTP/RTCP, Q.931 pour la signalisation d’appel, et autres. J’étais responsable de  tout le cycle de développement.
  • Serveur de diffusion multimédia: utilisé la librairie de vidéoconférence pour implémenter ArcSight (nom interne de NTT), un programme pour la diffusion multimédia en continue. ArcSight était capable de s’accrocher simultanément à un nombre arbitraire de sessions H.323 de vidéoconférence intranet pour le rendre visible à un nombre arbitraire de clients extranets non-H.323 à travers une interface simplifiée, soit en temps réel, soit  hors ligne (off-line).  Après sa ‘localisation’ dans la langue japonaise,  ArcSight est devenu un produit commercial au Japon, où il a été le modèle pour un autre produit pour l’enseignement à distance.
  • Serveur RealServer: implémenté un encodeur RealServer (RealNetworks) COM/DCOM pour la diffusion en direct sur Internet des données vidéo/audio obtenue de ArcSight. Visual C++, COM, DCOM, RealNetwork plug-ins.

Compétences: Visual C++, STL, OOD, OOP, UML, TCP/IP sockets, COM, DCOM, multitâche et synchronisation interprocessus, implémentation de protocoles H.323 et autres protocoles UTI‑T (H.245, H.225, Q.931, H.261, etc.), ASN1.

 

Ingénieur de Développement Senior

1997 - 1999

Eclipsys Corporation

(anciennement HealthVISION)

Santa Rosa, Californie, USA

J’ai travaillé dans plusieurs secteurs d’un produit MFC de grande taille pour la gestion de dossiers médicaux électroniques dans un environnement de bases de données SQL distribuées.

  • Serveur de messagerie: conçu et développé l’Alarm Notification System, un serveur utilisé dans des centres hospitaliers pour envoyer des notifications d’alerte sous forme de courrier électroniques et des messages ‘pager’ alphanumériques en utilisant MAPI, TAPI, et le Telocator Alphanumeric Protocol. Le Système de Distribution d’Alertes était  un serveur DCOM multitâches, hautement évolutif, à tolérance de pannes exécutant comme service NT. Il a été déployé dans divers hôpitaux aux États-Unis et au Canada.
  • Programmation COM / DCOM: J’ai pris la responsabilité sur une suite d’applications DCOM client-server.

Compétences: Visual C++, OOD, OOP, UML, MFC, Win32, COM, DCOM, ATL, IDL, Microsoft SQL Server, MAPI, TAPI, Telocator Alphanumeric Protocol, multitâche, triggers et procédures stockées de MS SQL.

 

Chef de projet

1996 - 1997

Hamilton Software

Santa Rosa, Californie, USA

Employé par cette société de développement logiciel, j’ai géré un projet pour CellNet Data Systems (aujourd’hui Landis+Gyr) à Redwood City, Californie.  J’avais une équipe de trois développeurs. J’étais en communication en face à face avec le client.

  • Développement serveur: conçu et développé une passerelle (gateway) entre le réseau sans fils de CellNet et les clients de sa section Commercial Data Service. Mises à part les tàches usuelles d’une passerelle telle que la validation, ré-ordonnancement et réassemblage des paquets, et leur redirection, le logiciel devait maintenir des données statistiques pour la facturation aux clients et pour documenter la qualité du service. Le serveur pouvait exécuter sur Windows NT et sur UNIX SunOS.
  • Validation stochastique: conçu et développé un programme pour synthétiser des paquets de réseau pour tester la passerelle dans une multitude des conditions normales et anormales. Le programme gênerait les paquets selon des paramètres aléatoires que l’on pouvait configurer. Grace à ce logiciel la passerelle a été testée et validée avec très peu de ressources humaines, et était opérationnelle et complètement debuggée avant que le réseau sans fils, devant fournir les données, ne soit mis en place, et à cause de cela le temps de déploiement d’un réseau de 125,000 nœuds fut raccourci de trois mois.

Compétences: Visual C++, Sun CC, OOD, OOP, Berkeley TCP/IP sockets, gestion du projet et de la relation client.

 

Ingénieur de Développement Senior

1992 - 1996

Corel Corporation

Ottawa, Ontario, Canada

  • Pilote de périphérique SCSI CD-R: en tant que membre de l’équipe CD Creator (alors le logiciel de gravure CD le plus répandu au monde), j’étais seul responsable du développement et du maintien, en C, C++ et Assembler, de tous les pilotes de périphérique et VxD requis pour le support d’une pléthore de périphériques SCSI CD-R sur Windows NT/Win95 et Windows 3.1x. En travaillant en étroite collaboration avec les ingénieurs firmware et représentants de OEM’s  (Sony, Panasonic, Philips, Ricoh, Teac, et beaucoup d’autres) et des intégrateurs de systèmes (Gateway, Turtle Beach), j’ai aidé à tester et debugger leur matériel, souvent au siège des entreprises, et les ait conseillé sur la normalisation de leur interface SCSI propriétaires pour s’ajuster aux standards de l’industrie.
  • Portage de MFC sur OS2: j’ai été un des membres du groupe de travail qui a fait le portage de Microsoft Foundation Classes (MFC) et les contrôles Windows 95 sur OS2 Warp. J’ai conçu le Graphics Object Manager, une couche logiciel OS2 pour gérer des  bitmaps, brosses, polices, stylets et des régions créés et manipulées sur OS2, mais avec une sémantique purement Windows.  J’ai écrit les codes pour reproduire sur OS2 tous les contrôles Windows 95 (Pushbutton, Spin control, Tab Control, Property Sheet, etc.).
  • Formats graphiques et algorithmes de compression: ré-implémenté et optimisé presque tous les filtres I/O graphiques utilisés dans tous les produits de Corel, comme par exemple BMP, TIFF, GIF, Photoshop, JPEG, etc.  J’ai implémenté plusieurs algorithmes de compression: Huffman, LZW, RLE, etc. (Mon implémentation LZW était la plus rapide de toutes les implémentations connues à ce moment).

Compétences: C, C++, 80x86 Assembler, MFC, Win32, GDI, développement multiplateforme, formats graphiques, algorithmes de compression, SCSI, protocoles CD-R, pilotes de périphériques.

 

Positions précédentes omises.