The work behind the numbers.

Four stories from six years leading the customer data and integrations platform team at Absorb Software. Each one has the challenge, what I did, and what changed.

7

Engineers led

Senior, intermediate, and specialist developers on a SaaS platform team

4

Hires made

Plus one promotion to Senior and two specialists moved into SRE

2.8×

Faster customer imports

From 3.8 to 10.7 records per second under multi-tenant memory limits

Daily

Deployment cadence

Decoupled a legacy platform so the team could ship daily behind feature flags

7

Building and running the team

Six years of hiring, coaching, reviews, promotions, and delivery

Challenge

The team behind Absorb's customer data and integrations platform needed stable leadership, a clear charter, and engineers who could own production systems that every customer onboarding depended on.

What I did

Managed seven engineers across senior, intermediate, and specialist roles. Ran hiring, onboarding, performance reviews, and career planning. Set delivery expectations with Product, and presented risks and trade-offs to executives in PI planning.

Outcome

Made four hires, promoted one engineer from Intermediate to Senior, and transitioned two infrastructure specialists into the SRE organization as ownership boundaries were clarified. The team earned two Best Team quarterly awards, plus Strategic Direction and Pathfinder recognition.

Resolved

Eliminating recurring production outages

Root cause fixed, automated recovery and health monitoring added

Challenge

Recurring memory depletion in background processing was taking down customer imports and integrations, and each incident meant manual recovery and customer-facing delays.

What I did

Led the root-cause investigation across application code, Hangfire job processing, and infrastructure. Directed fixes for retry and cancellation handling, added automated recovery and health monitoring, and gave Operations clearer indicators of job health.

Outcome

The recurring failure mode was removed rather than patched, and the platform moved from reactive firefighting to monitored, self-recovering background processing.

2.8×

Import performance and scalability

From 3.8 to 10.7 records per second under multi-tenant memory limits

Challenge

Large customer imports were hitting memory and throughput ceilings in a shared multi-tenant environment, slowing onboarding for the biggest accounts.

What I did

Coordinated developers, QA, and SRE to profile CPU, memory, database, and processing bottlenecks. Prioritized immediate stability work, then directed staging and batching changes to the import pipeline.

Outcome

User import processing went from roughly 3.8 to 10.7 records per second, nearly a 3× improvement, without adding infrastructure.

Daily

Daily deployments and incremental modernization

Decoupled a legacy platform so the team could ship daily behind feature flags

Challenge

Tightly coupled legacy components made every release risky and hard to isolate, which kept deployments infrequent and large.

What I did

Identified coupling risks, introduced reusable NuGet wrapper packages, and coordinated feature flags and rollout dependencies with SRE and Operations. Directed the incremental extraction of business functionality behind .NET APIs, with architecture reviews and mentorship keeping the standard consistent.

Outcome

The team moved to daily deployments while keeping the product stable, and migrated five legacy modules behind .NET APIs as part of the modernization.

Let’s build something
meaningful.

I’m looking for an Engineering Manager role where I can grow a team, own delivery, and keep a platform reliable while it changes.

Calgary, Alberta · Remote across Canada