Skip to content
A Bekkour
Quebec, Canada · Remote or relocation · Available now

Al Mokhtar Bekkour

Senior Rails & Go engineer

I build and scale multi-tenant SaaS.

Seven years shipping production SaaS and fintech in Rails, plus Go for the performance-critical parts. Right now I own the backend — billing, scheduling, document generation — for a multi-tenant platform serving 1,000+ contractors, and the AWS it runs on.

7+
years, senior
40%
faster Postgres queries
1,000+
tenants on one platform
Thousands of jobs a month
constat.almokhtar.dev
Constat dashboard with the in-browser screen recorder
In progress Constat

/ work

Work

Side projects
B2B SaaS In progress

Constat

A B2B bug-capture tool: one link records a customer's screen, console and network so support can replay the exact repro instead of asking them to explain it. A browser extension and TypeScript recorder up front, a Rails 8 backend, and a Go service streaming the uploads over WebSockets.

Rails 8GoHotwireWebSockets
Distributed systems In progress

Railyard

A one-click deploy platform for Rails apps on AWS — a Rails orchestrator driving a fleet of Go agents over gRPC. Per-server routing, Docker builds, deploy logs streaming live.

RailsGogRPCDocker
Analytics infra

Tally

A self-hosted product-analytics platform — event tracking, funnels, retention, anomaly detection and a live dashboard, with zero-dependency SDKs for Ruby, JavaScript, Python and Node. Rails 8, PostgreSQL, Solid Queue, Hotwire.

Rails 8PostgreSQLHotwire
Construction SaaS

Material Estimations

Roofing and construction estimation — mark measurements up on a blueprint canvas, roll costs with waste, labour and Canadian GST/QST, export print-ready reports. My exact industry at C-CUBE, built solo. Vue 3, TypeScript, Pinia.

Vue 3TypeScriptVite
iOS · Web iOS live · web in progress

Recall

An offline-first audiobook study tool, shipped solo to the App Store. Highlight a passage mid-playback, note against it, and review a whole book from one library — with real M4B chapter parsing and everything kept on-device. No accounts, no servers; localized into 10 languages. A web version is now in the works.

SwiftSwiftUIon-device

/ experience

Experience

7+ years, 5 roles
2021 — June 2026

C-CUBE

Senior Software Engineer

Lead engineer on a multi-tenant SaaS for 1,000+ roofing contractors — I own the backend for billing, scheduling and document generation. Cut median query time 40% with indexing and query refactoring, built the Sidekiq + AWS SQS jobs running thousands of PDF generations, email syncs and billing events a month, and brought Go in for the CLI tooling that handles tenant data ops, backfills and migrations. I own the AWS side (EC2/RDS/S3), the CI/CD, and the Prometheus/Grafana stack.

RailsGoPostgreSQLAWS
2020 — 2021

Rounded

Senior Software Engineer

Bookkeeping and tax-compliance features for a fintech SaaS serving 10,000+ Australian freelancers. Integrated FreshBooks and Stripe for real-time transaction sync under strict financial-accuracy requirements, and automated invoicing and tax calculation — cutting users' manual bookkeeping by an estimated 60%.

RailsReactStripe
2019 — 2020

HiFive Group

Senior Software Engineer

Built ProCRM from zero — a CRM for multinational call-center operations across Tangier and London. Designed a PostgreSQL schema for millions of customer records under heavy write load, and shipped the REST APIs and real-time dashboards management used for cross-office KPIs.

RailsVuePostgreSQL
2018 — 2019

AgriVillage

Software Engineer

Marketplace features for an agritourism platform across France — booking flows, Stripe payments, listing management. Tuned queries and caching to keep response times down under load.

RailsNuxtStripe
2017 — 2018

Com en Scène

Software Engineer

Shipped 15+ client sites and kept production CMS deployments running for a varied client portfolio. Where I learned to hit someone else's deadline.

PHPSymfonyDrupal

App Academy (full-stack web) · OFPPT (computer science)

/ stack

Stack

Backend
Ruby on RailsGoSidekiqRESTGraphQL
Data
PostgreSQL — tuning, indexing, multi-tenantRedisMySQL
Cloud & DevOps
AWS — EC2RDSS3SQSLambdaDockerKubernetesGitHub Actions
Observability
PrometheusGrafanaLokiOpenTelemetry
Payments & integrations
StripeQuickBooksChargebeeFreshBooksNylasIntercom
Frontend
ReactEmberVueNuxtHotwire

/ How I work

Most outages I've dealt with weren't interesting — a missing index, or a webhook that ran twice on a retry. I build for both before they happen.

/ How I think about it

Boring on purpose

I'd rather ship something boring that works than something clever I have to babysit. New tools have to earn their place — I've maintained enough of other people's excitement.

Legacy code isn't the enemy. It's running the business, and it usually works for reasons that aren't obvious from reading it once. I read it before I change it, and I change as little as I can get away with.

The goal is a system the next person can understand without me in the room.

Fewer moving parts than the problem seems to need.

/ Things that broke

What broke, what I changed

A partner sync ran the same event twice.

On a retry, the financial integration replayed a webhook — the kind of thing that quietly throws off reconciliation until the numbers stop matching.

FixIdempotency keys, replay-safe handlers, reconciliation checks. Now an outage just delays the sync instead of corrupting data.

Queries fine at a few tenants crawled across a thousand.

Wrong indexes, and query shapes whose real cost only showed once every tenant's data sat behind the filter.

FixReworked the indexes and the queries — about 40% off median query time. Not clever, just necessary.

Backfills ran as Rake scripts and didn't scale.

Tenant data ops and migrations were one-off Rake scripts — fine on a laptop, painful on production-sized data.

FixMoved them into Go CLI tooling. Runtime on the big batch jobs dropped enough that we stopped scheduling the business around them.

/ Approach

Owning it end to end — schema to dashboards

I'm comfortable owning a feature from the database it lives in to the AWS it runs on. It usually goes in three passes.

01

Schema and queries first

Design the Postgres for the access pattern and the multi-tenant filter, and index for it before it's a problem. That's where the 40% query win at C-CUBE came from — not cleverness, just shaping the data for how it's actually read.

02

Jobs and integrations

The async work goes on Sidekiq + SQS — thousands of PDF generations, syncs and billing events a month. Financial integrations get built idempotent and reconciled from the start, so a retry or a partner outage never corrupts the numbers.

03

Infra and the eyes on it

It runs on AWS I own — EC2, RDS, S3 — shipped through GitHub Actions, watched through Prometheus and Grafana. So when it moves, someone can actually see it.

Schema to dashboards — one person who can own the whole column.

/ Case studies

How I think it through

Built for myself