Sep 2020 – Present
At Sinara, I'm working on software for financial organisations, particularly trading platforms and handling market data.
Developed a multicast market data feed handler (C#)
- Implemented decoding, processing, and storage of the binary data feed
- Created an expansive automated unit and integration test suite
- Created tools to support development and testing, including a market data emulator that could simulate different scenarios, and market data visualiser
Worked on an in-house trading platform, SinaraTLC (C#)
- Designed and implemented new microservice components
- Extended functionality of the platform's matching engine
- Added new features to and improved the web frontend
- Improved project automation, improving the developer experience
Developed a trading platform for the London Metal Exchange as part of a technology modernisation project (C++, Java, Python)
- Assisted in the design and implementation of new components to integrate the platform with other systems within the exchange with Apache Kafka
- Worked on resiliency features for new components
- Applied changes to existing trading platform components to adapt them to the LME's commodities market
- Improved the existing build environment and development experience
- Introduced development tools for catching problems in code, and fixed issues that were highlighted
- Improved development tools, including a FIX trading client
Designed, implemented, and executed automated unit and integration tests, as well as quality assurance tests
Wrote technical documentation to assist other developers, and user documentation intended for users and administrators
Jun 2018 – Aug 2019
Game Programmer (Student Placement)
As a developer at Feral I worked on bringing more games to macOS and iOS.
Delivered the bulk of the 64-bit port of Total War: Shogun 2 for macOS, with similar patches used to later port other games in the franchise
Assisted the release of Tropico for mobile, primarily working on the touch camera controls and improving performance
Was heavily involved in the development of Company of Heroes for iPad, implementing many of the controls and UI changes needed to bring the game to touchscreens
I jumped into several large codebases - including multiple game engines - that were originally developed with Windows as the target platform. I learned how to pick up new projects and explore and understand them, being able to quickly start fixing bugs and implementing new features.
Using C++ throughout my placement earned me a deeper understanding of the
language, as I debugged and fixed cross-platform bugs including undefined
To support development, I wrote a tools and libraries, including a generic library for real-time strategy touch camera controls which was used in both Tropico and Company of Heroes ports.
Being the main IDE for Apple platforms, I used Xcode throughout my placement, and also made extensive use of LLDB to debug games and fix obscure bugs.
Sep 2016 – Jul 2020
BSc Hons Computer Science with Year in Industry
Graduated: 24th July 2020, first class
Year averages: 1st: 88%, 2nd: 80.3%, 4th: 76.4%
Dissertation project: Mining and analysing public government data of investment into research & innovation, applying some network and data analysis techniques to explore relationships and collect statistics.
Some exam results I'm proud of:
- Programming Paradigms • 99% As an introduction to the object-oriented and functional programming paradigms, I used Java to make a simple card-matching game, and Haskell to make simple but expressive programs
- Programming & Algorithms • 94% I learnt the usage of pointers and manual memory management through learning C, as well as a variety of data structures and algorithms
– C++ (20), CMake
A C++ emulator library for the 6502 microprocessor, aiming to make use of modern C++ and best practices.
– Lua, MySQL
An addon for the game Garry's Mod. It allows players to create, join, and manage groups within a game server. Players can set a bulletin, manage their members and the group's bank account.
I created a minimal website that a business could use to provide contact
information and show off their services, supporting content in multiple
PHP was used for routing and translating the website's content. An adaptive CSS stylesheet makes the website usable on both desktop and mobile devices. Page transitions are performed through AJAX requests.
In my spare time I also enjoy archery, baking, and fiddling with open-source
software. Some of my open-source contributions can be found on my GitHub
My personal computers and server run a distribution of GNU/Linux, so I've a good understanding of how to install, use, and maintain such systems.
I've completed some exercises on Root Me to test my knowledge of computer security and learn more about it.
I worked with CoderDojo at an event that introduced young people to technology
and software development.
I supported attendees who learned about programming with Scratch and the BBC micro:bit, as well as web design using HTML & CSS.