open to remoteengineerAllen, TX (Dallas-Fort Worth)9+ years

Abimbola Alexander Omoyola

I build and run production systems end to end.

Nine years turning requirements into working systems: APIs, automation, cloud infrastructure and the AI workflows on top. Enterprise customers at Persado and Microsoft, and a set of products I design, ship and operate myself.

What I bring

01

Systems that run unattended

Control planes, scheduled pipelines and deployment guardrails, with health checks and rollbacks I rely on daily.

02

Customer-facing delivery

Ambiguous requirements to architecture, integration, rollout and the debugging that follows, with the customer in the room.

03

AI

LLM workflows with structured outputs, provenance and confidence thresholds, so the system cites what it used or says it does not know.

Things I built and run

Most of this is live and operated by me. Each project page covers the problem, what I built, the architecture and the stack.

Plus234Feed screenshot
01live

Plus234Feed

Nigerian news and data-intelligence platform

Nigerian market, macro and civic data is scattered across publishers, regulators and PDFs, and most of it is stale or paywalled by the time anyone can use it. Plus234Feed aggregates it, keeps it current, and serves it fast from the edge.

  • Python
  • FastAPI
  • TypeScript
  • Next.js
  • React
  • +9
architecture & details
SignalDesk screenshot
02live

SignalDesk

The internal portal the platform is actually run from

  • TypeScript
  • React
  • Vite
  • Tailwind
  • Python
  • +4
architecture & details
  1. clientClaude Desktop / Claude Code / any MCP client
  2. transportMCP over stdio. The client spawns it locally, so queries and credentials stay on the machine
  3. serverTypeScript on the official MCP SDK: tool schemas, argument validation, freshness envelope
  4. retrievalSemantic search (pgvector) + keyword search (ts_rank) over Supabase Postgres
  5. dataSame tables the public platform serves: articles, FX, NGX, NBS, National Assembly
03live

Plus234Feed MCP Server

Grounded Nigerian data for Claude Desktop, Claude Code and other MCP clients

  • TypeScript
  • MCP SDK
  • Supabase Postgres
  • pgvector
  • OpenAI embeddings
  • +1
architecture & details
B2B Lead Operations Platform screenshot
04live

B2B Lead Operations Platform

Client portal, internal portal and reporting backend for a lead-generation business

  • TypeScript
  • Cloudflare Workers
  • D1
  • R2
  • Cron triggers
  • +4
architecture & details
WebSentry screenshot
05live

WebSentry

Website security scanning and monitoring on Cloudflare Workers

  • TypeScript
  • Cloudflare Workers
  • D1
  • R2
  • Queues
  • +3
architecture & details
Web Signals screenshot
06live

Web Signals

Conversion analytics with AI-written site audits

Site owners see traffic numbers but not where intent builds or leaks. Web Signals scores each session by intent and turns the behaviour into prioritised, readable findings.

  • TypeScript
  • Cloudflare Workers
  • D1
  • R2
  • Claude
  • +3
architecture & details

Open source

Open-source projects I build and maintain. Each one links to its code.

afrigov

MIT · npm

Components for building accessible African public-service websites. One country-neutral core, a token pack per country, plain CSS, no build step.

  • CSS
  • 0 dependencies
  • axe-core in CI
  • 7 country packs
npm install afrigov
  • Forty-plus components in under 10 KB of gzipped CSS. System fonts, zero font requests, and every component works without JavaScript.
  • Seven country packs (Ghana, Kenya, Morocco, Nigeria, Rwanda, Senegal, South Africa) as W3C design tokens. Contrast is checked at build time: an official colour too light for text gets a text-safe shade derived automatically.
  • CI audits every docs page with axe-core in all eight themes: 720 accessibility runs plus touch-target checks on each pull request, and a 20 KB size budget that fails the build.
  • Three real government sites rebuilt on it, 103 pages, every one scoring 100. One ministry home page went from 8.9 MB to 29 KB, and from 14 s to 3 s on a phone.

afrigov-blocks

preparing for the WordPress plugin directory

afrigov's components as WordPress blocks. Each block is a fixed shape an editor fills in on the page, so nothing that breaks the design can be dropped inside it, and the editor looks like the published page.

  • WordPress
  • GPL-2.0
  • 26 blocks
  • 26 blocks, from hero, service cards and key figures to events, downloads and a privacy-friendly video that loads only when pressed.
  • Variants live in the block toolbar (Layout: Over a photo, Style: Tinted), so editors switch designs without touching CSS.
  • Pages are limited to blocks that keep the look; groups, columns and covers are left out. Events are their own post type and move to the past list by themselves.

afrigovPress

in development

The afrigov design system as a WordPress theme. Most African government websites already run WordPress, so adopting afrigov becomes a theme install.

  • WordPress theme
  • GPL-2.0
  • theme.json
  • An official-website banner, header, navigation and footer an editor cannot break, with the country pack (colours, flag, banner wording) as a site setting.
  • Pages built from patterns score 100 with afrigov-audit out of the box, and every page gets a title, description, sharing tags and structured data from what the editor already wrote.
  • A sync step regenerates theme.json's colour, type and spacing presets from afrigov's design tokens, so a design-system release reaches sites as a normal theme update.

afrigov-audit

MIT · npm

An accessibility audit for any web page, from the command line. Built for government and public-service sites anywhere; it does not need afrigov.

  • CLI
  • TypeScript
  • Playwright
  • library API
npx afrigov-audit https://example.gov.ng/
  • Runs axe-core (WCAG 2.0 to 2.2 AA) in Chromium at phone and desktop widths, plus five checks for what government sites fail most: no language set, zoom disabled, no skip link, no title, touch targets too small.
  • Scores the page from 100 with weights published in the README, so a score can be argued with, and maps 71 axe rules to the afrigov fix for each.
  • Measures page weight on a phone and flags oversized and offscreen images. A --fail-under threshold gates CI, and --badge writes an SVG for a README.

afrigov-images

MIT · npm

Makes photos light enough for government websites: resizes for each screen, converts to WebP, strips location data, checks weight limits and prints the HTML to paste.

  • CLI
  • WebP
  • library API
npx afrigov-images ./event-photos --out ./site/images
  • On a ministry home page's heaviest image, a phone now downloads 15 KB where it used to download 3.1 MB.
  • Seven image kinds (hero, card, thumb, flyer and more), each with the sizes a page needs and a weight limit; quality steps down until the image fits, and the CLI exits non-zero if it cannot.
  • Removes camera GPS data by default, because a government site should not publish where a staff member lives by accident.

paylocal

MIT · npm

Local webhook tooling for Paystack and Flutterwave. Trigger, replay and verify signed events against your dev server without a tunnel, a test card or a real transaction.

  • CLI
  • 0 dependencies
  • 75 tests
  • Node 20 to 24
npx @omoyolab/paylocal trigger paystack charge.success
  • Correctly signed payloads for 25 events (HMAC-SHA512 for Paystack, verif-hash for Flutterwave), with field overrides for the edge cases dashboards never send.
  • Linked scenarios send a payment and its refund or dispute with one shared reference, out of order or twice, to prove a handler is idempotent.
  • verify sends one valid event and three forged ones (unsigned, wrong secret, altered body) and checks the endpoint rejects each.
  • Replays a captured production delivery byte for byte with a fresh signature. The payload builders export as test fixtures.

ussdkit

MIT · npm

Build USSD apps in Node without the boilerplate: declarative screens, sessions, gateway adapters, a phone simulator in the terminal and a test helper.

  • CLI
  • 0 dependencies
  • 83 tests
  • Redis optional
npm install @omoyolab/ussdkit
  • Screens instead of state machines: five helpers (menu, prompt, list, info, end), with back, home, retries and paginated lists handled for you.
  • Sessions in memory or Redis, rebuilt from the gateway's input history so a redeploy does not drop a user mid-flow; ctx.replaying keeps a payment from running twice.
  • A terminal phone simulator and a test helper that drives an app with no HTTP, including a lost session. Screen-length warnings at the roughly 182-character limit.

Where I've worked

Jan 2024 - present

Persado

Remote

Service Delivery Engineer (Platform Integrations)

  • Own technical delivery for JavaScript-based platform integrations running in enterprise customer production environments.
  • Translate customer requirements and production constraints into runtime configuration, execution logic and safe rollout strategies.
  • Diagnose integration, deployment and runtime issues across customer environments with engineering and platform teams.
  • Built AI-powered dashboards and automation that cut a QA task from 2-3 hours to under 15 minutes, adopted by a team of 24.

Jul 2023 - Dec 2023

Naveen Jindal School of Management (UT Dallas)

Dallas, TX

Web Software / DevOps Engineer

  • Owned AWS-backed infrastructure and deployment pipelines for multiple internal production platforms.
  • Designed CI/CD pipelines acting as a deployment control plane across Dev / Test / Prod, with containerised deployments to cut configuration drift.
  • Built automation for environment configuration, secrets, logging, backups and health checks.

Sep 2021 - Jun 2023

Microsoft

Remote

Developer Support Engineer (contract)

  • Supported enterprise customers integrating Microsoft Edge Chromium and WebView2 into large-scale production applications.
  • Diagnosed issues across application code, JavaScript execution, rendering, policy enforcement and platform configuration, through log analysis and defect reproduction.
  • Advised developers and IT teams on integration architecture, legacy IE migration and WebView2 adoption.
  • Built a browser policy diff-checking tool used by the Browser Support team to find differences between working and broken configurations.

Jan 2015 - Sep 2021

AXOX Web Solutions

Remote

Senior Software Engineer

  • Worked directly with clients (founders, marketers, designers and technical stakeholders) to turn requirements into system designs, APIs, cloud architectures and deployment strategies.
  • Designed and owned backend APIs and automation controlling application environments and deployments on AWS: EC2, object storage, CDN and managed databases.
  • Built full-stack applications with React, JavaScript/TypeScript, Node.js and Python (FastAPI, Flask), plus webhook-driven integrations and database schemas on PostgreSQL, MongoDB and Redis.
  • Delivered experimentation frameworks, variant logic and analytics tracking, including Optimizely programmes for ecommerce and fintech clients.
  • Owned platform reliability, release safety and production support across client systems for six years.

Tools I use

Languages

  • Python
  • JavaScript
  • TypeScript
  • Bash

Backend & APIs

  • FastAPI
  • Flask
  • Node.js
  • REST APIs
  • Webhooks
  • Background workers
  • Schema design

Frontend

  • React
  • Next.js
  • React Query
  • Tailwind
  • SEO-aware rendering
  • Performance optimisation

Cloud & edge

  • AWS (EC2, S3, CloudFront, Lambda, RDS)
  • Cloudflare Workers, D1, KV, R2, Queues
  • Render
  • Azure

Automation & delivery

  • Docker
  • GitHub Actions
  • Terraform
  • Kubernetes
  • Playwright
  • Cron pipelines

AI engineering

  • LLM workflows
  • MCP
  • Structured outputs
  • Embeddings & semantic search
  • Evaluation

Data

  • PostgreSQL
  • MongoDB
  • Redis
  • Supabase
  • D1

Operations

  • Logging
  • Monitoring
  • Alerting
  • Production debugging
  • Incident response

certifications

  • AWS Certified Cloud Practitioner (CLF-C01)
  • Microsoft Certified: Azure Fundamentals (AZ-900)
  • Google Analytics Certification

education

  • B.S. Computer Science, University of Texas at Dallas
  • A.S. Computer Science, Dallas College

Writing

$boringtechEngineering notes on the systems I build and run: APIs, data pipelines, caching, monitoring, and the AI on top. Real problems, with code.boringtech.dev ↗

Let's talk

Happy to walk through any of these systems in detail.