Michael is an experienced software engineer mainly working in Python and SQL. Most of his contracts are in the City, mainly derivative trading and risk systems. He’s used Python since 2006. SQL, derivatives and database skills go back to the ‘90s. Much of his recent work has elements of machine learning engineering.
His last project was a risk calculation engine for BNY Mellon. It rapidly revalues FX and interest rate derivatives using the 3rd party library by Fincad, e.g. for CCAR. We built this using an internal cloud using a worker-based distributed architecture. Michael wrote the code to feed the Fincad models with trades and market data – a task needing much business knowledge and the ability to dive into data representations from source systems such as Summit.
Projects at GfK and M&S were pure machine learning engineering. At M&S, Michael’s main focus was on building performance and robustness to the software including automating tests for learning models and related code as the team worked towards level 1 ML Ops.
Work at GfK was more varied. Michael’s initial task was to take a model deriving supply/demand information from point of sales data. This focussed on the effect of temporary price reduction of consumer goods (such as sales). For an amateur economist, this is a special privilege – for example Steven Levit (of Freakonomics fame) claims few economists have seen a demand curve in the flesh. The original data science product was far too slow; the team re-engineered it mainly using Pandas and SQL. This required database design changes (denormalization, pre-calculated data features, query performance & tuning). He also reimagined the data science pipeline to make it more efficient.
Michael later worked on a neural network model to try to predict price changes in sectors of consumer goods as a result of changes to countries’ covid policies using Oxford Universty’s covid policy data source. The engineering team took the data science product and brought it into production.
Both projects were part the Newron product: a large project of some 100 data scientists and 100 engineers.
During the 2000s, Michael mainly worked in C++ and sometimes C# for clients using the Sophis derivatives system. This was varied work encompassing initial installations (Fidelity, Nomura, ABN Amro), new product development (Unicredit – a CPI securitisation product), version upgrade projects (KBC) and many data feeds. Michael first encountered Python during my work at KBC where it was used for scripting. It caught his imagination – it was like magic. He built a relational diff utility to help my work (diff using primary keys instead of line order, able to compare multiple data sources e.g. a report vs a database). This tool roughly halved the project timescale. So heincreasingly sought projects with the biggest possible Python component: it’s a decade since he coded in C++ or C#!
Following the financial crisis, Michael did a series of contracts for corporate law firm Clifford Chance. Regulatory banking cases dominated. During one period, tasks the team worked on made front page news several times a week. We worked mainly with the data from the global FX operations of a major bank. Work was varied – curating incoming data and building it into relational models, preparing overview graphics of sweeping scope, writing intricate algorithms to detect the signature of alleged behaviour and the like.
You’ll find Michael at London Python events. He organised their first proper London Python meetup at the Institute of Engineering Technology. He loves PyData London, where he has been a speaker.
Within a team, Michael’s strengths are innovation, improving process, business knowledge and filling gaps. Both his nature and broad experience help him spot things the team could do better. For narrowly defined areas of expertise, you may find better people (he’s only adequate at data science maths, cloud skills or front end web skills). He’s weak at organisational politics where he can be blind to peoples’ personal agendas.
But if you want a solid software engineer with exceptional creativity and a lot of experience in Python and derivative systems, he’s a sound choice.
Subject |
Level |
Institution |
Electronic and electrical engineering |
B. Eng |
Bristol University |
Computing for commerce and industry |
Pg Dip |
Open University |
Politics, Philosophy and Economics (a hobby?) – over a dozen courses |
Undergraduate |
Oxford University |
Tensorflow |
|
Oxford University |
Engineering |
Chartered engineer |
IET |
Skill |
Level |
Notes |
Python |
Core skill |
About 15 years, of which 8 as primary skill |
SQL |
Core skill |
About 25 years: Oracle, Sybase, MySQL, SQL Server, Postgres and others |
Pandas/numpy/scipy |
Intermediate |
About 5 years |
Tensorflow |
Beginner |
Oxford distance learning course, some use at GFK |
Pyspark/databricks |
Beginner |
New skill |
Cloud skills |
Beginner |
AWS, Azure, Google – enough to support development |
C++ |
Ex-core, Rusty |
Core skill for 2 decades |
GraphQL |
Intermediate |
Mostly from the perspective of creating Flask APSs. See this little project Michael created during a hackathon for M&S: https://github.com/mgrazebrook/pandagraph |
Equity derivatives |
Good |
About a decade |
Credit derivatives |
Good |
About 15 years |
Forex, equities, credit |
Fair |
Mostly to support derivatives systems but some projects where they were core skills |
SWIFT |
Fair |
Analysis of simple messages for Clifford Chance, processing all of them (even silly ones like travellers’ cheques) for Reuters Financial Products |
C# |
Rusty |
Used on 6 projects, only one as my core skill. Mainly in the context of Sophis APIs |
Michael had his own start-up once, an offshore software development company based in Moscow, USSR (later Russia) in the early ‘90s.
Michael occasionally completes in Pyweek, a competition to create a Python game in a week, though victory eludes me…
A regular at London Python, Michael set up their first non-pub meetup, using his membership of the IET. Planned for 30, 150 had booked before someone noticed we hadn’t set a limit … Fortunately Savoy Place has a large enough lecture theatre.
Michael Grazebrook, Joined Up Finance Ltd, 23 Kynance Mews, London SW7 4QR
Tel: +44 (0)20 7376 1337; Mobile: +44 (0)7713 402580; Email:
agents@grazebrook.com
Client |
Dates |
Description |
Bank of New York Mellon |
June 2022 Dec 2022 |
Integrate Fincad
libraries into a cloud based risk platform Skills: Python, fx
and IR derivatives,
risk, SQL, fincad, jupyter lab |
M&S |
Nov 2021 May 2022 |
Working
on customer loyalty (e.g. targeting the ads in the
sparks app), turn the data science team’s work into robust production code. Skills:
Python, pyspark, azure, numpy,
pandas, jupyter lab |
GFK |
Nov 2019 Jan 2021 |
A data
science product to provide economic data on consumer markets based on
detailed point of sales data. Includes engineering work to bring tensorflow model to production Python
numpy pandas Postgres economics git tensorflow mac |
B2C2 |
Jun 2019 Aug 2019 |
Cryptocurrencies:
feed and reconciliation with Kraken. Python,
Postgres SQL, Amazon S3, Git, Docker, Linux |
Willis Towers Watson |
Apr 2018 Dec 2018 |
Automate
calculations for defined benefit pensions Python,
Oracle |
Cambridge Medical Robotics |
Jan-Feb 2018 |
Helping out on the test harnesses which prove manufactured parts work. Filling in
while they recruit permanent staff. Python,
unit tests |
Full Fact |
May 17 – Oct 17 |
Volunteering
at Full Fact as a Python developer to help keep politicians and the media
truthful. Video editing program plus associated web interface, data feed Python,
Flask, CSS, HTML 5 |
Clifford Chance |
Feb 17 – Jul 17 |
Python
software development, lightweight data science and data structuring to
support banking and fraud cases Python
MySQL SQL Server SWIFT trading systems |
JP Morgan |
May 16 – Jul 16 |
Development
to support the credit desk. Short as I declined a rate cut for all UK contractors
post-Brexit. Python,
Credit |
Clifford Chance |
Aug14 - May 16 |
Technical
support for regulatory enquiries into trading operations Python,
MySQL, SQL Server, trading systems, FX, futures, swaps |
Thomson Reuters |
May-July 2014 |
Implementing
an automated execution platform for bonds as part of Eikon AngularJS,
javascript, bonds, C#, SQL Server |
Mysis & Islamic Development Bank |
Jan-Feb 2014 |
Implementing
Islamic Derivatives in Sophis on a project entering
UAT Sophis, C++, C#, Oracle, Islamic financial products |
JFL |
Jun 2013 – Nov 2013 |
CyKey keyer: Tutorial app and bluetooth firmware Skills: Python, bluetooth |
Unicredit |
Apr 2011-Dec 2012 |
Portfolio
insurance implementation. Then an operational risk project. Skills:
Python, C++, PL/SQL, Oracle, VBA, Windows |
ABN Amro |
Mar-Nov 2009 |
New
implementation of Sophis. Development team leader. Skills:
Scrum, C#, Risk, C++, Python, VBA, XML, XSLT |
Tropix Capital LLP |
Aug–Sep 06 Jul 07 – Nov 08 |
Working
on the pre-startup business planning for a substantial hedge fund specialising in tropical commodities. Reviewing risk a year later. Skills:
Financial mathematics, Python, business planning, commodities |
Fidelity |
Aug–Sep 06 Jul-Aug 07 |
Initial
implementation of Sophis Skills:
Sophis, Perl, C++, C#, Oracle, PL/SQL, Sybase |
KBC |
Mar 06 Jul 06 |
Regression
testing and validation of a new Sophis release. Bug
fixing. Developing a framework for batch processing in Active Batch &
Python Skills:
Sophis; Python; C++; C#, Active Batch; Oracle |
HSBC |
Apr 05 Feb 06 |
Maintenance
and enhancement of a Sophis system for CBs. Skills:
Sophis; C#; C++; Perl; Oracle; Clearcase;
VB; VBA; Excel; .Net |
Nomura |
Apr 04 Feb 05 |
Integration
of a Sophis equity derivatives system Skills:
C++, Visual C++, Sybase, Oracle, perl, XML, Corba, Sophis toolkit, Clearcase |
Reuters Financial Systems |
April 03 April 04 |
Swift
messaging for the KTP and KTP+ back office systems. Skills:
XML, XSLT, Oracle, Sybase, Perl, C++, Java, Business Works, Turbo XML, XML
Spy, UNIX, Windows |
Cortex Software GmbH |
Nov 01 Apr 03 |
Design and build an API with the same function signatures as btrieve but implemented in ODBC for an SQL Server database. Porting the database. Analysis of the Kasse module Skills:
C++, btrieve, SQL Server, development DBA, ODBC |
Business planning |
Feb 01 Oct 01 |
Investigated two business plans for technology start-ups. Decided not to proceed. |
Canon Research Europe |
Nov 00 Jan 01 |
Designed and developed a program which converts any XML Schema definition into a C++ class library. Skills:
XML Schema, MPEG-7, C++, OOA, OOD |
Commodities trading |
Aug 00 Oct 00 |
Quants work looking at the degree of validity of Black Scholes for sugar price history; using signal processing techniques to investigate the data. Skills: Java, maths |
National Australia Bank |
Dec 99 July 00 |
Interim management: Infinity Project Manager. Responsible for swaps and futures trading systems for NAB and its subsidiaries (Clydesdale etc). Y2K; Straight through processing; Infinity support; centralizing subsidiary banks back end processing. Skills:
Project Management, Infinity, TCL, Sun/UNIX |
Various |
Nov 98 Sep 99 |
Murex database performance and tuning work for several banks; some work for an Internet startup. 3 months studying German in Berlin Skills:
SLQ, Sybase, Murex, Perl, performance & tuning |
Bankgesell-schaft Berlin & NordLB |
Mar 98 Oct 98 |
Infinity development for complex interest rate derivatives and credit derivatives; management support on a 130 engineer project Skills:
C++, Sybase, IRD, Swaps, VAR, Perl, General management |
WestLB, Dusseldorf |
Sep 98 Mar 98 |
Developing a Murex – Infinity interface on a KWG6 (VAR) project Skills: C++; Oracle; Infinity; Sybase; Perl; UNIX |
Various |
Mar 97 Sep 97 |
2 months studying French in Aix; Hong Kong for the handover; 2 month Borland C++ contract for a family business |
Merrill Lynch |
Nov 95 Mar 97 |
Designed and developed Merrill Lynch’s Options Blotter, it’s system for Credit Derivatives. Built an internal team to replace me and continue the work. Skills: OMT (like UML), C++, Sybase, Motif, Perl, OOA, OOD, Project management |
Trace Financial |
June 95 Nov 95 |
Design of a relational database to represent the data interface to CREST and associated workflow management Skills:
SQL, Informix, C++, Select OMT |
Nat West Markets |
May 95 June 95 |
Design and development of a link between an Oracle and Sybase database. Skills: Oracle, Sybase, C++, UNIX, shell scripts |
Training |
Jan 95 May 95 |
Several training courses, mainly provided by QA and Sybase: Object Oriented Design, X-Designer, System Architect, several Sybase courses, Knowledge Engineering, Smalltalk, Motif, OMT. |
ACT |
Oct 94 Jan 95 |
Testing and bug fixing an equity trading system Skills:
C++, OOD, Oracle, UNIX, Rogue Wave, Windows |
Barings Securities |
Jul 93 Jun 94 |
Designed and developed the engine for STAN, a real time trading system originally for equity derivatives, later expanded for other products Skills:
C++, Sybase, Warrants, Equity Derivatives, OOA, OOD, Tibco |
Gate |
Jan 91 June 93 |
I created and ran an offshore software development company in Moscow. We employed 4 Russian developers and occasional specialists as needed. Our clients included Clients included GPT, BT, British Rail and Oxford Molecular. Skills: C++, UNIX, Oracle, X-Windows, Motif, Project Management, basic Russian |
Phillips |
July 91 Dec 91 |
Development of full custom chip design tools Skills:
C++, UNIX, scripting, OOA, OOD |
InCA |
Apr 90 May 91 |
ASIC emulation software for a start-up. Skills:
C++, Lex, YACC, X-Windows, Open Look, GUIDE, Windows |
Welsh Water |
Aug 90 Oct 90 |
An energy trading system for electricity supply Skills:
C, PRO*C, Oracle, UNIX |
ES2 (now Atmel) |
Oct 86 July 89 |
Development, integration and testing of ASIC design tools Skills: C, Lex, YACC, ASIC design, UNIX, DOS, Vax, VMX, Aegis |