Olajide Olaolorun Get in touch
Technical PM · AI infrastructure · Operator · Atlanta

I build AI systems that run in production.

Technical project manager with a track record of shipping automation infrastructure from zero. Not prototypes, not demos: real systems handling real bookings, real money and real customers, deployed across multiple businesses.

900+automated booking-response executions handled without manual follow-up
150+Google review replies posted automatically, refreshed every 4 hours
$128K+in real-time finances tracked across 16 bank accounts via Plaid
24/7inbound call coverage via AI voice host, <2 min notification
Work

Builder and operator.

01 · Technology

Designing and shipping AI systems.

A full AI automation stack on a self-managed VPS: n8n pipelines, ChatGPT, Gemini and Claude integrations, Docker containers, and real-time API connections to Meta, Google and Plaid. Every workflow solves a real operational problem that used to take manual work.

n8nDockerClaude AIGeminiChatGPTMeta Ads APIGoogle Business APIPlaid
02 · Hospitality

The real-world proving ground.

Full ownership and operations of three restaurant concepts in Atlanta. The restaurants are where the infrastructure gets stress-tested against real customers, real revenue and real stakes. Every system that runs here had to actually work.

Projects

Things I'm building.

07 systems · 7 live
01

Restaurant AI Stack

n8nClaude AIPlaid APIMeta Graph APIGoogle Business APIDocker

End-to-end automation for multiple restaurants: large-party booking auto-responders, SEO-optimized Google review replies, weekly finance reports via Plaid, and Meta Ads optimization with Claude AI, all running in production across two restaurant concepts.

Live
02

AI Restaurant Host — Maya

Retell AIClaude AIn8nGreen APITwilio

A 24/7 voice agent that answers every inbound call: menu and FAQ from a live knowledge base, reservation routing by party size and timing, and a human handoff when needed. n8n turns each transcript into a WhatsApp and email alert within 2 minutes of the call ending.

Live
03

Restaurant Ops Console

LaravelPHP 8.3MySQLAlpine.js

A multi-company back office for inventory tracking and staff tip-out calculations: role-based access, per-company gratuity split rules, and session-scoped company switching for operators running more than one concept.

Live
04

Google & Meta Ads Dashboard

Node/ExpressReactSQLiteMeta Graph APIGoogle Ads API

A self-hosted multi-account dashboard for Google and Meta ads with live data, a one-click platform switch, drill-down from campaign to ad, pixel event tracking, and a full history of Claude AI optimization decisions.

Live
05

Daily POS Check

n8nPDF parsingGmail APILaravel

Every morning n8n pulls each restaurant's POS close-out report from email, parses net sales and cash from the PDF, and checks them against what staff entered in the Ops Console. A green check or a red flag is waiting before anyone opens the books.

Live
06

Review Mention Tracker

Claude AIn8nGoogle Business APIYelp

Every 4 hours Claude reads new Google and Yelp reviews and spots staff mentions. A manager approves each one, and staff earn points (Google 1, Yelp 2) on weekly and monthly leaderboards, with their own "My Mentions" page.

Live
07

Group Menu Pre-Selection

WordPressPHPMySQLDocker

Large-party hosts pick a shortlist of dishes and share one link. Each guest chooses from it on their phone, the host is notified as each responds, and the kitchen gets a one-page PDF with dish counts before the party arrives.

Live
Case studies

Three systems, up close.

Always-on host, zero missed calls.

Maya · 24/7 inbound + 2-min transcript processing
Problem

Peak call volume overlaps with peak dining hours.

During dinner service every host is on the floor. The phone goes unanswered, callers don't leave voicemails, and reservations walk out the door. A dedicated phone host for every shift isn't economical, and traditional IVR frustrates callers.

Approach

A voice AI that knows the menu and hands off when it matters.

  • Answers hours, menu, FAQ and reservation questions from a live knowledge base
  • Three routing paths by party size and timing: callback, online booking, or the events form
  • A nightly n8n job updates date awareness and republishes the agent
  • Every completed call is turned into a WhatsApp and email alert within 2 minutes
Result

Every call answered, every reservation captured.

Calls that used to fall through during service now reach Maya. Name, party size, date, time, email and occasion reach the team within 2 minutes, and confirmations or complex requests route straight to a human.

24/7no shift coverage gaps
< 2 minfrom call end to WhatsApp notification
3 pathscallback, online booking or events form
Reliability

Built to fail loudly, not silently.

Automations rarely break in dramatic ways. A token expires, a run dies halfway through, and nobody notices for weeks. These are the guardrails that make sure someone does.

01 · Central alerting

One alert path for every workflow.

A single workflow catches failures through a webhook or as other workflows' Error Workflow. Wiring it into the review responder covered all 17 Google Business API nodes with zero per-node changes.

02 · Credential health

A status dot for every connection.

A live health badge for each Meta and Google Ads account and for Gmail. Ad tokens are checked live; Gmail reports its own send result on every run.

03 · Stuck-run detection

Orphaned runs surface themselves.

A run pending past its 48-hour window gets a red banner and a one-click resolve, re-checked on the server rather than trusted from the browser.

04 · Safe defaults

When in doubt, do nothing.

Timeouts default to reject, reconciliation defaults to red, and health reporting can't take down the run it reports on.

Why this exists: in August a Gmail OAuth token expired. Two weekly ad-optimization runs crashed after saving a pending record but before sending the approval email, and sat "waiting" forever. The fix wasn't just a new token: the send step now reports its own health, stuck runs flag themselves, and credential failures alert by email.

Field notes

Things production taught me.

Incident · Aug 2026
nginx · MediaWiki · Redis · 2-core server

Rate limiting a botnet that never trips a rate limit.

A wiki I host started taking 30-second page loads and dragged down every other site on the server: load hit 13 to 17 on a 2-core box. A distributed scraper was hitting the wiki's most expensive uncacheable pages with randomized parameters, forcing a fresh database query every time.

Two surprises. The wiki had been running with no object cache at all, because a leftover config line silently overrode a working Redis setup. And per-IP rate limiting did nothing: hundreds of IPs each sent only 3 to 9 requests.

What worked was a single shared limit for the whole site on just those dynamic URLs, queueing rather than rejecting. Load fell below 2 while the attack was still running.

"Against a diffuse attacker, limit the total, not the individual."
Technical project management

How I work.

Product & roadmap

End-to-end product vision and 3-phase technical roadmaps, with full specs covering data models, user flows and phased delivery.

Architecture

Mobile-first web apps, dual-purpose API endpoints, multi-party ledgers and role-aware routing across multi-tenant platforms, without over-engineering.

Delivery

Cross-functional scope across frontend, backend and payments, sequenced to de-risk complexity, with acceptance criteria and phase boundaries.

AI integration

Claude in production across voice, booking, ads, reviews and finance, with failsafe patterns that keep systems stable under real load.

Voice AI & telephony

A production voice host with routing logic, live menu retrieval, nightly automated prompt updates and 2-minute call summaries.

Credentials Scrum.org · Professional Scrum Master I Anthropic · Claude Certified Architect – Foundations · in progress PMI · Project Management Professional · in progress