I'm a Software Engineer with an eclectic background. I've worked for the Prison Service (UK), done application and security architecture, security technology research, been trained in moral, political and natural philosophy and even acquired a USPA skydiving license along the way. I've lived on two continents and in four countries. All of this contributes to my unique perspective on software engineering. I have over 20 years' experience in a range of technology roles, and am always keen to work with new tools. I am a programming language nerd as time allows, but I'm also happy in the infrastructure, automating deployments or doing performance analysis. I enjoy working in small tight-knit teams and alone. I favour development projects which use lightweight processes, continuous integration and delivery for fun, profit and risk mitigation.
I am authorized to work in Canada, Germany and the UK. I am not currently authorized to work in the US, but have been in the past. I have been working remotely for over 15 years, as an employee and a freelancer for USian, Canadian and German clients.
Due to health issues I have been out of action since mid-2020. I am ideally looking for project based contracts in service of socially and politically agreeable goals, such as putting carbon into the ground or billionnaires on Mars, or any other planet.
Eventually, once my kids have finished university, I would like to retire into the life of a subsistence hacker, working for physicists, microbiologists and/or climatologists.
Skills & Technologies
I have extensive experience specializing in UNIX and UNIX-like operating systems, many Linux distributions including cloud favourites such as Ubuntu, Amazon Linux and CentOS. I currently use Fedora as my desktop, though Arch is my more natural home. I also have extensive experience with Solaris unsurprisingly, and am familiar with MacOS and OpenBSD.
I have a lot of DevOps experience, managing production Solaris systems using Puppet, and more recently managing AWS deployments using Terraform and Pulumi. I have worked with Kubernetes and other container solutions, including "plain" Docker using dokku, AWS ECS and other managed solutions. For development I use podman and buildah.
I've designed and built application architectures involving many different kinds of connective tissue, including Kafka, Redis, Amazon Kinesis, and SQS. I've worked with various databases, including MySQL, PostgreSQL, MongoDB, DynamoDB, and Cassandra.
I much prefer lightweight development processes, very small teams, and programming practices with short feedback cycles, including REPL based development, continuous testing or test driven design, depending on the language and context. I also prefer continuous integration and delivery. I am not religious about any particular methodology; I have found that different approaches serve different goals, technologies, tools and cultures. Except Emacs, which is a universal invariant.
Finally, my communication skills are decent; I have made numerous presentations as a part of my work, and have presented and facilitated at software conferences (though I have no interest in doing more of this!). In previous roles I have provided ad hoc, formal and informal training to colleagues and customers. I've also trained non-technical end-users, and mentored novice web developers.
MSc, Information Technology (Distinction)Kingston University, Kingston-upon-Thames, UK 1996 - 1997
BA with Honors, Modern Arts (2:1)Kingston University, Kingston-upon-Thames, UK 1989 - 1992
Senior Engineer, Xapix Software GmbH - 2020-2021
I moved to Berlin in 2020, where I joined Xapix as the third member of the backend team. Xapix is an integration and orchestration platform, bringing together data from heterogeneous sources, (HTTP APIs and event sources). The runtime was written in Clojure and made heavy use of Kafka.
Affiliate, The Data Guild - 2017-2020
The Data Guild is a hothouse for socially responsible data science projects.
Senior Engineer, Motiva, 2017-2020
Motiva is a communication and relationship management platform, with ML-driven message and send time tuning. I worked on the Clojure backend components improving reliability and scalability on the first generation product, and designed and built the backend components of the newer standalone CX product.
Senior Engineer, AGL Project, Summer 2017
I joined this project, a peer-to-peer marketplace for solar energy trading, when it was already underway, tasked with improving the development to deployment workflow, and stabilizing the production environment. I implemented Terraform, so that deployment environments could be spun up on demand (including VPC, ECS, ELK, scheduling, metrics collection and event alerting components), introduced continuous deployment to ECS, and wrote a bunch of tests to make that less terrifying.
Contract Engineer, Skalera - Part time, Feb 2018-August 2018
Built an anomaly detection pipeline using DynaTrace, AWS Kinesis Analytics and InfluxDB.
Staff Engineer, Appcanary - Winter and Spring 2017
Appcanary was a security product created by friends in Toronto. It aggregated many sources of security advisories and notified users when monitored systems were impacted. It was written in Ruby on Rails and Go. In 2018 it was acquired by Github.
Senior Engineer, CircleCI - 2014-2016
Joined CircleCI in September 2014 as its first resident Canadian employee. I worked on code throughout the product, which is written mostly in Clojure and (back then) ClojureScript and deployed to AWS. CircleCI evolved quickly over the time I was there, both technically and organizationally. I helped grow CircleCI in Canada, hiring local engineers and bootstrapping a Toronto office.
Teaching Assistant and Mentor, Lighthouse Labs - 2016
Senior Tools & Automation Engineer, DevOps, Turn Inc - 2013-2014
Focused on development projects in support of technical operations. Implemented time series database service using KairosDB, a Cassandra application. Lots of puppet, linux software packaging, small NodeJS tools for integration.
Senior Software Engineer, Valassis Canada - 2012-2013
Technical Lead on the Circle Street project, a retailer-oriented ad platform. We used Heroku, Rails, NodeJS, MongoDB. I have since learned not to use MongoDB.
Software Engineer, Sun Microsystems/Oracle Canada - 1997-2012
I worked in many roles during my time at Sun/Oracle. Highlights include:
- Software Engineer on Project Kenai (2009-2012)
Kenai was a software collaboration platform, combining features such as SCM, issue tracking, forums, mailing lists, IM and wikis. documentation management (wiki). This was both my first Ruby on Rails job and my first DevOps job.
- Java Programmer on the OMalley project, aka Sun Software Library (2007-2009)
- Network Security Engineer, SunCERT (2004-2007)
Member of SunCERT, Sun IT's Computer Emergency Response Team. SunCERT provided a computer security incident and advisory coordination service. In this role I was a co-author of Sun's Solaris Security Certification exam.
- Security Technologist, Technology Office (2002-2003)
As an individual contributor in a team of researchers in Sun IT's Technology Office, I was responsible for security-related projects.
- Architect, Sun IT
Member of a team of four IT architects charged with creating the architecture for Sun's then fledgeling Enterprise Directory Service. Various research projects setting product and technology direction for Sun IT.