Lexicalscope Ltd is a software engineering consultancy, specialising in architecting and building cloud hosted products for large enterprise customers. We offer consultancy services and training at a daily rate. You can contact us using the form below.
Talk to us about: Distributed system design, OO software design, engineering leadership, formal methods, software engineering methods, estimation and prioritisation, requirements analysis, development process and team management, code review and programming style mentoring and training, developer recruitment and interviewing.
You can email us at tim AT lexicalscope.com address.
Tim Wood 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 a PhD in program verification from Imperial College London supervised by Professor Sophia Drossopoulou. His research interests are in formal methods and reliability of software updates.
- Refactoring and Program Modification
- Differential Static Analysis
- Object Oriented Programming
- Symbolic Execution
- Programming Languages
- Wood, Drossopoulou, Lahiri and Eisenbach: Modular Verification of Procedure Equivalence in the Presence of Memory Allocation ESOP 2017, Upsalla
- 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. Greenfield design and implementation of a new cloud deployed SAAS platform, and selling and deploying the system to a customer base of large multi-national corporations.
Skills: Engineering Leadership, Corporate Security Review and Compliance Processes, Cloud SAAS design, Amazon Web Services, Docker, Elastic Beanstalk, Cloud Formation, Python, Android, iOS, OAuth, Sales Methodologies, Salesforce, Microsoft Dynamics
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, concurrency, recruitment, mentoring, domain specific languages, code review, agile development methodologies, pros and cons of agile development, Java, Python.
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.
Skills: PKI, X.509 certificates, LDAP, system penetration, shellcode, HTTP, SSL, Network Security, Java, C, Assembly
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.