Software thatHolds Up
Design through delivery — responsive PWAs to enterprise business systems, built by senior engineers who have run them in production.
Product & Platform Design
UX, prototypes, design systems
Custom Application Development
PWA, mobile, enterprise
AI Engineering
in your product and in your SDLC
Cloud & SDLC Advisory
selection, deployment, cost
- Energy & Commodities
- Aviation & Transport
- Insurance & Payments
Waterloo BMath, 1997 · Waterloo MMath, Symbolic Computation, 1998 · Concordia MEng, Software Engineering, 2016 · ThoughtWorks Architect · CFA Level 2 candidate · SR&ED Approved engineering work
[ 02 / CASE STUDIES ]
Selected case studies.
A Canadian integrated energy producer · 2006–2016
A decade of crude blending, scheduling, and settlement on one platform.
- expression evaluations per second
- 250K/sec
- engagement
- 10 yrs
- SR&ED approved
- SR&ED
Blending economics, contractual and physical balancing, tariff and equalization settlement, and flow scheduling all had to run from one model, integrated with SAP across the enterprise, and fast enough to iterate to convergence inside an interactive planning session.
- c#
- .net
- wcf
- asp.net mvc
- winforms
- oracle
- ibatis.net
- msil
- microsoft solver foundation
- quickgraph
- sap xi
- teamcity
- nunit
An on-demand insurance provider · 2016–2021
Usage-based insurance built on real-time vehicle telemetry.
- engagement
- 5 yrs
- countries
- 3
- billing model
- Event-driven
On-demand insurance — purchase, claims, billing, and incident management — priced off live vehicle activity, delivered by a team spread across three countries.
- .net
- react
- typescript
- aws lambda
- dynamodb
- sqs
- sns
Codebasis · 2024–present
A real-time multiplayer PWA in production, with the cost model published.
- frames measured
- 172,681
- concurrent games modelled
- 10→1,000
- modelled monthly cost
- $85→$1,150
A four-player real-time game with a 3D board had to work on a phone and a desktop, hold state under concurrency, support bots, and stay cheap enough to run.
- asp.net core
- signalr
- postgresql
- react
- three.js
- rtk query
- onnx
- stripe
- ecs fargate
- github actions
[ 03 / SCALE ]
From a weekend PWA to a decade-long enterprise platform.
The same practice, the same rigor, plotted across five real engagements — from a four-player web app to a national settlement system integrated with SAP.
MahjongSpot
4 players · 1 service
RIPER
3 surfaces · 2 tokens
Telematics Insurance
3 countries · 5 yrs
Airline Booking
2 channels · mainframe
Crude Blending
10 yrs · SAP-integrated
[ 04 / ARCHITECTURE ]
Two ways to build the same app
Every system accretes complexity as it grows. What differs is whether that complexity has anywhere to go.
Ball of mud
Controllers reach straight into persistence. Business rules live wherever they were convenient to write, spread across three layers at once.
Ports & adapters
A domain core in brass, with ports on its edges and adapters outside: HTTP, persistence, message bus, third-party feed.
The regulator changes the tariff formula.
| Dimension | Ball of mud | Ports & adapters |
|---|---|---|
| Files touched | Wherever the formula was copied — nobody can say how many until they grep | One adapter. The domain core doesn't move. |
| How you test it | End to end, by hand, because no seam exists to isolate the change | A unit test against the port, isolated from every adapter around it |
| Blast radius | Unknown until something breaks — the formula, the persistence, and the response share code | Contained to the one adapter behind the changed port |
| Can it scale out | Only by accident — state and logic sit wherever someone last needed them | By design — the core carries no adapter-specific state |
[ 05 / AI ]
AI with guardrails
An LLM will happily generate a ball of mud ten times faster. The bottleneck was never typing.
AI writes whatever your repo teaches it to write.
01
Architecture stated in-repo, at every boundary
Every boundary the system crosses is documented where a model actually reads it — in the codebase, not a wiki it was never trained on.
02
Domain model first
A ubiquitous language, settled before code, so generated names for the same concept don't drift between the endpoint, the service, and the table.
03
Ports as contracts
Interfaces and generated clients turn a seam into something a build can fail on, not just something a reviewer might notice.
04
Tests as the gate
Unit, integration, and e2e tests gate the merge. On our own mahjong-api, a recent feature shipped two new test fixtures in the same commit as the endpoint (
034dd81cd) — and across the whole repository, close to a quarter of all files are tests.05
Dependency rules enforced by tooling
Architecture tests and lint rules fail the build before a boundary violation reaches a human reviewer.
06
Small, reviewable units
Files sized to fit in a reviewer's head — and in a model's context window — so a generated change can be read before it merges.
07
Spec → plan → implement
Each stage ends at a review checkpoint, so a generated plan is approved before it becomes generated code.
[ 06 / SCALING ]
Holds up means scales out
Compute is never the bottleneck.
Every limit measured here was a boundary problem, not a hardware one: single-process state design, a write pattern that didn't fan out, and unbounded storage for old frames. More CPU would not have moved any of them.
| Concurrent games | Connections | Monthly cost |
|---|---|---|
| 10 | 40 | ~$85 |
| 100 | 400 | $150–200 |
| 1,000 | 4,000 | ~$1,000–1,150 |
[ 07 / CAPABILITIES ]
Every discipline a system needs
Product & Platform Design
Design systems, prototypes, and the research behind them, carried through to production-ready components.
Web & PWA Development
Responsive, installable web applications built for offline resilience and sub-second interactions.
Mobile Applications
Native and cross-platform apps engineered for App Store review, device fragmentation, and field conditions.
Enterprise Business Applications
Line-of-business systems that replace spreadsheets and legacy tools without disrupting daily operations.
Data Integration & EAI
Pipelines and APIs that reconcile data across ERPs, SCADA, and third-party systems in near real time.
AI Engineering
Production machine learning and LLM systems designed for accuracy, latency, and cost under real load.
Cloud Architecture & Deployment
Infrastructure, deployment pipelines, and cost engineering across AWS, Azure, and GCP.
SDLC & Delivery Advisory
Delivery audits, team structure, and process design for organizations scaling past their first few engineers.
[ 08 / ENGAGEMENTS ]
Four ways to work together
Advisory & Architecture
- Best when
- When you need an outside opinion before committing budget or headcount.
- You bring
- An existing team, a decision to make, and a deadline.
- We bring
- Architecture review, technology selection, and a written recommendation you can act on.
- Typical shape
- 1–3 weeks
Architecture & SDLC Assessment — fixed scope, two weeks, fixed price.
See the proofEmbedded Consultant
- Best when
- When your team has the roadmap but needs a senior hand to unblock delivery.
- You bring
- A team, a backlog, and a gap in seniority or specialist skill.
- We bring
- One senior engineer embedded in your team, on your tools, reporting to your lead.
- Typical shape
- 3+ months
Senior Squad
- Best when
- When a project needs to move faster than your current team can staff.
- You bring
- A defined scope and a product owner.
- We bring
- A small senior team, design through delivery, that ships as a unit.
- Typical shape
- 2–6 months
End-to-End Delivery
- Best when
- When you have an idea, not yet a team, and need it built and shipped.
- You bring
- The vision, the budget, and the market.
- We bring
- Full delivery: design, build, deploy, and the first release to production.
- Typical shape
- 3–12 months
[ 09 / THE PRACTICE ]
Founder-led, network-backed
Codebasis is founder-led. Twenty-seven years of software engineering sit behind every engagement, starting with a BMath and MMath from the University of Waterloo and an MEng from Concordia, a stint as a ThoughtWorks architect, and a decade embedded in energy-sector systems — crude blending, pipeline allocation, tariff settlement — work that stays live for years and has to be right the first time.
That rigor continues past the codebase: a CFA Level 2 candidacy and a body of SR&ED-approved engineering work mean the numbers a client cares about — cost, risk, return — get the same scrutiny as the architecture.
There is no bench. Engagements are staffed from a curated network of senior engineers, assembled to the shape of the work in front of us — never padded with juniors learning on a client's clock, and never drawn from a standing team sitting idle between projects. You are hired by, and answer to, the person who founded the practice, on every engagement, regardless of its size.
Waterloo
BMath, 1997
Waterloo
MMath, Symbolic Computation, 1998
Concordia
MEng, Software Engineering, 2016
ThoughtWorks
Architect
CFA
Level 2 candidate
SR&ED
Approved engineering work
[ 10 / CONTACT ]
Let's talk about what you're building
Every engagement starts as a conversation about the system in front of you — its constraints, its history, and what has to be true a year from now. Book a consultation, or write in directly.