Skip to content
Led by Salim Bakri · Principal & AI Solution Architect

Senior engineering for teams building with software and AI.

Bakri Consulting is a Canadian software consultancy led by Salim Bakri, specializing in AI architecture, cloud-native systems and full-stack delivery, backed by a network of senior engineers.

  • Based in the Greater Toronto Area
  • Working across North America
Web · Mobileyour productAuthOAuth2 · JWTAPIserverless · AWSStreamingSSE · WebSocketToolsMCP serversOrchestrationagents · promptsModelsAnthropic · OpenAIVector storeretrieval · RAGGraph · SQLyour dataObservabilityevals · logs
Typical AI-enabled architecture Bakri Consulting designs and builds.
A decade
building production software
Claude Certified Architect
Anthropic
M.Eng.
Software Systems Engineering
Regulated sectors
banking · identity · health-tech
  • TypeScript
  • Node.js
  • React / React Native
  • AWS Lambda · CDK
  • PostgreSQL
  • LangChain
  • MCP
  • Anthropic & OpenAI APIs

Services

Four ways to put senior engineering to work.

From the first architecture sketch to production hardening, hands-on and accountable.

AI solution architecture & LLM integration

Turn LLM prototypes into reliable, secure products, from first architecture to production hardening.

  • LLM apps, agents and MCP servers with provider-agnostic orchestration
  • RAG and retrieval pipelines on vector and graph stores
  • Streaming UX and structured-output reliability (retries, recovery, fallbacks)

Cloud & serverless architecture on AWS

Systems that scale with demand, stay observable and keep your cloud bill honest.

  • Serverless and event-driven design with AWS Lambda and CDK
  • Real-time systems using SSE and WebSockets
  • CI/CD and deployment-pipeline optimization

Full-stack product engineering

Hands-on delivery from MVP to production across web, mobile and desktop.

  • TypeScript end to end: Node.js (Fastify, Express), React, React Native, Angular, Electron
  • Secure authentication and APIs (OAuth2, JWT, rate limiting)
  • PostgreSQL and data modelling that survives growth

Technical advisory & fractional CTO

Senior judgment on demand: architecture reviews, due diligence and engineering leadership.

  • Architecture and code reviews with a prioritized, actionable report
  • Technical debt reduction, test strategy and quality standards
  • Mentoring, hiring support and engineering leadership

Not sure which one fits?

Most engagements start as a conversation. Tell me what you’re trying to achieve and we’ll shape the right approach together.

Book a discovery call

Approach

Engagements shaped around your stage, not a template.

Pick the model that fits today and change it as your needs evolve.

1–2 weeks

Discovery Sprint

Turn an idea or a problem into a clear architecture, risk list and roadmap, before you commit to a build.

Defined deliverables

Fixed-scope Project

A clear scope, timeline and outcome for a well-understood piece of work, from an AI feature to a new service.

Ongoing

Embedded Engineer

A senior engineer inside your team on a retainer basis, shipping alongside you and raising the bar for everyone.

On demand

Advisory

Architecture reviews, technical due diligence, mentoring and fractional-CTO guidance when you need judgment, not headcount.

  1. 01

    Discover

    We align on goals, constraints and what “done” looks like.

  2. 02

    Design

    Architecture, trade-offs and a plan you can challenge.

  3. 03

    Deliver

    Iterative builds with working software and honest status.

  4. 04

    Handover

    Docs, tests and knowledge transfer so you own the result.

Selected work

Problems solved, in plain terms.

Client details are confidential, so engagements are anonymized. Products and projects I built myself are shown as-is.

Own product · AI engineering

Breadthwise, an AI-powered learning platform

A mobile learning app for senior engineers who want broad, adaptive coverage of topics outside their day-to-day stack. Designed, built and shipped end to end (currently in beta).

The problem

Adaptive quizzes and topic generation depend on LLM output, which is slow to arrive and sometimes malformed, a poor fit for a mobile experience that needs to feel instant.

Read the approach and results

Approach

  • Architected a provider-agnostic LLM orchestration layer with centralized prompt engineering, so models can be swapped without touching product code.
  • Streamed results to the app over Server-Sent Events so users see content progressively rather than waiting for a full response.
  • Added resilient partial-JSON recovery for malformed or truncated model output, plus AI-driven topic linking and entity resolution.
  • Hardened the API with OAuth2, JWT, rate limiting and secure cookies.

Outcome

  • Real-time adaptive quiz and topic generation with progressive, low-latency delivery on mobile.
  • Production-grade AI reliability patterns that carry over to client projects.
  • React Native
  • TypeScript
  • Fastify
  • PostgreSQL
  • SSE
  • LLM APIs

Own project · AI engineering

Document intelligence over the Model Context Protocol

A production-grade MCP server that gives any compatible LLM client reliable access to a private document archive in many formats.

The problem

Teams want LLMs to answer from their own PDFs, Word files, spreadsheets and JSON, without locking into one vendor or stuffing everything into a prompt.

Read the approach and results

Approach

  • Built a provider-agnostic MCP server with stdio and SSE transports, so the same retrieval layer serves different clients.
  • Engineered the ingestion pipeline: format-aware parsing, recursive chunking, 384-dimension embeddings and a LanceDB vector store, with real-time monitoring to keep the index fresh.
  • Added intent-based retrieval that classifies each query and picks the right retrieval strategy, so relevant context is surfaced with high precision.

Outcome

  • One retrieval service usable across PDF, DOCX, CSV and JSON content and across LLM providers.
  • Low-latency context augmentation that stays current as documents change.
  • TypeScript
  • Node.js
  • MCP
  • LangChain
  • LanceDB
  • HuggingFace embeddings
  • OpenAI / Anthropic

Client engagement · Identity & security (anonymized)

A modular identity-capture platform for government agencies

Software for public identity and security programs serving Canadian and US government agencies, delivered as a cross-platform desktop application.

The problem

Each new product variant meant re-engineering workflows and hardware integrations from scratch, slowing delivery and multiplying defects.

Read the approach and results

Approach

  • Designed a cross-platform desktop application with Electron, Angular and Node.js.
  • Made workflows configuration-driven using XML/JSON definitions and an XState state machine, so new variants are composed rather than coded.
  • Used a micro-frontend architecture with reusable, framework-agnostic TypeScript components shared across products.
  • Integrated biometric hardware to capture fingerprints, ID cards and signatures digitally.

Outcome

  • Future product development time reduced by roughly 75%.
  • A reusable component and workflow foundation shared across multiple products.
  • Electron
  • Angular
  • Node.js
  • TypeScript
  • XState

Client engagement · Health technology (anonymized)

Security and performance overhaul of a health-tech web app

A customer-facing web application and SDK integrating with mobile, cloud, QA and DevOps teams, including use on low-end devices.

The problem

An exposed encryption key, accumulated vulnerable dependencies, a heavy web bundle and slow deployments were putting security, user experience and release speed at risk.

Read the approach and results

Approach

  • Led the security work: implemented end-to-end encryption, closed the key exposure and patched dependencies.
  • Cut the web app's bundle size and tuned build and deployment pipelines.
  • Improved support for low-end devices through deeper SDK integration.
  • Designed a dynamic configuration system so common changes no longer needed code releases or support tickets.

Outcome

  • Known vulnerabilities (CVEs) reduced to zero.
  • Web bundle size reduced by 55% and deployment time by 30%.
  • Lower support workload and faster, safer releases through dynamic configuration.
  • TypeScript
  • Web
  • SDK integration
  • CI/CD
  • Cloud

From the lab

More experiments in applied AI engineering.

  • LLM knowledge-graph pipeline (Neo4j)
  • AWS Lambda advisory agent (Copilot custom agents + CDK)
See GitHub

Facing a similar problem?

Tell me about it. A short conversation is often enough to know whether and how I can help.

Salim Bakri, Principal & AI Solution Architect, Bakri Consulting

Salim Bakri

Principal & AI Solution Architect

About

Hi, I’m Salim.

I’m a senior software engineer and AI solution architect based in the Greater Toronto Area. For a decade I’ve built software for banking, identity and security, health technology and the public sector, as an engineer, a technical lead and a mentor.

These days I help teams design and ship AI-enabled, cloud-native products: LLM integrations that hold up in production, serverless systems that scale, and codebases a team can actually maintain. I care about clear architecture, honest trade-offs and leaving your team stronger than I found it.

Every engagement is led and delivered hands-on by me. When a project calls for more hands, I bring in trusted senior engineers from my network, agreed with you up front.

  • Claude Certified Architect, Foundations (Anthropic)
  • M.Eng. Software Systems Engineering, University of Regina
  • B.Sc. Computer Information Systems, University of Jordan
  • Technical lead and mentor across banking, identity & security, health-tech and the public sector

FAQ

Questions teams usually ask.

Something missing? Send a note and I’ll answer it directly.

What kinds of engagements do you take on?

Most work falls into four shapes: a short discovery sprint to scope and de-risk an idea, a fixed-scope project with clear deliverables, an embedded senior engineer or retainer alongside your team, or ongoing advisory (architecture reviews, technical due diligence, mentoring). If you're not sure which fits, book a call and we'll work it out together.

How quickly can you start?

I work with a small number of clients at a time so each gets real senior attention, which means lead times vary. The fastest way to find out is a 30-minute discovery call: you'll leave knowing whether the timing and fit work, even if we don't proceed.

Where are you based, and how do you work with remote teams?

I'm based in the Greater Toronto Area and work in Eastern Time, which overlaps comfortably with teams across Canada and the US. Engagements are remote-first; on-site visits within the GTA can be arranged when they add value.

Who actually does the work?

I do. Every engagement is led and delivered hands-on by me. For larger or time-boxed projects I bring in trusted senior engineers from my network, scoped and agreed with you up front, so you always know who is on your project and who is accountable.

How do you handle sensitive data when building with LLMs?

By designing for it from day one: minimizing and redacting what reaches a model, keeping the architecture provider-agnostic so you choose the vendor and region, applying least-privilege access to data sources, and building monitoring and fallbacks around model output. We agree the data-handling rules for your context before any code is written.

Do you sign NDAs, and who owns the work?

Yes to NDAs, happily and before we discuss anything sensitive. Intellectual property terms are set out in the statement of work; the usual arrangement is that deliverables built for you belong to you.

Which technologies do you work with, and who decides the stack?

I choose technology to fit the problem, not my résumé or anyone’s habits. I start from your constraints (your team’s skills, existing systems, scale, security and compliance needs, budget and timeline, and what you’ll have to maintain in three years), compare the realistic options and write down the trade-offs so the decision is transparent and easy to revisit. Sometimes that confirms the stack you had in mind; sometimes I’ll recommend something different and explain why. Where I have the most hands-on depth is TypeScript and Node.js, React and React Native, PostgreSQL, AWS (Lambda, CDK) and LLM tooling such as the Anthropic and OpenAI APIs, LangChain and the Model Context Protocol, but that’s where I’m strongest, not where I stop. If a project needs expertise I don’t have, I’ll say so and bring in the right person rather than stretch.

Contact

Let’s talk about what you’re building.

Tell me about the problem, or just book a call. No pitch deck required. I reply within one business day.

Prefer to talk it through?

Book a free 30-minute discovery call and pick a time that suits you.

Choose a time