Knowledge‎ > ‎

C++

C++ was my first language. This is a great starting point because it requires the deepest knowledge of computers and programming. Used properly C++ requires a view of two aspects of programming. Firstly, great program design, which facilitates well structured, easily understandable and maintainable code following methodologies utilising object oriented code, templates and design patterns. Secondly, an understanding of machine architecture, coding efficiencies and memory management.

Major projects I have undertaken in C++ include:
  • Macquarie Bank research and analytics modelling system - I managed a team of people working on a newly purchased fast large data volume, high availability server cluster. I was responsible for getting the hardware, the development system and the production system setup. As this system was just a framework, I built an extra layer of C++ libraries on top of the existing system to speed development and managed the development of a C# front end. This was a challenging project as the calculations were so complex and important that as well as producing the end result, the server had to make every stage of the process available for validation. This software is now Macquaries core historical and current database of all trades in Asia, used by the analytics and sales teams.
  • KBC Financial Products derivatives trading platform - I was part of a team extending and maintaining a 3rd party C++ trading platform running on Unix with a Sybase database. I was responsible for all parts of the system including GUI, reporting, database and modelling. With new monte carlo models it became apparent that the current architecture was insufficient to handle the demand. I extended this simple single threaded process to communicate with a calculation farm of parallel machines for both GUI and reporting processes. I also added several complex mathematical tools such as new modelling systems for volatility surfaces and yield curves and also new calculation methods for vega bucketing, vega-strike bucketing, rho bucketing, correlation vega and cross gamma. This platform was used by traders and risk managers in London, HK and New York.
  • A 3D Modelling and Visualisation System for Clay Pigeon Shooting - This was my final year individual project at Imperial University. I was awarded the project prize for this software and my novel way of applying splines to model accurate, highly efficient, predictable object motion and collision detection. This approach allowed me to build in very accurate targeting training features not available in other systems. See University for the report.