Tim has 15 years commercial experience as a Software Engineer. He started his career in computer security, but has spent the last 10 years designing, architecting and building cloud hosted products for large enterprise customers. He has designed and architected products used by government, health, banking, mid-sized and large enterprise customers, including highly distributed telecoms products with very high reliability, security and availability requirements. He holds a 1st class MEng Degree in Computing from Imperial College London and has recently submitted his doctoral thesis at Imperial College London supervised by Professor Sophia Drossopoulou. His research interests are in formal methods and reliability of software updates.
You can email me at my tim AT lexicalscope.com address.
- Refactoring and Program Modification
- Differential Static Analysis
- Object Oriented Programming
- Symbolic Execution
- Programming Languages
- T. Wood and S. Drossopoulou: Program Equivalence from Trace Equivalence paper and fool2014 slides in FOOL2014
- 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)
Chief Software Architect, HumanLearning Ltd. (2013-)
Lead architect. Distributed and cloud 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.
2015 Marker – First year Haskell programming test
2014,2015 Teaching Assistant – 220 Software Engineering Design (lab assistant, coursework marking)
2014 Teaching Assistant – 161 Programming (ocassional lab assistant)
2012,2013,2015 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.