Co-founder and Technical director2016 - PRESENTEos Analytics/Eos HealthCheck
Technologies: Amazon Web Services (AWS), CouchDB, MongoDB, Node.js, AWS, Serverless, iOS, React Native
- Created an app, back-end, and dashboard allowing doctors to have their patients complete various health checks much more quickly and without paper forms.
- Built a serverless HTTP API over MongoDB which is fully compatible with CouchDB's replication API and algorithm, so that a MongoDB backend can synchronize with PouchDB clients or other CouchDB servers while utilizing API Gateway's flexible power for authentication and traffic management.
- Created integrations between our back-end and various data providers (weather, census data, electoral records) to provide a unified REST API for information about a local area.
- Responsible for designing and building data security policies and systems both technically and legally, in the particularly sensitive medical domain.
- Worked closely with medical professionals and administrators to design efficient processes and clear interfaces.
Principle/Lead Applications Developer2015 - 2016Elektron Technology Ltd
Technologies: Amazon Web Services (AWS), Embedded C++, AWS, AngularJS, Android, MongoDB, StrongLoop, Node.js
- Recruited a team of ten senior engineers as part of a rapid company expansion.
- Served as the team lead and line manager, reporting to head of software, the CTO, and business stakeholders.
- Contributed to the creation of an IoT back-end using NodeJS, MongoDB, and AWS, supporting mobile and embedded clients in the food safety sector.
- Helped design the Bluetooth interface, handshake protocol, and security measures in communication between Android handsets and bespoke sensor hardware. Wrote the abstraction layer for Android devices and for a separate test harness.
- Significantly refactored an existing Android app to reduce the application code by 30% while maintaining functionality, increasing performance and testability.
- Designed and installed a continuous delivery pipeline for the software team, including a bespoke Android update delivery system.
- Introduced an Agile development methodology.
Development Team Lead, Management Information Services2012 - 2015University of Cambridge
Technologies: Microservices, CQRS, Joomla, Drupal, PostgreSQL, MariaDB, Apache Tomcat, Apache, Ext JS, Grails, Symfony 2, PHP, Groovy, Java
- Created a web app using Java/Groovy, Grails and PostgreSQL to manage inventory of human tissue, to meet new legal requirements.
- Joined and subsequently led a team developing the enrolment and payment system for the university's Institute of Continuing Education.
- Seamlessly integrated Symfony2 app components into a pre-existing Joomla website.
- Built enrolment and payment system using service-oriented architecture, with components communicating using REST APIs and job queues.
- Liaised with client stakeholders and led a small development team using an agile methodology.
Web Applications Developer2009 - 2012Trinity College, Cambridge University
Technologies: Apache, Windows Server, Microsoft SQL Server, Ext JS, PHP
- Built a platform to host modular web apps performing various functions for staff and students.
- Introduced REST APIs and SPA-style modules in ExtJS to improve responsiveness and implement feature-rich UI components, such as editable data tabes.
- Redesigned the central database of staff, students and alumni to be built directly from SQL views, rather than batch update jobs or manual input.
- Devised and built a new system for immediate verification and registration of college guests onto the academic wifi network, using a web app calling firewall APIs for IP allocation. This replaced a paper application form and manual process.
- Transitioned a shared hosting setup for college fellow and society pages to a new vhost-based setup, segregating the filesystem and hosting options for security and allowing more features to be enabled.