Graham - Expert Ingénieur de développement C++

Ref : 220904W001
Email vérifié
Photo de Graham, Expert Ingénieur de développement C++
Compétences
Expériences professionnelles
  • Expérience professionnelle

    Bank Of America FX Trading (Instinct FX) September 2019 - current

    Senior C++ consultant for “Instinct FX”. The trading platform runs 24/7 in master/slave configuration across New York/London and Tokyo sites. Day to day work is on C++14/Linux using Git for source code control and Jenkins continuous integration. Sybase DB.

    Implementation, test and deployment of Multileg NDF FIX orders. Implementation exposes pricing/ quoting/execution and auditing of in/out bound FIX requests (QuoteRequest, NewOrderMulti and ExecutionReport). Complete workflow solution, from “quote request”, “pricing”, “trade”, “execution” through to “auditing”.

    Solely responsible for 100% greenfield implementation from requirements gathering, design, coding, test and deployment to production for “monitoring service”. The service (both synchronous and asynchronous in nature) monitors access to FX platform, alterations to trading permissions, addition of new roles/permissions and (de)allocation of same to traders/sales team.

    Implementation of messaging/alerts microservice using internal text-based messaging service (key value pair). Service provides alerts when invalid quote requests/trading executions are requested. E.G. trading on bad stale quote, quoting request on bad currency pair, trading on duplicating client order ID. Implementation required code additions to be FIX microservice and trade execution microservice.

    “Business As Usual” work in parallel (bug fixing), front office support (direct contact with front office/stakeholders),

    IHS Markit October 2018 – September 2019

    Senior Engineer/Principal Engineer/Architect. Involved in all aspects of greenfield primarily C++ implementation of trade/clearing platform for leading Japanese bank (Some Java 8 development work). Development environments are Linux and Windows based. Continuous integration on Gitlab with Docker used for containerization.

    Omnivend June 2017 – October 2018

    Chief engineer, C++/C#/Java maintenance and enhancement of Java/C++ services for online transaction processing. SQL server maintenance, migration of existing architecture to more cost-effective real-time solution (via T-SQL stored procedures). Development environment; Visual C++, Microsoft SQL Server and Microsoft Visual C#.

    Bloomberg April 2016 – April 2017

    Senior low latency C++ developer for trading platform, Linux/g++/git.

    Low latency C++ development/maintenance/DevOps to all aspects of trading gateways. DevOps duties included maintaining and enhancing over 50 supported gateways (worked primarily with LME), Duties varied from real-time market data processing, FIX protocol adjustments/changes (based on new specifications or bugs) and trade/order processing. Hands on all aspects of development from requirements analysis, implementation/test to RPM package release (the RPM was then handed over to QA team). Agile development based on Jenkins continuous integration with GIT source control. The gateway packaging was migrated to RPM which needed to be coded and validated before QA handover.

    Credit Suisse - January 2016 – March 2016.

    Senior C++ developer TCP-IP CORBA/Linux, Credit Risk (project cut due to CS losses).

    Development and maintenance of RAD "Fundamental Review of Trading Book". Low level TCP-IP performance/bottleneck improvements. Refactoring of TCP-IP socket library, architecture review of application critical CORBA "Database Server”. Extension of Oracle SQL meta data tables for FRTB infrastructure. Scrum based development.

    Structure101 - November 2013 – December 2015

    Senior Core Java/Linux/Windows developer.

    Greenfield core java (JDK 6 and 8) environment. Low level bytecode analysis via ASM parser and generation of “directed graph” data structures. Support for Java 8 lambdas, default methods etc. Licensing code rewrite. Highly threaded and extensive design patterns in codebase. Development of Web/HTML clients to RESTful Jetty server over HTTP. The D3 toolkit is used on the front end browser over HTML/JavaScript. Development work both on the client (HTML/D3) and server (core java) side. Full life cycle development, from analysis, design and implementation to test and release. AGILE work environment with Jenkins continuous integration.





    Natixis Investment Bank, December 2012 – November 2013

    Senior C++/Java/Linux developer for Credit Risk (Value at Risk).

    C++ development and maintenance/DevOPS of VaR (Monte Carlo and parametric) calculations as well as “banking compliance” stress tests. Integration of quant “negative rates” C++ model. Development, and production support /improvement of unitary tests and general maintenance of application along with feature enhancements. C++, XSL, Java and Perl development environment alongside Datasynapse grid. Some SWING work for end user GUI. Perl scripting for “close of business” integration/parsing of front office XML (XML generated by both Summit and Murex).

    Chevreux, Paris January 2012 – December 2012

    Senior C++/Linux developer for algorithmic trading systems.

    Linux based C++ development for C++ server algorithmic processes. Rewrite of “Iceberg” strategy based on new infrastructure and trader specifications. Maintenance and enhancement of existing C++ algorithmic trading strategies. FIX protocol tracing/debugging. High performance and minimal latency programming.

    BNP Investment Bank, June 2010 – January 2012

    Senior C++/Java Linux/Solaris/Windows developer, Trade and Market Data capture.

    “Multi Venue” trading order book and market data capture. Extended server(s) to provide derivative order support (as shared library plugin) capturing market data (over Tibco Rendezvous) and trade data (over TCP-IP/CORBA). The server records order/market data and provides real time access for connected client /algorithmic trading systems.

    Optimization of threading code and maintenance/enhancement of real-time message delivery (Tibco) subsystem. Extended test environment to provide “true” production system testing. Repair “legacy” stability issues. Provided easy to use C++ interface for new unit tests and integration with continuous integration system (Bamboo). Migration of C++ and Java CORBA “Orbix” modules to TAO/ACE and Jacorb infrastructure Design and development of C++ code generation utility (using java) to expose “STL friendly” client interface library.

    Societe Generale Investment Bank, March 2009 – June 2010

    Senior Java/C++/Linux consultant, Credit Risk (VaR Exotics).

    The production environment runs java servers alongside a 2500 CPU Symphony C++ grid. The architecture operates in conjunction with numerous backend databases (Oracle/Sybase).

    Deployment and maintenance of multithreaded Java/C++ service exposing Quant volatility interpolation service (implemented over JNI/SWIG). The service permits 5 levels of volatility to be extracted from 260 based on historical/stressed market data, and subsequent interpolation to be performed on pricing results. Extensive convergence testing (using excel) for entire “exotic” product scope (Monte Carlos and PDE’s). Integration of new pricing parameters in direct liaison with the Quant team.

    .
    Credit Agricole Investment Bank, January 2008 – March 2009

    C# .NET Development Engineer, Equity Risk Analysis.

    Greenfield C# development for equity derivative pricing and risk analysis. Grid computing solution running 500 CPU Datasynapse grid. Implementation of equity derivative risk analysis infrastructure (dividend, volatility, spot, and interest rate shock) based on analyst specifications. Implementation of WinForms convergence/unitary/non regression pricing GUI. Automation and cleanup of build/release process.

    Feature enhancement, bug fixing and performance tuning of multi-threaded pricing module. Complete life cycle development, from requirements gathering, design, implementation through to production testing. Responsible for deployment, maintenance and administration of “development” grid for engineering team.


    Societe Generale Investment Bank, June 2005 – December 2007

    Senior C++/Windows/CORBA engineer Equity Risk Analysis.

    Maintenance and feature enhancement of pre-trade equity derivative pricing and risk analysis. Implementation of greenfield C++ grid solution for distributed/parallel pricing. Introduction of Boost into codebase for serialization, configuration, smart pointers and memory pooling. Tibco maintenance work for real-time market feed data.

    Migration of pricing algorithm from monothreaded synchronous to multithreaded asynchronous mode for dividend risk analysis. Performance tuning for Symphony Grid processing.

    Replacement of all legacy CORBA calls with equivalent SQL procedure calls for derivative product descriptions/meta data.

    Ixis Investment Bank October 2004 – June 2005

    C++ contract engineer, “Technical Cell”

    Maintenance and performance enhancement of various C++ components running over Orbix 2000 and the Summit 3.4/3.7 toolkit. TCP/network debugging. The development environment is Sun Solaris 2.8 using STL/C++, ksh and Java.

    Fine tuning/Optimization of Summit transport (CORBA/Orbix). Design and Implementation of multi-threaded (Posix) C++ library plug-in enabling Summit, distribution server runtime diagnostics and TCP connection management.

    UBS Investment Bank- April 2003 – Sept 2004

    C++ contract engineer

    Maintenance and feature enhancement for C++ layers in distributed “market maker” application. Bug fixing, feature enhancement and optimization of CORBA transport layer (TAO)
    Maintenance of TIBCO rendezvous component. Bug fixing, memory leak cleanup of C++/STL server code. Java/XML development (front end) for new feature inclusion. Refactoring of C++ logging facility.


    IONA Technologies - Jan 1994 – January 2003, Boston.

    Consultant CORBA/JAVA/C++ Engineer.
    C++/Java consultant and on-site engineer for middleware CORBA integration (Orbix). Diverse development environments using C++ and Java on Solaris, HP-UX, Windows, AIX with exposure to TCP-IP/UDP-IP. Role involved providing architecture consultancy and onsite implementation of distributed CORBA 2.0 and 2.3 based architectures. TCP-IP/UDP problem diagnosis, “performance” and “scalability” programming.

    Professional Training:
    Advanced C++ Programming, IONA Technologies, Dublin, Ireland
    Advanced Java programming, Sun Microsystems, New York, USA.
    Advanced CORBA programming, IONA Technologies, Boston, USA.

    Personal Interests:

    Crypto currency technology, Algorithmic trading application implementation (Python), Sea swimming, cycling. Gym.

Études et formations
  • Summary:

    Over 20 years Investment Banking experience in Front and Middle Office. Senior Analyst Programmer/DevOPs engineer, expert at C++ and very competent/ C# & Java Development on Linux/Unix/Windows. Proven at working with Senior Stakeholders, Quants, Product Control and Traders. Have worked in the following investment banks; Bank Of America, Societe Generale, BNP, UBS, Credit Agricole, Cheuvreux, Natixis and Credit Suisse.

    Winner of “Showcode” C++ coding competition, won prize of £2000

    ********:li:activity:6440151636391399424

    Skills:

    C++, JAVA, SQL (Oracle/Sybase), Boost, Bash/KSH, Design Patterns, Grid Computing (Symphony & Datasynapse), CORBA/TCP-IP networking, Client-Server architectures, Unix systems programming (Linux, Solaris, HP- UX), Multi-Threading/concurrency, data structures, GDB, Eclipse, Visual Studio, Ant, Git, CVS, ValGrind, ClearCase, Purify, Quantify.

    Have worked on personal project with senior Quant Analyst in Zurich (Algorithmic trading based on real time market data/moving averages). Implemented in Python, actively learning/coding Python in spare time/weekend.

D'autres freelances
Ingénieur de développement C++

Ces profils pourraient vous intéresser !
CV Développeur C++/C#/Unity/3D
Jean-Philippe

Développeur C++/C#/Unity/3D

  • GUILLESTRE
C++ C# UNITY 3D
Disponible
CV DBA Oracle / Developpeur PLSQL
Jean-Christophe

DBA Oracle / Developpeur PLSQL

  • ROUEN
PL SQL SQL ORACLE SQL SERVER TRANSACT SQL C++ C#
Disponible
CV Développeur C# C++ HTML CSS SQL
Axel

Développeur C# C++ HTML CSS SQL

  • DIJON
C# HTML C++ PHP CSS JAVA SQL SERVER SQL MYSQL .NET
Disponible
CV Développeur C
Sirata

Développeur C

  • NANTERRE
C++
Disponible
CV Développeur C++
Moahmed-Rayen

Développeur C++

  • SAINT-ÉTIENNE-DU-ROUVRAY
C++
Disponible
CV Développeur C++/PL SQL
Rédouane

Développeur C++/PL SQL

  • BUSSY-SAINT-GEORGES
SQL SQL SERVER C++ ORACLE PL SQL SSIS BI SSRS TALEND DATASTAGE SE
Disponible
CV Développeur .NET
Romain

Développeur .NET

  • ORLÉANS
.NET C# C++ JAVASCRIPT SQL
Bientôt disponible
CV Ingénieur de développement C++
Cédric

Ingénieur de développement C++

  • TOULOUSE
C++ QT PYTHON LINUX WINDOWS API RESTful SQL PHP
Disponible
CV Ingénieur de développement C++
Tho

Ingénieur de développement C++

  • MASSY
C++ LINUX GIT SQL PYTHON C# .NET
CV Ingénieur de développement JAVASCRIPT
Hichem

Ingénieur de développement JAVASCRIPT

  • BORDEAUX
JAVASCRIPT JAVA PYTHON Angular MYSQL REACT.JS TypeScript PHP C++
Disponible