Overseeing the technical design and development of Cydar's cloud-based medical imaging product, identifying and exploiting new technologies as appropriate, and monitoring the technology and regulatory landscape to inform strategic planning.
Day-to-day responsibilities include leading the Engineering, QA and Regulatory Affairs teams, steering the release process, and working across the company to plan product development according to customer, commercial and compliance needs.
Involved in all aspects of the planning, architecture and implementation of a cloud medical image processing application based on a proven research prototype.
Working on the Encounter Digital Implementation System, a leading EDA tool, with responsibility for shepherding features from initial requirements, through specification and implementation, to release and maintenance. Specifically, I have been involved in numerous improvements to the Tcl scripting interface of the product.
Following the acquisition of Azuro by Cadence, worked on integrating the Azuro codebase into EDI. This included the reimplementation of key functionality, most notably the clock tree visualisation. Provided ongoing maintenance and support for both the standalone and integrated functionality.
Team Lead of the Core team, covering the areas of user scripting, cross-platform GUI, and core data infrastructure. Responsible for day-to-day supervision of two to three other developers, management of bugs and enhancements, and involvement in planning for future releases.
Responsible for design and implementation of new features in various areas of the product, most notably visualisations and scripting infrastructure. Contributed to ongoing maintenance, including both bug fixing and customer support.
In May 2010, took on leadership of the Core team.
Member of the R&D team for a growing provider of EDA (Electronics Design Automation) software tools, working on cross-platform GUI, user scripting support and core infrastructure in a combination of C++, Java and Tcl. Additionally, implemented and maintained build and other development tools in Python and other languages.
Small group teaching of undergraduates for a range of courses from the BA and Diploma in Computer Science, and supervision of final year individual projects.
Assisted Director of Studies with interviewing and selection of undergraduate candidates.
Working as part of the E-Business Solutions group, prototyped an interface for the selection and invocation of Web Services, using vision-based tracking of physical markers.
Presented short lectures and assisted with practical exercises on a three-day course in advanced C++ techniques for professional programmers at Sony Computer Entertainment, Europe.
Part of a research team working on software for the Sentient Computing project, centred on exploiting a fine-grained location system to create context-aware applications. To support such applications, the project also created a distributed architecture, based on CORBA objects and using a relational database for persistent storage. Most applications were implemented in C++ using a variety of libraries developed within the project. A small number were implemented in Python.
Research and initial implementation of various technologies for inclusion in a subsequent version of Tarantella, a remote desktop product. This involved integration of C++ and Java, on a variety of Unix platforms.
Research degree, investigating the use of end-user programming in a domestic ubiquitous computing setting. The work combines theoretical aspects such as programming language design and cognitive psychology with the implementation of practical systems.
Taught degree, including courses in all areas of Computer Science, a group project (using Java) and an individual software engineering project (using C++ and Open GL).
A-Levels in Biology, Chemistry, Maths with Mechanics, and Physics (Grade A), STEP papers in Maths and Physics (Grades 1 and 2), and S-Level in Biology (Grade 2). 9 GCSES (4 A*, 3 A, 2 B) including Maths and English Language at A*.
References available on request