Skip to content

Engineering the CRM integrations, data pipelines and AI agents that move revenue

GTM Engineer in Nairobi. Seven years of TypeScript, Python and SQL spent making HubSpot, Salesforce and payment rails behave like one system.

  • HubSpot
  • Salesforce
  • Stripe
  • M-Pesa
  • Mailchimp
  • Clay
  • n8n
  • Segment
  • API integrations
  • CRM data architecture
  • Lead routing & scoring
  • MCP servers
  • Webhooks
  • Attribution
  • Payment rails
  • SQL pipelines

The revenue stack, as engineering.

Five parts of it I have built, shipped and kept running in production.

  • CRM integration & data architecture

    I write the connectors, not just the config

    Custom HubSpot and Salesforce connectors that pull and push CRM data in both directions. Downstream of them: deduplication against existing records, enrichment, and routing rules that put each lead with the right rep while its campaign attribution survives the trip.

    • HubSpot
    • Salesforce
    • REST APIs
    • Webhooks
  • GTM workflow automation

    Workflows the business builds without filing a ticket

    On the Taylor Morrison data platform, staff compose their own collection, transformation and sync jobs on top of the connectors and APIs I maintain. Engineering owns the rails; the revenue team owns the route.

    • TypeScript
    • Node.js
    • PostgreSQL
  • Qualification & scoring

    Two ways to find the buyers who mean it

    Rule-based qualification over the product-interest data prospects generate configuring their own cover, so a rep's queue holds only sales-ready leads. At Taylor Morrison the scoring is blunter and better: a $100 Stripe deposit, so buyers qualify themselves by paying.

    • Stripe
    • HubSpot
    • PostgreSQL
  • AI agents & MCP

    An MCP server where agents act, not just read

    Platform and CRM data exposed to LLM agents as typed tools, with workflow triggering — so an agent can query a record, update it and start an automation in one pass. Open APIs cover the third-party apps that need the same data.

    • MCP
    • TypeScript
    • LLM APIs
  • Reliability & delivery

    Pipelines that don't quietly drop a lead

    Event-driven integrations and JWT auth across three services keep lead, reservation and payment state consistent across boundaries. Prometheus and Grafana alert against SLOs, and a GCP serverless migration cut release cycles by about 30%.

    • GCP
    • Prometheus
    • Grafana
    • GitHub Actions

The CRM, exposed as typed tools.

My MCP server gives LLM agents read and write access to platform and CRM data, and lets them trigger the same workflows people run. Pick a request to see the call shape.

You asked

Which reserved leads haven't heard from us in a week?

Illustrative example. Tool names and records are simplified, not production data.

Selected work

Three systems, one idea: shorten the distance between interest and revenue.

  • Custom HubSpot and Salesforce connectors that pull and push CRM data in both directions, sitting under a platform where staff compose their own collection, transformation and sync workflows. Open APIs serve third-party apps. An MCP server exposes the same data to LLM agents as typed read/write tools and lets them trigger those workflows directly.

    Worth noticing: Agents that act on CRM data rather than just read it. Job ads still list MCP integration as an emerging skill; this one is already in production.

    • TypeScript
    • Node.js
    • PostgreSQL
    • MCP
    • Salesforce
    • HubSpot
  • High-volume reservation platform for a Fortune 500 homebuilder, on Node.js, TypeScript and PostgreSQL. Event-driven integrations and JWT auth across three client-facing services keep lead, reservation and payment state consistent, which cut errors in the booking-to-deposit journey. A $100 Stripe deposit filters for intent before a rep makes contact, and rep tooling surfaces reservation status with full email history.

    Worth noticing: Qualification by payment, and the consistency problem underneath it: three services, one source of truth for a lead. The GCP serverless migration I led cut release cycles about 30%.

    • Node.js
    • TypeScript
    • PostgreSQL
    • Stripe
    • JWT
    • GCP
  • I owned the data model from first campaign touch to paid policy on Django REST Framework and PostgreSQL. Capture attaches campaign metadata for attribution; HubSpot deduplication, enrichment and routing clean each lead and assign it; rule-based qualification over product-interest signals fills rep queues; Mailchimp and HubSpot track engagement; M-Pesa collects payment in-app.

    Worth noticing: Every stage of a lead-to-revenue system owned by one team. The CI/CD overhaul on the same project made deployments 35% faster with 50% fewer failures, with Prometheus and Grafana alerting against SLOs.

    • Django REST Framework
    • PostgreSQL
    • HubSpot
    • Mailchimp
    • M-Pesa

How I got here

Most GTM engineers arrive from sales. I arrived from seven years of production engineering — APIs, data pipelines, payments, regulated healthcare — and pointed it all at revenue.

So I reach for the connector rather than the workaround: sync logic, dedupe rules, webhooks that never drop a lead, and the MCP server that lets agents act on the result. I lead small teams, mentor engineers, and ship.

  • Senior Platform Engineer

    Griffin Global Technologies · Client: Taylor Morrison

    Oct 2023 – Now

  • Technical Lead & Delivery Manager

    Savannah Informatics · Led the sales platform team

    2022 – 2023

  • Software Engineer to Senior Engineer

    Savannah Informatics · Regulated healthcare APIs and mobile apps

    2018 – 2022

  • Real estate sales
  • Insurance distribution
  • Payments
  • Regulated healthcare (HIPAA)

BSc Statistics & Programming, Kenyatta University, 2018