Curriculum Vitae for Craig Thomson
Communication - Developed by working in teams at multiple organisations. Experience with both internal and external customers as well as team members and management.
Leadership - Lead Programmer on projects at Ruffian Games. In charge of the entire tools team at Ratbag and managing an EC funded project at EPCC with development partners in the UK and Italy.
Software Engineering - A solid degree and 12 years of experience in a range of companies. Experience writing low level algorithms and GUI applications.
Software Engineer, CriticalBlue, Edinburgh, June 2013 - Present
A varied role involving anything from low level optimization to writing blog articles and providing consultancy to external customers on how to improve their software.
Senior Engineer, Ruffian Games, Dundee, June 2009 – June 2013
Worked closely with artists and designers to improve software for building games and worked on Crackdown 2 for Xbox 360. I then moved on to become a code lead on 2 different projects with Microsoft, again for Xbox.
- Overseeing the entire technical process from requirements capture to delivery
- Managing and mentoring staff
- Adapting to rapidly changing requirements and priorities
- Becoming quickly productive with unfamiliar code and systems
Edinburgh Parallel Computing Centre, Edinburgh, April 2006 – June 2009
I joined EPCC, a part of the University of Edinburgh, as an Applications Consultant.
Applications Consultant, April 2006 – September 2007
During my time as an Applications Consultant I:
- Developed my programming and design skills working with C++, Java and C#.
- Gained experience of integrating code with several SQL databases.
- Developed knowledge of Web services and Grid software.
- Reviewed designs, documentation and performed code audits.
- Worked on BEinGRID, a large European collaborative project.
- Taught Software Engineering for the MSc in High Performance Computing.
Principal Consultant, September 2007 – June 2009
I was promoted and gained additional responsibilities:
- Line Management of staff.
- Management of a middleware project with partners in Italy including Ducati.
- Rewrote the testing course on the MSc in High Performance Computing.
Ratbag Games, Adelaide, June 2004 - December 2005
Tools Programmer, April 2004 - June 2005
During my time in the tools team my duties involved:
- Developing core systems in C++ for use on Xbox/PS2/PC.
- Working closely with the other teams in the company.
- Assisting the game development team to fix bugs and develop game systems.
- Personal responsibility for time management and code quality.
Sub-team Lead, June 2005 - December 2005
During the later part of my time at Ratbag I was promoted to be the lead of the tools sub-team and reported directly to the lead programmer. As part of my role I:
- Gathered technical requirements from the other teams in the company.
- Estimated, scheduled and allocated work to the members of my team.
- Line managed my team and was the first point of call if they had any issues.
- Took part in a leadership course run by the company.
- Was responsible for the development of critical game building software.
Software Engineer, Voxar, Edinburgh, July 2000 - September 2003
I spent 18 months working on a medical imaging application. I had responsibility for:
- Finding, fixing and testing for bugs as well as the implementation of new features.
- I worked closely with the rest of a ten person team to tight deadlines
- I helped produce an innovative application in C++ using MFC/Win32.
The remainder of my time at Voxar was largely spent working on advanced voxel based renderers for 3D visualisation of CT and MRI data. I worked:
- In a small technology team.
- To produce libraries for integration into multiple products.
- Under limited supervision and had to manage my own time effectively.
- I designed, implemented and tested an entirely new and highly optimised renderer written in C++ and x86 assembler.
- Made the renderer take advantage of multiple processors.
University of Edinburgh, September 1996 - June 2000
2:1 In Artificial Intelligence and Computer Science. My degree included courses in:
- Algorithmic complexity, algorithms and data structures
- A variety of AI approaches
- Visualisation and graphics