Skip to content

Experience

I’m a backend systems engineer with about nine years building APIs, event-driven services and data-heavy platforms in Node.js, TypeScript and AWS, mostly for North American companies on US Eastern hours. In my most recent role, as Software Architect at Effica Health, I architected and built the platform from scratch and also owned what sits under it: the AWS accounts, the Terraform and the Keycloak identity layer. That combination, backend plus the platform under it, is what I’m best at. Before that I spent seven years at 10Pearls, growing from Software Engineer to Principal and leading teams of five to seven.

Effica Health — Software Architect

July 2025 – September 2026Remote, Canada · Team of 7, reporting to the CTO

Effica Health is a Canadian virtual menopause clinic. Its product ran on Salesforce: an Experience Cloud app for patients and an enterprise portal for clinicians, both maintained by a separate Salesforce team. My team's job was to build a custom platform and move features off Salesforce one by one, to cut licensing cost, while Salesforce stayed the system of record.

Everything on our side was built from scratch: the backend, the frontends, the cloud and the identity layer. I led that build, and the standards it was built to were my call: coding guidelines, branching and release strategy, code review.

  • Architected and built the Salesforce integration: OAuth client-credentials, a Redis cache in front of the Core API, account-scoped repositories, and just-in-time user provisioning from Keycloak.
  • Replaced token-wrapping with native Keycloak tokens, Redis-backed sessions across containers and added point-in-time user-context snapshots so background jobs run as the right user. Audit events go to append-only Postgres through SQS and Lambda.
  • Designed a three-realm Keycloak setup — one identity realm and two broker-only realms — so patient and clinician apps get independent sessions; PKCE for browser clients, all in Terraform.
  • Designed, built and owned the AWS estate end to end, evolving it with each release: separate dev, staging and production accounts under AWS Organizations, VPC/IAM, EC2, RDS, ElastiCache, S3, ECS/Fargate, ECR, Lambda, SQS, CloudWatch/SNS, WAF, CloudFront, Secrets Manager, backups, deployment pipelines, and Terraform state in S3 with DynamoDB locking.
  • Built multi-stage Docker images for Keycloak and the backend services.
  • Built the logging and audit path: request-ID middleware and centralized logging across the platform, and audit events to append-only Postgres through SQS and Lambda.
  • Set the backend architecture and conventions for the AI team’s services, which the Salesforce apps called for AI features; reviewed their code and owned their releases and deployments, including Langfuse, custom Lambda images carrying model files, and ECS services.
  • Architected and built the NestJS backend monorepo and a bilingual English/French React dashboard with Keycloak silent SSO, through launch.
  • Node.js
  • TypeScript
  • NestJS
  • Nx
  • PostgreSQL
  • Sqitch
  • Redis
  • Keycloak
  • Docker
  • Terraform
  • GitHub Actions
  • AWS Organizations
  • ECS/Fargate
  • ECR
  • EC2
  • RDS
  • ElastiCache
  • S3
  • VPC / IAM
  • Lambda
  • SQS
  • WAF
  • CloudFront
  • CloudWatch
  • Secrets Manager
  • Salesforce Core API
  • React
  • Tailwind CSS

10Pearls — Software Engineer → Principal Software Engineer

2018 – 2025Software consultancy serving North American clients

Seven years and four grades at 10Pearls, from Software Engineer to Principal. From Senior onward I led teams of five to seven, owning code standards, release and branching strategy, and code review; worked directly with client CTOs and architects; and reported project health to the Director of Technology every two weeks. Client names are withheld under NDA.

While US clients knew me as a senior & lead software engineer, work highlights included

  • Releases & deployments
  • Code review
  • Sprint planning & ceremonies
  • DevOps collaborations
  • 50+ technical interviews
  • 2× Employee of the Month
  • Mentored a Senior → Staff promotion

Principal

Social media platform

Team lead, team of 5

A greenfield public discussion platform (posts, comments, follows, moderation) loaded inside the client's native app and using their existing authentication.

  • Owned the application architecture: a NestJS modular monolith behind a Next.js backend-for-frontend, using the client's existing authentication.
  • Built automated content moderation on Graphile Worker and RabbitMQ, and Elasticsearch search with sync jobs keeping the index consistent with the primary database.
  • Built the admin portal backend and frontend, giving moderators a dashboard to review and act on content.
  • Load-tested with JMeter before release. The feed API was the bottleneck, traced to one unoptimized query; I rewrote the hot paths in raw SQL to meet launch load.

Outcome. Launched and still live; the client is building a second version.

  • NestJS
  • Next.js
  • React
  • TypeScript
  • PostgreSQL
  • Elasticsearch
  • RabbitMQ
  • Graphile Worker
  • JMeter
  • Flyway
  • Docker
  • Tailwind CSS

RV sensor-data platform

Architect and team lead, team of 7

A platform ingesting sensor data from recreational vehicles through AWS IoT Core, raising threshold alerts and serving analytics to end users, OEM administrators and the platform owners.

  • Ran stakeholder discovery and owned the architecture: how end users, OEM administrators and platform owners see the sensor data
  • Designed the data architecture: IoT Core ingestion, database design & model and the SQL schema with Flyway migrations.
  • Handed over the AWS & App architecture as documents and diagrams to incoming architect, and supported the team with code reviews and releases.

Outcome. Built and launched as designed.

  • NestJS
  • Node.js
  • TypeScript
  • ECS/Fargate
  • ECR
  • AWS CodeBuild
  • Docker
  • Docker Compose
  • AWS IoT Core
  • PostgreSQL
  • AWS
  • Flyway
  • React

Payment processing platform

Senior Software Engineer, team of 7

A merchant terminal for invoicing and pay-by-invoice.

  • Integrated TSYS Multipass and Paytrace reporting into a single merchant reporting surface.
  • Built wrapper APIs for third-party merchants, and worked on AgendaJS to support scheduled and triggered background jobs.
  • Built the dashboard APIs and UI, sped up existing APIs by running independent and nested async calls concurrently instead of serially
  • Node.js
  • Express
  • TypeScript
  • EC2
  • Bitbucket Pipelines
  • TSYS Multipass
  • Paytrace
  • AgendaJS
  • React
  • MongoDB
  • Redis

Staff

US multi-state property-listing platform

Team lead, team of 7

A live property-listing platform covering several US states, growing as new MLS feeds were added. I reported to the client's CTO client’s CTO and 10Pearl's Director of Technology, who approved our design docs.

  • Wrote a RETS client from scratch to the RETS 1.7.2 standard, and a RESO MLS integration layer that fetches & syncs property changes within a five-minute buffer.
  • Built map-driven search, where panning and zooming on Google Maps queries MongoDB's geospatial indexes, and PostGIS statistics over geographic areas for the dashboard.
  • Tuned MongoDB search with aggregation pipelines and module-level benchmarks, and introduced data versioning with scheduled migration jobs.
  • Built dashboard APIs and UI, background jobs for business notifications, and supported the platform as new MLS feeds and states were added.
  • Contributed request-ID middleware and centralized logging across the property platform.
  • Node.js
  • Express
  • TypeScript
  • Google Places API
  • Google Maps Platform
  • MongoDB
  • PostgreSQL
  • PostGIS
  • Redis
  • RabbitMQ
  • AWS (EC2, RDS, Secrets Manager, Memcached)
  • Graphile Worker
  • Socket.IO
  • MLS Feeds (RESO, RETS)
  • React (Ant Design)

Realtime video summarization

Senior Software Engineer, team of 3

A three-month proof of concept. I built everything except the AI model.

  • Integrated Google OAuth and the Google Nest camera API so users could grant access to their own camera feed.
  • Pulled the camera’s RTSP stream and chunked it with FFmpeg into S3 for the computer-vision service
  • Built the monitoring UI and APIs, the scheduled jobs that run at the user's chosen time, and the AWS deployment.
  • React & Redux
  • Node.js
  • TypeScript
  • NestJS
  • Google OAuth
  • Google Nest Camera API (RTSP Streams)
  • FFmpeg
  • AWS (EC2, S3)
  • MongoDB
  • AgendaJS
  • Socket.IO

Senior

US education technology platform

Senior → Staff · Three engagements, teams of 5–8

A large education platform modernizing a legacy PHP monolith. Over three engagements from 2019 to 2022, I worked on the serverless migration, module modernization, and a WCAG-focused web app.

  • Migrated features from the PHP monolith to event-driven AWS serverless services, including the yearly data rollover and migration scripts for school data.
  • Added LaunchDarkly feature flags behind a caching store so flag evaluation didn't add to Lambda cold starts.
  • Built micro-frontends that loaded new modules inside the legacy PHP pages through a host component and proxy patterns without disturbing the modules around them, in an Nx monorepo of independently deployed packages.
  • Built the delivery path with Codefresh CI, independently deployable frontend artifacts and backend Docker images; contributed request-ID middleware and centralized logging across the monorepo.
  • Held 100% backend and 95%+ frontend test-coverage gates and delivered WCAG 2.0 AA accessibility, including focus-order fixes in third-party components.
  • TypeScript
  • Node.js
  • Express
  • GraphQL
  • React & Redux
  • AWS Lambda
  • S3
  • EC2
  • AWS CDK
  • PostgreSQL
  • LaunchDarkly
  • Nx
  • Jest
  • Cypress
  • Codefresh

Earlier work

  • Telemedicine platform (team of 10): modernized appointment booking, including a calendar that stays correct across time zones and daylight-saving changes. AngularJS, Express, Socket.IO, MySQL.
  • HR platform: a SharePoint web part in React and Redux, with bundle splitting and tree shaking.
  • Urdu OCR research: a one-month internal prototype training Tesseract on handwritten Urdu.

Independent consulting

2020 – presentIntermittent · Referrals and direct clients

Selected private engagements, taken alongside full-time roles. Mostly early-stage startups and direct clients.

AI agent orchestration platform

Senior Software Engineer · Sole engineer · 2025

An early-stage B2B platform for deploying AI agents, which we called tools. A client picks an agent with predefined prompts, connects their data source and credentials, and deploys it in one click.

  • Provisioned each tool on demand as its own CloudFormation stack: on deploy, a CodeBuild pipeline pulled our CDK repo and spawned that tool’s AWS resources from its configuration, so every tool’s resources were isolated, even across clients running several tools.
  • Defined the platform’s own AWS resources in CDK (API Gateway, Lambda, DynamoDB, Parameter Store, CodeBuild), designed the DynamoDB data model, and built the agent APIs with asynchronous execution and polling.
  • Built the React portal for connecting data sources, managing agents and running them, with Cognito auth and GitHub Actions deployments; Bedrock for inference, prompts kept server-side.

Outcome. Live with two business clients.

  • AWS CDK
  • CloudFormation
  • Bedrock
  • DynamoDB
  • API Gateway
  • Lambda
  • AWS CodeBuild
  • Cognito
  • Node.js
  • React
  • TypeScript

Crypto market dashboard

Fullstack Software Engineer · Sole engineer · 2020 – 2021

A Go backend for a crypto market dashboard: fetch CoinGecko data, cache it, and serve it to the frontend.

  • Built the Go service that fetches CoinGecko data, caches it, and serves it on demand.
  • Added asynchronous refresh and caching to cut external API usage.
  • Added logging middleware, API tests and a GitHub Actions deployment.
  • Go
  • MongoDB
  • CoinGecko API
  • React

CloudKibo — Fullstack Software Engineer

2016 – 2018team of 6

A Messenger marketing platform for e-commerce stores: bulk and sequenced messages, bots, and a dashboard for engagement.

  • Built webhook ingestion through a message queue for Facebook and Messenger events.
  • Wrote a SQL cron service that computed dashboard KPIs and stats.
  • Built React components with real-time notifications over Socket.IO, and integrated Twitter and WordPress webhooks.
  • Node.js
  • Express
  • React & Redux
  • Socket.IO
  • MongoDB
  • PostgreSQL
  • Messenger Platform API
  • WordPress API
  • WhatsApp Business API

How I work

On every project I’ve led, I've written down the rules before the code: coding guidelines, branching and release strategy, how code review works. Then I've held the line on them. I write design documents before building anything non-trivial, and I've had them approved by client CTOs and technical teams.

I use AI coding tools daily (Claude Code, Codex and Copilot, in JetBrains IDEs), and I treat their output the way I treat anyone's: it must be reviewed.

I wrote about the design-doc habit in A Brief Guide to Writing Design Documents.

Toolbox

Backend
Node.js, TypeScript, NestJS, Express, REST, Socket.IO, Nx monorepos, Next.js, Go
Event-driven
SQS, SNS, EventBridge, Lambda, Step Functions, RabbitMQ, Graphile Worker, AgendaJS
Data
PostgreSQL, PostGIS, Aurora, MongoDB, DynamoDB, Redis, Elasticsearch, Flyway, Sqitch
AWS
ECS/Fargate, EC2, ECR, S3, Lambda, API Gateway, RDS, ElastiCache, Secrets Manager, IoT Core, Bedrock, Organizations, VPC, IAM, WAF, CloudFront, CloudWatch
Infrastructure as code
AWS CDK, Terraform, CloudFormation
Identity
Keycloak (multi-realm brokering), OAuth 2.0 / OIDC, PKCE, Amazon Cognito
Frontend
React, Redux, Next.js, TanStack Query (React Query), Tailwind CSS
Testing
Jest, Cypress, Apache JMeter, WCAG 2.0 AA, Enzyme, React Testing Library, Go testing
Software Delivery (CI/CD)
Docker (multi-stage), Docker Compose, Bitbucket Pipelines, GitHub Actions, AWS CodeBuild, Codefresh
Integrations & AI
Salesforce Core API, RETS / RESO MLS feeds, TSYS Multipass, Paytrace, Google Maps Platform, LaunchDarkly, AWS Bedrock, Langfuse

I'm open to new backend roles and contract work. Get in touch.