Thomas Murray

Thomas Murray

Mentor
Rising Codementor
US$15.00
For every 15 mins
free badge
First 15 mins free for your first session
ABOUT ME
Senior C++ games & compiler developer with 8+ years of experience
Senior C++ games & compiler developer with 8+ years of experience

Previously worked on compilers for machine learning on the IPU at Graphcore, and before that ported games from Windows to macOS and other platforms at Feral Interactive. Now contracting in different fields, most recently for King on Candy Crush Soda Saga.

Strengths in low-level debugging and realtime/non-realtime performance optimisation for C++ applications. Experience with LLVM/MLIR tooling for building compilers, Boost, Intel TBB, OpenGL, Apple Metal and more.

English
London (+00:00)
Joined February 2023
EXPERTISE
8 years experience
I've used C++ as my main development language my whole career. I've experienced its use the very different domains of soft real-time appl...
I've used C++ as my main development language my whole career. I've experienced its use the very different domains of soft real-time applications (videogames) and compilers where the problems encountered differ a lot particularly with regards performance optimisation and debugging. I've led the architecting and development of applications and libraries written in C++ so I am confident I can help with both lower & higher level problems!
View more
View more
3 years experience
I've used python on and off both in the context of quick and hacky scripting, and in the context of substantial, real applications (prima...
I've used python on and off both in the context of quick and hacky scripting, and in the context of substantial, real applications (primarily machine learning) throughout my career.
View more
View more
2 years experience
At Feral Interactive we adopted Apple's Metal API for rendering in our libraries fairly early on in its development. For 1 year I was res...
At Feral Interactive we adopted Apple's Metal API for rendering in our libraries fairly early on in its development. For 1 year I was responsible for developing new features ontop of Metal, debugging graphical/performance issues in rendering, and liasing with driver developers to debug third party issues with Metal
View more
View more
2 years experience
We used OpenGL to render games on macOS for a large portion of my time at Feral Interactive as an alternative to DirectX for our ports of...
We used OpenGL to render games on macOS for a large portion of my time at Feral Interactive as an alternative to DirectX for our ports of AAA games.
View more
View more

REVIEWS FROM CLIENTS

Thomas's profile has been carefully vetted and approved as a Codementor. Connect with Thomas now, and leave a review for them once you're done!
EMPLOYMENTS
Senior Software Engineer
King
2023-05-01-2023-12-01
- Worked on contract within the Monetisation & Economy team for Candy Crush Soda Saga - Worked entirely with C++ and King's in-house tech...
- Worked on contract within the Monetisation & Economy team for Candy Crush Soda Saga - Worked entirely with C++ and King's in-house tech to develop new game features both independently and as part of small cross-functional teams. - Largest single project was a complete revamp of the in-game shop over 3-4 months
C++
Xcode
GUI
View more
C++
Xcode
GUI
Responsive Design
macOS Development
Mobile game
View more
Software Engineer
Graphcore
2018-02-01-2023-01-01
- Member of the team responsible for the Poplar compiler/runtime, and PopLibs libraries. Responsibilities include: bugfixing, implementin...
- Member of the team responsible for the Poplar compiler/runtime, and PopLibs libraries. Responsibilities include: bugfixing, implementing new features, functional & performance testing, runtime performance optimisations for IPU, compile-time optimisations for Poplar compiler and PopLibs APIs on the host. - Technical leadership & consulting for Poplar & PopLibs. - Working as part of a team responsible for design, planning, and implementation for an unannounced internal software project making heavy use of MLIR tooling.
Python
C++
GDB
View more
Python
C++
GDB
CMake
LLVM
View more
Developer
Feral Interactive
2015-10-01-2018-02-01
- Project Lead on macOS/Linux ports of Mad Max from original Windows source code written largely in C++ and using DirectX. Led the projec...
- Project Lead on macOS/Linux ports of Mad Max from original Windows source code written largely in C++ and using DirectX. Led the project from receiving first source code drop to shipping Oct 2016. - Developer on 3 other ports of Windows games: BioShock Remastered macOS, BioShock 2 Remastered macOS, Dawn of War III macOS/Linux. - Last 6 months focused on development of Apple Metal paths in core libraries. Performance optimisations, debug/workaround of graphical issues, implementation of new features. Liaison with third parties for new features and driver issues.
Python
C++
Xcode
View more
Python
C++
Xcode
OpenGL
Directx
3D Graphics
Metal
Windows Development
macOS
View more
PROJECTS
Mad Max macOS portView Project
2015
While working at Feral Interactive I was lead developer of the macOS port of Mad Max from receiving the original C++ 11 source code targe...
While working at Feral Interactive I was lead developer of the macOS port of Mad Max from receiving the original C++ 11 source code targeting Windows/DirectX through to the final release over the course of 1 year. For ∼9 months I worked alone, and for the remaining time additional developers joined me to work on a Linux port and bring the game to release quality. Some of my contributions were: * making the project compile and run in Xcode (and its version of Clang) * adding missing features to in-house implementations of Windows/DirectX/other third party APIs using macOS/OpenGL/OpenCL APIs and more * debugging/fixing initial major issues (spanning functional, graphical, and performance issues) such that the game was playable before putting it through several cycles of QA * performance optimisations to reach the widest possible range of target hardware The project successfully met QA requirements and released in October 2016.
C++
Xcode
OpenGL
View more
C++
Xcode
OpenGL
Directx
3D Graphics
Windows Development
macOS
View more
Top-k & sort implementations for Graphcore IPUView Project
2021
While working at Graphcore, I created an optimised implementation of top-k & sort based on the bitonic sorting algorithm over the course ...
While working at Graphcore, I created an optimised implementation of top-k & sort based on the bitonic sorting algorithm over the course of 7-8 weeks. I adapted bitonic sort to implement top-k, and to the distributed memory architecture of Graphcore’s IPU. I wrote kernels to run on individual processors using C++17 & assembly (custom ISA) with coordinating code in C++ 17. The top-k operation in a key target application for the new implementation was ∼48x faster than with the previous heap-sort based implementation, resulting in the application as a whole running ∼2x faster. This implementation continues to be used today in a wide range of applications.
C++
Assembly
GDB
View more
C++
Assembly
GDB
View more