Work Experience
Sinara
Sep 2020 – Present
Software Engineer
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
Feral Interactive
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
behaviour.
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.
Education
University of Nottingham
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
Projects
Microlator
– C++ (20), CMake
A C++ emulator library for the 6502 microprocessor, aiming to make use of modern C++ and best practices.
Organisations
– 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.
A business site
– PHP, JavaScript, HTML5, CSS
I created a minimal website that a business could use to provide contact
information and show off their services, supporting content in multiple
languages.
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.
Other interests
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
profile.
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.
Volunteer work
CoderDojo
Nov 2018
Volunteer
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.