I am currently a PhD student at Imperial College London supervised by Professor Sophia Drossopoulou. I hold a 1st class MEng Degree in Computing from Imperial College London. I have more than 10 years commercial experience as a Software Engineer, mostly in the telecoms sector.
- Refactoring and Program Modification
- Differential Static Analysis
- Object Oriented Programming
- Symbolic Execution
- Programming Languages
- T. Wood and S. Drossopoulou: Refactoring Boundary in ICCSW13
- T. Wood: A Chorded Compiler for Java MEng final project report (2004) (best project prize winner)
Software Coach, HumanLearning Ltd. (2013-)
Providing consultancy on distributed system design, recruitment and development methodologies.
Senior Software Engineer, Resilient Networks PLC (2003-2012)
Design and implementation of large, high availability, distributed telephony network, switch and application platform. The system is spread over many geographically distributed sites and is connected to the internet, public telephone network, and other large commerical and government telephone networks. I have lead the design of large amounts of code in this role, and written quite a bit too, which has then been deployed into situations that demand extremely high reliability and availability.
Also responsible for recruitment and training of software engineers, writing adverts and job specs, CV screening, telephone and in-person interviewing. Responsible for recruiting and mentoring undergraduate placement students and interns.
Skills: Object Orientated Design and programming, Refactoring, TDD, designing highly available and scalable distributed services, recruitment, mentoring, domain specific languages, code review, agile development methodologies, pros and cons of agile development.
Trainee Research Engineer, (details on request) (1999-2002)
Worked on a number of projects focused around communication security and public key infrastructure. Responsible for implementing an HTTP and SSL proxy server. Also conducted research into general system security and system penetration techniques.
2014 Teaching Assistant – 161 Programming (ocassional lab helper)
2012,2013 Teaching Assistant – 475 Software Engineering for Industry (lab assistant, coursework marking)
2013 Teaching Assistant – 302 Software Engineering Practice (help with lectures on Continuous Delivery)
2012 – Advanced Programming, lecture on Refactoring.
2002 – Lectures on using the Unix Shell and VI editor.
2005-2012 – Mentoring undergraduate industrial placement students.
I also offer consultancy services and training at a daily rate. You can contact me using the form below.
Talk to me about: Distributed system design, OO software design, agile methods, non-agile methods, estimation and prioritisation, requirements analysis, development process and team management, code review and programming style mentoring, developer recruitment and interviewing.