Hi I'm

Gabriel Carpreau

Senior Software Engineer (Backend)

I'm a senior backend software engineer with a special interest in product development and infrastructure based in Manchester, UK. I'm currently working in the backend team at, RotaCloud.

Contact Me



RotaCloud is a staff scheduling SaaS tool that helps small to medium sized businesses schedule and manage their shift-based employees

I currently work on the backend team at RotaCloud as senior software engineer.

RotaCloud is composed of microservices written in Typescript, utilising MySQL and numerous AWS services.

My typical duties include:

  • Writing, deploying and supporting production code that powers public and internal APIs
  • Coaching and supporting team members
  • Writing and presenting design documents, and gaining consensus with the rest of my team and other relevant teams on technical design decisions
  • Working with the product team in discovery to solve customer problems
  • Identifying and resolving technical problems and risks to the business

In this role, I've:

  • Built an access control framework that has shortened development time and greatly reduced the risk of high-impact product defects
  • Developed a tool used during a legacy monolith-to-microservices migration to detect small unintentional changes introduced when rebuilding legacy APIs, which eliminated any chance of bugs arising from the legacy migration
  • Led the conversion from request-response style communication between microservices to an event-driven architecture, which has resolved numerous scaling and coupling problems and has had a large impact on the stability and reliability of the API
  • Designed and built a system to deploy PRs to a test environment on demand, using Kubernetes, EKS and ArgoCD


Leadflo is a CRM for dental practices that helps dentists, nurses, and receptionists convert enquiries into high-value patients by organising and automating patient communications across multiple channels.

When I started working on Leadflo, it was a very rough MVP with mountains of technical debt. It’s now a fully-fledged product with fast development and growth.

My greatest achievement on Leadflo was that I designed and led the implementation of its most ambitious feature, a marketing automation engine, and delivered it way ahead of schedule.

I previously worked on Leadflo as a full time employee, however now I give a few hours of my evenings every week in a consultative capacity in which I lead product development. I'm responsible for the product strategy, roadmap, backlog and feature definition. In this role I've supported 3x growth and achieved profitability.

Leadflo is written in PHP and Typescript using Laravel and React; is built by CircleCI into Docker containers deployed by Terraform; runs on ECS; monitored by Prometheus, Alertmanager, and Grafana; and uses PostgreSQL.

Dental Support Forum

I worked on a dental training and support platform used by thousands of dentists across the world. The platform includes a support forum where dentists can get advice on their patients and cases.

Previously dentists would pay for clinical support cases at the point of submission, but the business wanted to also obtain large corporate clients who would pay for their dentists' cases monthly. The existing payments system was brittle and inflexible and would not easily support this.

I redesigned and reimplemented the new backend payments system, integrating Stripe and Paypal, and oversaw the implementation on the frontend, delivering the project on schedule. I designed the payments system to be easily extendable using the strategy pattern.

To date, my payments system has processed thousands of payments and has been successfully extended numerous times by other developers to support different payment models, such as credits.

The forum is built in Typescript using Express and React; is deployed by Ansible onto EC2 instances; and uses MongoDB.


Monzo-YNAB is a simple utility I built for myself that registers and receives webhooks from my Monzo bank account, and converts and records them within YNAB, a budgeting app.

It’s been successfully running for over a year, has processed hundreds of transactions, and has had no bugs.

Monzo-YNAB is built in Go and runs on Kubernetes.

View on GitHub


CQRS is a lightweight, extendable backend framework built in Go, and centered around a command, event and query bus.

CQRS was a Go framework I started with the intention of being able to start a new backend project quickly without having to compromise on extendability, maintainability, or scalability. It consists of a library of packages for authentication, queued commands and events, background jobs, REST, HTML and GraphQL adapters, and more.

View on GitHub

Skills & Technologies


Go, Typescript, PHP, Python, HTML/JSX, CSS, SQL


NestJS, NodeJS, React, Laravel, Redux, Styled Components, FastAPI, Flask, REST, GraphQL


PostgreSQL, MySQL, Redis, DynamoDB


CircleCI, GitHub Actions, Docker, Terraform, Ansible, Kubernetes, AWS: EventBridge, EC2, ECS, EKS, S3, DynamoDB, RDS, ElastiCache, CloudWatch, IAM, Redshift


Linux, Git, Domain-Driven Design, CQRS, SOLID Principles, Test-Driven Development, Agile, UX & UI Design (somewhat), Microservices