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.
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