Graham Walsh, Developer in Wexford, Ireland
Graham is available for hire
Hire Graham

Graham Walsh

Verified Expert  in Engineering

C++ Developer

Location
Wexford, Ireland
Toptal Member Since
October 5, 2023

Graham is a senior C++ developer with extensive experience in investment banking, working on greenfield and legacy projects. He specializes in trading platforms, including foreign exchange and equity markets, and equity risk analysis. As an expert well-versed in direct interactions with traders and stakeholders, Graham's work ethic places paramount importance on rigorous testing to deliver the best quality product. Project work usually involves extensive Python and/or bash scripting.

Portfolio

RoundTower Artbitrage Trading
C++, Go, Amazon Web Services (AWS), Docker, Python 3, RabbitMQ...
Bank of America
C++, Sybase, Git, XML, Legacy Code, C++17, Agile, Jenkins...
Omnivend Systems
C#, Visual Basic 6 (VB6), REST, SQL Server 2016, APIs

Experience

Availability

Part-time

Preferred Environment

Linux, g++, Valgrind, C++20, Python 3

The most amazing...

...thing I've done was halving the time needed to test and release code by eliminating internal dependencies, allowing 10 developers to avoid delays.

Work Experience

Chief Engineer and Architect

2023 - 2024
RoundTower Artbitrage Trading
  • Maintained and featured extension of crypto gateways. Enhanced and bugfixed Python 3 front end (Flask-based). Added new gateway support. Extended arbitrage strategy from manual to automatic (fully systematic trading). Managed AWS Linux instances.
  • Designed and delivered a C++ framework to re-implement Binance exchange (real-time, static data feeds for regular and perpetual futures). Implemented order management system with DB integration for trade history/position management, etc.
  • Completed the cleanup of the existing Python/front-end code. Implemented monitoring service to ensure 99% uptime (automatic restart of gateways and data feeds).
  • Used REST and WebSockets exchange interfaces for static and real-time (market) data.
Technologies: C++, Go, Docker, Amazon Web Services (AWS), Python 3, RabbitMQ, Google Protocol Buffer, Flask, Scripting, REST, PostgreSQL, Uptime Monitoring

Senior C++ Developer

2018 - 2022
Bank of America
  • Implemented, tested, and deployed multi-leg non-deliverable forward (NDF) Financial Information eXchange (FIX) orders. Functionalities included trade pricing, quote, execution, and lifecycle extended Python test framework for unit and feature testing.
  • Provided lifecycle support from quote request to execution. Implemented a greenfield monitoring service.
  • Used Jira, Jenkins, and CI/CD for the development process.
  • Provided final-level support to developers on a rotational basis, which included being on call over weekends every two weeks for production deployment of new versions.
  • Mentored junior developers and participated in code reviews and design decisions.
  • Ensured all deliverables went live without issues in a highly complex environment with over 100 communicating microservices using C++.
Technologies: C++, Sybase, Git, XML, Legacy Code, C++17, Agile, Jenkins, Continuous Integration (CI), Continuous Delivery (CD), Greenfield, Trade Finance, Object-oriented Programming (OOP), Python 3

Chief Engineer

2017 - 2018
Omnivend Systems
  • Migrated stock management from "on machine" to real-time/centrally located. Implemented and deployed card payment support (versus cash only) to "POS" (Point of Sale/tap) devices. A REST architecture was used to manage over 100 kiosks nationwide.
  • Worked on a major overhaul of the ineffective stock control software; day-to-day issues were fixed. Database optimization, automation of software upgrades to remote kiosks management of two developers.
  • Oversaw successful deployment of major upgrades to all remote machines/devices. Automation tools are integrated into day-to-day operations versus previous manual and error-prone approaches.
Technologies: C#, Visual Basic 6 (VB6), REST, SQL Server 2016, APIs

Senior C++ developer

2016 - 2017
Bloomberg
  • Solely managed the maintenance and enhancement of the London Metals Exchange gateway.
  • Upgraded the gateway to support FIX dialect changes in back-end server. Added new tests to the regression/test framework to ensure correct functionality and non-regression.
  • Upgraded various other gateways, Deutsche Börse and Euronext, as FIX dialect changes were published/updated by the exchange.
Technologies: C++, Linux, Testing, Object-oriented Programming (OOP), Scrum, Agile, FIX Protocol, Git

Senior C++ Developer

2005 - 2007
Societe Generale
  • Deployed a portfolio pricing to 500-CPU data synapse grid solution that calculated the Greeks, allowing traders to maintain delta-neutral positions. The significant speedup was beneficial to trading desks and operating centers.
  • Migrated derivatives and risk pricing from a local, standalone system to a highly parallel grid, including classic derivatives such as options, swaps, and futures, and over-the-counter (OTC) derivatives such as florals and warrants.
  • Ensured price convergence to guarantee the accuracy of the calculations.
  • Deployed to production and provided second-level support, which resulted in a system that still runs smoothly.
  • Introduced the Boost framework to the development team. Its adoption enabled massive quick wins and a safer and cleaner codebase.
Technologies: Boost, C++98, Risk Analysis, Grid Computing, Symphony

Consultant C++ developer

1994 - 2005
IONA Technologies
  • Started initially in the support team (straight out of college). Was promoted to a team of highly skilled consultants from a very early stage. Was deployed to enterprise clients to design and implement distributed architectures.
  • Provided expert consultancy to blue chip companies (correcting client code errors, debugging and fixing client code crashes, optimizing client code, etc.).
  • Was part of startup consultancy team in three offices (Paris, Perth, Sydney). A senior presence was required in each startup office where I worked as the lead consultant.
Technologies: C++, Java, CORBA, IBM Rational ClearCase, purify, Object-oriented Programming (OOP), Unit Testing, Distributed Software, Large Scale Distributed Systems, Best Practices in Design, Dynamic Load Balancing, Solaris, HP-UX, AIX, SGI Workstation, API Design, Performance

Implementation of Shared Pointer

https://github.com/grahamers/shared_ptr/
I implemented C++11 shared pointer, including its core aspects such as type erasure, correct use of deleters, memory management, reference counting, and thread-safe reference counting. A complete test suite verified memory management and reference counting integrity.
1990 - 1994

Honors Degree in Computer Science

Trinity College Dublin - Dublin, Ireland

APRIL 1997 - PRESENT

Advanced C++ Programming

Sun Microsystems

DECEMBER 1995 - PRESENT

Advanced C++ Programming

IONA Technologies

NOVEMBER 1994 - PRESENT

CORBA

IONA Technologies

Libraries/APIs

PostgREST

Tools

Valgrind, Microsoft Visual C++, Git, Jenkins, IBM Rational ClearCase, SGI Workstation, RabbitMQ

Languages

C++, C++17, C++98, C++11, C++14, C++20, XML, SQL, Java, Java 8, C#, Python, Visual Basic 6 (VB6), Go, Python 3

Platforms

Linux, Software Design Patterns, Solaris, HP-UX, AIX, Amazon Web Services (AWS), Docker

Paradigms

Parallel Programming, Agile, Testing, Object-oriented Programming (OOP), Best Practices, Continuous Delivery (CD), Continuous Integration (CI), Test-driven Development (TDD), REST, Scrum, Unit Testing, Best Practices in Design

Frameworks

Boost, Google Protocol Buffer, Flask

Storage

Sybase, SQL Server 2016, PostgreSQL

Other

g++, Software Engineering, Legacy Code, Greenfield, Multithreading, Memory Management, Algorithms, Grid Computing, Shell Scripting, Trade Finance, Risk Analysis, Symphony, TCP/IP, APIs, Hardware Design, Mathematics, Digital Logic, CORBA, TIBCO DataSynapse, FIX Protocol, purify, Distributed Software, Large Scale Distributed Systems, Dynamic Load Balancing, API Design, Performance, Debugging, Architecture, UDP, Scripting, Uptime Monitoring

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring