USA permanent resident
Eligible to work in USA
|2016 – 2019||Freelance software engineer|
Various freelance software engineering contracts in iOS, using Swift and Objective-C, including two iPhone apps built completely from scratch: Unitive's eponymous app, and Food Kit by Diabetes Labs.
Various web contracts, usually using React frontends and Kotlin or Java backends with an ElasticSearch or MySQL database.
Other contracts included DevOps, continuous integration, and infrastructure work with AWS, Docker, and Python.
|2012 – 2015||Founder and chief architect|
Tipbit was a startup based in Seattle and San Francisco. We built an email, calendar, and contacts app for iPhone and iPad, with search, indexing and management services running in the AWS cloud.
I implemented the initial prototype from scratch, designed and architected the complete solution, hired, built and led the engineering team, and joined that team as a software engineer on both client and server software stacks.
We used Erlang, Objective-C, Java, Python, ElasticSearch, OpenNLP, Jenkins, Git, Logstash / Kibana, and lots more besides.
|2005 – 2012||Director, XenServer|
|Director, Cloud Platforms|
I was one of the team of people who built Xen and XenServer at XenSource, both before and after our acquisition by Citrix. I built the XenCenter product and team from scratch. I went on to lead the XenServer App Group, adding ecosystem and partner integration including our relationships with Dell and HP, our SDKs, and our cluster automation software.
I was responsible for developing XenServer’s engineering strategy for cloud software, including supporting OpenStack from its very first days. I built a twenty-person team from scratch in three countries — UK, USA, and India — developing our own OpenStack distribution.
The Xen hypervisor now powers many of the world’s largest clouds, including AWS and Rackspace.
|1998 – 2001||BA (Hons), MA (Cantab)|
|University of Cambridge|
Graduated with first class honors, with a final year slanted towards compiler engineering, type theory, and computer language design.
With Tipbit we placed “people” at the center of the design. Every email and calendar screen puts the people involved at the user’s fingertips, and offers simple jumps to previous conversations, interactions, and search.
Searching in Tipbit uses a combination of on-device database views, server-side full-text indexing hosted in the AWS cloud, and parallel queries with a local reconciliation. This gives sub-second initial response times while still being able to use deeper analysis in the cloud.
Food Kit tracks food intake, calories, and nutritional content, for diabetics or other people with need for such detail.
I built this app from scratch in Swift, and delivered it to the App Store.
The app includes detailed data sync between Health Kit, user entries, and data published by other apps to the Diabetes Labs server. It includes a compile-time import of nutritional data from USDA datasets, generating a SQLite database for use at runtime.
XenCenter is the friendly face of a set of rich, complex, and arcane hypervisor features. Targeted at Windows IT professionals, we exposed technologies rarely seen beyond a Linux command line and re-presented them in a way that IT pros could address.
Since all our features had to scale up to large clusters, we developed the UI, API, and SDKs in parallel, so that anything that could be done manually in the UI could be scripted by the admin in production.
|2002 – 2005||Chief software architect and Director|
RaMedia was a start-up media company founded in the UK to develop a novel approach to memory-reliant gaming.
As the sole technical member of staff I was responsible for every aspect of software design and architecture, documentation, coding, and testing. As one of the company directors I was jointly responsible for all aspects of the business, including strategy and fundraising. We developed with both PCs and mobile telephones as target platforms, and used our key technology to produce a game for foreign-language learning for pre-teens through to adults.
|1997 – 2002||Software architect and team leader|
|One year full time, three part time, one full time|
|FutureTV née Nexus Electronics|
FutureTV developed a scalable, personalized interactive video-on-demand solution for consumer and hotel television systems. I was responsible for the concept and architecture of significant elements of the FutureTV product set, and involved with numerous others, including server-side cluster management, video streaming, client-side OS and rendering engine development, and language design.
I joined FutureTV before entering the University of Cambridge, and stayed with them throughout my degree. In my final year there I managed a team of three working on user interface design and development.