
CV
Highly productive and enthusiastic software engineer with a diverse range of skills and interests. Primary experience in Rust, C/C++, and C# writing high performance 3d visualisation software, with a side passion for Haskell and functional programming. Professional interests include 3d graphics, machine learning, automation, and reverse engineering. Well known for being happy to work with any language or technology and figure out anything thrown at me!
Skills
- Rust / C++ / C# / Haskell / Javascript
- CUDA / OpenCL / OpenGL / DirectX
- Windows and Linux development
- Imperative, Object-oriented and Functional programming
- High performance and distributed computing and microservice architectures
- Happy to learn just about any technology in the course of interesting projects
Professional Experience
Virtalis Ltd, Senior Software Engineer, 2015-2022
My primary experience at this point is at Virtalis, where I worked on a massive variety of 3D/VR visualization and training products for geoscience, the manufacturing industry, and other customers. Summarised by year:
2015
- 2015 - GV: GPS tracks, web map servers, voxel data rendering, GIS file formats; loading, rendering and inspection tools for GIS file formats such as esri, shp
- Implemented real time streaming of large geoscience data to 3d visualisations
2016-2017
- 2016-2017 - VisRen: vive, rendering features?
- Integrated various third party VR and input hardware, often with minimal or no documentation
- Developed a visual testing framework for verifying the rendering of the numerous types of data we support running on windows, linux and macos on different types of graphics hardware
2018-2019
- 2018-2019 - HCR: dynamic sky, volumetric clouds, physical controller,
- Designed prototype interactive hardware for customer systems to interface with our software solutions
- Created a real time volumetric sky rendering system for use in training scenarios
2020-2022
- 2020-2022 - Company wide transition to git, azure devops and ci/cd, and to C# for the backend of our new microservice architecture, reach development backend lead, microservice architecture, 3d file format translation, batch processing of large amounts of 3d data, spatial database lookup acceleration. developed a whole new platform and application for allowing 3d data to be collected and collated, visualisations generated from them according to a project, and the resultant visualisations to be displayed on the web, large xml files, streaming data
Other experience
Administrator of online communities and networks
I've run a number of online communities, including a game server network specializing in MMOs and retro games, and a forum for a youtube gaming content creator, where I've also enjoyed developing fun features for users such as an online multiplayer building (TODO: blog post) game based on RPG maker.
Open source development
I've published a massive collection of my own projects on github, and have also contributed to a number of open source projects in the past, and have also contributed to a number of open source projects over the years, including the development and maintainence of various open source server software that interacts with existing games.
Reverse engineering and translation
I did technical work on the reverse engineering and translation of games such as Fantasy Explorer Nitroid! which impressed the original developer and opened up communications regarding future collaboration. My side of the project involved: reverse engineering the game to insert a new, translated script; producing tooling for translators, so that the script could be updated without technical expertise and tested; and communicating with the original creator regarding the project.
I've also reverse engineered other games in order to add new content or features, for example adding network support to a game that doesn't arleady have it. This has involved: DLL/function hijacks and the like to add new code, emulation of components such as server software, reverse engineering to incorporate new assets.
Indie games
From 2013-2015 I helped found an independent games studio called Pillowdrift with a group of friends, where we developed our own games as well as working with external customers on custom projects. Additionally, I still work on my own game projects from time to time, such as my current pet project Dreamfield (todo) which is a retro inspired RPG that seeks to emulate the experience and style of 90s playstation games, and is comprised of around 30k lines of Rust code.
Hardware hacking and misc projects
I'm also an avid builder of physical projects such as: portable versions of game consoles, game controllers, esoteric musical instruments, robots, and a full CNC machine. In the process I've become familiar with CAD software, 3d printing, electronics, and a number of other I’ve designed and built various pieces of hardware including portable versions of game consoles, game controllers, esoteric musical instruments, robots, and a full CNC machine. In the process I’ve become familiar with CAD software, 3d printing and electronics.
Skills
- C++ / C# / Java / Haskell / Javascript
- CUDA / OpenCL / OpenGL / DirectX
- Windows / Linux
- Imperative / Object-oriented / Functional programming
- High performance & distributed computing
- Docker / AWS / microservices / linux systems administration
- Happy to learn new technologies as needed :)
EDUCATION
Bachelor of Science, Computer Games Programming
Dissertation: Real-time GPU Ray Tracing with Heterogeneous Volumetric Effects
TODO:
- update virtalis work history section
- check all links work
- create project pages