Consulting

I provide consulting services on a wide range of software engineering solutions. I specialise in functional programming languages, backend infrastructure and database engineering.

Please feel free to contact me for a quote, or a discussion about how I can assist your team with your software solutions.


Current clients

  • CentralApp is a Belgian company that develops SaaS solutions for SMEs. They offer a smart website builder, local SEO, and other useful solutions for restaurants, hotels and other small business to expand their customer base.

    By taking advantage of the excellent safety guarantees offered by the Haskell type system, and a bespoke asynchronous API gateway for distributed architectures, the CentralApp engineers have easily scaled their infrastructure to support over 4,000 companies and serve over 1,000,000 API requests per hour.

    They also build and deploy their entire infrastructure using Nix, which provides excellent reliability, reproducible build environments, and atomicity.

    During my time working with CentralApp, some major projects that I’ve led or directly contributed to include:

    • Automating the purchase and transfer of client domains, saving Customer Service a lot of time in the onboarding process.
    • Hunting down and fixing a memory leak in the asynchronous API gateway which was causing random outages.
    • Upgrading the entire codebase from GHC 8.6.5 to 9.6.5.
    • Adding support for WebP images to the CRM, reducing S3 storage requirements by up to 70%.
    • Several major improvements to the CICD pipepline, including automatic deployment to the staging environment; automatic validation of AWS ECS task definitions; deploying Lambdas on AWS using Nix and Docker; and much more efficient caching of Nix build artifacts.
    • Automatic derivation of Opaleye (PostgreSQL) instances using Template Haskell, saving a lot of error-prone boilerplate.
    • Implementing type-safe DNS records, which gave stronger guarantees for client domains.
    • Integrating a new analytics provider into the user interface.
    • Numerous enhancements to the CRM and API.
    • Several integrations with 3rd-party APIs, such as AWS, Google, Meta, Instagram, Pirsch and Partoo.
    All of these projects have been driven by business requirements and customer feedback. I’ve worked directly with the CentralApp frontend designers to plan new features, as well as the Customer Service team in order to prioritise the features and UX improvements that will accelerate growth. In addition to implementing these features I’ve also written extensive test suites for all of them, including unit testing, integration testing, and property-based testing using QuickCheck and HTest. I consider myself to be a very quick learner, so whenever I come across a problem that requires a library or knowledge that I’m not familiar with, I relish the opportunity to improve my skill-set in order to rise to the challenge.


Competencies

As a software engineer my competencies include:

Haskell

  • Proficient in the full range of standard libraries
  • Also experienced working with lens, parsec, QuickCheck, warp and wai, servant, aeson, template haskell, mtl/transformers, optparse-applicative, containers, hspec, postgresql-simple, recusion-schemes, opaleye, and so on

Amazon Web Services

I am experienced in using the following AWS services to deploy large-scale backend solutions.
  • ECS
  • S3
  • CloudWatch
  • Lambda
  • SNS
  • SQS
  • RDS
  • CloudFront

About me

I was born in the UK and attended the University of Oxford, where I studied Mathematics for my bachelor's and Mathematical and Theoretical Physics for my master's degree. After graduating I joined the Space Studies Program at the International Space University in Strasbourg, France.

I then moved to Munich, Germany to start a job working as a contractor at the German Space Agency (DLR). I worked as a Systems Controller, monitoring and maintaining the ground systems that allow research bodies, universities and private companies to communicate with their experiments onboard the Columbus module of the ISS.

In the Spring of 2021 I started working as a scientififc researcher at the Technical University of Munich. I worked on the CiLoCharging project, using agent-based simulation to study the effects of delivery vehicle electrification in logistic fleets. I also conducted my own research into digital privacy, specifically on interdependent privacy and game-theoretic approaches.

Since April 2023 I've been working as a freelance software engineer. Head over to the consulting section for more details. I now live in Brussels, Belgium.

In my free time I like to work on my own software projects. I love exploring new languages, libraries and frameworks, especially ones that change the way I think about programming. One day I would love to design my own programming language or OS. I also enjoy playing piano, reading, watching films and TV, and travelling.

You can download my CV here.