AL
EMADIAN

The systems I build run while I sleep.

I build production AI for the teams that run a business. I spent 20 years as one of them.

Sales. Marketing. Customer success. Operations.

The output of a team. The overhead of none.

SYSTEMS ACTIVE

The architecture behind the output.

7
PRODUCTION SYSTEMS
Solo
BUILT AND RUN, END TO END
Live
RUNNING IN PRODUCTION TODAY
2
COUNTRIES
BUILT AN ENTERPRISE-GRADE OPENCLAW

Everyone scales with headcount.
I scaled with architecture.

Systems running sales, marketing, operations, and customer support, end to end, no human in the relay.

I didn't hire a team. I engineered one.

THE ARC // 4 CHAPTERS
Three years.
First every time.
I built the systems that run the work while I carried the number.
Amazon
National Partnerships Manager, Amazon Key
2024 — PRESENT
3 for 3
YEARS OVER GOAL
187%, 158%, 2026 already over target at 133%
$2.7M
A YEAR IN DELIVERY SAVINGS
Savings across the installed customer base
1st
IN NORTH AMERICA TO GOAL
Within months of starting
GREENFIELD
A young market, still proving the product, no repeatable way into enterprise.
So I built the motion to do it, and hit 187% of the first-year goal.
ENTERPRISE
One of the country's largest property groups, won from a standing start and kept by speed.
When their deliveries started failing, I cleared every defect in days, not weeks. That earned the full portfolio: over 200 buildings, the largest single-account expansion.
CHANNEL
I built the channel the team still runs on.
Originated the two-channel motion and the preferred-vendor install pattern, now standard practice.
VELOCITY
Year three: a full year's target, cleared with the year still running.
Fitness ConnectionVice President of Sales2023 — 2024
TechnogymEnterprise Sales, Territory Manager2018 — 2023
GoodLife FitnessOperations Divisional Manager2000 — 2017
THE PROOF

Built, shipped, running.

Production AI I built and still run, most of it for the teams that run the business. Open any one for the architecture and the calls behind it.

01/THE PROOF·UNIFIED OPERATIONS

One surface the business runs on.

Ask in plain English; it reasons across six sources and cites every answer.

Operations Center. Representative interface. Figures illustrative.

Across two countries, the people who run this business used to start the same way, stitching six tools together to answer one question. I built one internal surface that pulls all six into a single view, then put a plain-English search on top of it.

Now anyone asks the way they would say it out loud: which accounts are slipping, where the open territory is, what is ready to install. The answer comes back reasoned, with every source cited. A rep checks a territory, a leader preps for a meeting, and the weekly review that used to run two hours now takes minutes. It runs across more than 100,000 properties in two countries and saves about $320,000 a year. Another org adopted it on its own, and a third asked for it.

Architecture
Next.js 16·React 19·TypeScript·Bedrock·MapLibre GL·CloudFront

A static data layer on a CDN, a runtime API behind corporate SSO, maps in MapLibre, charts and 3D where they earn their place. Under the plain-English search sits a model with tool access across all six sources, so one answer can pull from each and cite where every number came from.

Built modular, so a second country was a configuration change, not a rebuild. One person designed it, built it, and owns it, down to the security tickets. It is the daily driver for the business, not a tool that gets opened once and forgotten.

Design callI chose one consistent auth model over hardening a single route. Security that only covers one door is not security.
02/THE PROOF·AUTONOMOUS DEPLOY

The Self-Shipping Loop

A bug report becomes a production deploy, with no one writing the code.

  1. Feedbackin the dashboard

    Someone clicks a button and describes the bug in plain language.

  2. ClassifyBedrock

    The report is scoped into a known fix shape.

  3. PatchClaude Code · EC2

    A coding agent branches the repo and writes the fix.

  4. Prove it5 gates

    Type-check, lint, a browser test diff, a model critique that has to pass a quality floor, and an idempotency check.

  5. Shipthe only human step

    A Slack card shows the diff and waits. You click ship, or you throw it away.

  6. Deploylaptop daemon

    An SSO-gated release from the one machine that holds the certificates.

  7. Live~5s rollback

    11 alarms watch the run. One command reverts it in about five seconds.

AI assists. Human commits.

Someone on the team clicks a feedback button and describes a bug in plain language. Minutes later the fix is live, and no engineer ever touched it. The report gets classified and scoped. A coding agent branches the repo and writes the patch. The change then runs a gauntlet: type-checking, linting, a full browser test pass, a separate model whose only job is to tear the diff apart, and an idempotency check so the same fix never ships twice.

Only then does it reach a person. A Slack card shows the change and waits. One click ships it. One click throws it away. If anything looks wrong in production, a single command rolls it back in about five seconds. This is the same shape as the autonomous-coding demos that raised venture rounds in 2024. I built and run mine on my own.

Architecture
Claude Code·Bedrock·Lambda·EC2·DynamoDB·Playwright·CloudWatch

Five serverless functions feed a queue. A worker on an always-on box runs the coding agent headless to branch the repo and write the fix. Five gates run before anything ships: type-checking, linting, a browser test diff across the routes, a model critique with a quality floor, and an idempotency precheck.

The final deploy runs from a laptop daemon, because the release certificates are gated behind corporate SSO and cannot live in the cloud. It runs on the surface that already holds them. Every run is watched by 11 alarms. The trust boundaries live in code, where the model cannot talk its way past them. Scope is deliberately bounded to a known class of fixes today, and widens as trust in the gauntlet grows.

The card the loop posts to Slack after every gate passes. One click ships, one click discards. Representative interface. Figures illustrative.
The hardest decisionThe classifier once carried a trusted-override instruction in its prompt. The model refused it, reading the override as a possible injection. It was right to. I moved the contract into deterministic code, so it holds whether the model cooperates or not. Fix the contract, do not fight the model.
03/THE PROOF·MULTI-AGENT OUTREACH

It does the homework. A person hits send.

Six sources researched, every line cited, and a person sends every draft.

The Outreach Engine. Representative interface. Figures illustrative.

A lead goes quiet, or a follow-up is overdue, and most outreach answers with a template. Mine answers with research. Before it writes a word, the system reads LinkedIn, the open web, the CRM, the delivery data, past emails, and my own notes on the last time we spoke.

Then it writes one email in my voice, tuned to who they are. A property manager hears about residents, an owner-operator hears about yield. Every claim traces to a source, 15 compliance checks and a hallucination scan run before I see it, and I send the final word myself. It drafts about 600 a month. It has never sent one on its own.

Architecture
Claude Opus·AWS Lambda·DynamoDB·EventBridge·Slack API·Outlook / Graph

A five-stage pipeline runs across 22 Lambda functions for every contact: research across six sources, analysis of every prior thread, generation in my voice with extended thinking, 15 compliance checks, and delivery to a Slack card. Three models, eight databases, about $50 a month.

The compliance stage is the point. CASL consent, colleague dedup so two reps never hit the same contact, brand rules, and a hallucination scan that kills any claim it cannot trace to a source. The system drafts and cites. I read every word and send. That boundary lives in code, where a prompt cannot loosen it.

The hardest decisionI built it to send on its own, then took that away. A system that emails people unsupervised is a liability, not a feature. The value was never the sending. It was the research no human has time to do, every time.
04/THE PROOF·AUTONOMOUS PROSPECTING

Qualified while I slept.

It works the territory overnight, assumes every lead is wrong, and by morning only the ones that survived the argument reach me.

The Nightly Lead Hunter. Representative interface. Figures illustrative.

Every weekday at 3:15 in the morning, on a box that never sleeps, four agents go to work. A researcher scans every account in the territory. A briefer writes the case for each one. A critic attacks that case. A handoff pushes only the survivors to the CRM, ranked, with the reasoning attached.

The critic is the point. Most lead tools rank what they find and call it qualified. Mine assumes every lead is wrong until it can argue otherwise, then shows me the argument it had with itself. By 6 AM I have a short, honest brief, and the accounts that did not hold up never reach my morning at all.

Architecture
Claude Opus·EC2·systemd timers·MCP tools·Salesforce API·Extended thinking

An always-on box runs eight systemd timers through the night. Four agents work in sequence, each on extended thinking with no cheaper model in the chain: researcher, briefer, adversarial critic, handoff. They reach across the data with 18 tools. The whole run finishes in about 24 minutes.

The adversarial critic is what makes the brief trustworthy. It exists only to disagree, to find the reason each lead is not really a lead. What clears it reaches me with the challenge it survived. 1,508 tests keep the chain honest, because an autonomous system I do not watch overnight has to be one I can trust by morning. It only ever qualifies and hands off, and never contacts anyone itself.

The hardest decisionI gave it the power to score leads and almost stopped there. Then I built an agent whose only job is to disagree with the others. The score was never the hard part. Earning the right to act on a score I did not personally check was. The critic is how I sleep through the run.
05/THE PROOF·AGENT MEMORY

Memory my agents can actually search.

A persistent memory layer I wrote from scratch, so an agent recalls the right thing, not the most recent thing.

The Semantic Memory Engine. Representative interface. Figures illustrative.

Most agents forget between sessions, or dump their whole history back in and hope. Mine keeps real memory: plain text files, one fact each, read at the start of a session, searched while we work, and added to on the way out. When it needs something, it pulls only the few memories that bear on the question, answers from those, and names each one. Choosing the five that matter over the 700 that do not is the whole game.

A second pass runs overnight, the dream pass. It groups the day’s new memories and writes a short summary so the bigger picture is easy to find later. It never edits or deletes the originals.

Architecture
Markdown + YAML·Embeddings (1024-dim)·RRF hybrid search·Cross-encoder rerank·MMR·SQLite WAL·Nightly dream pass

Each memory is a markdown file with YAML frontmatter, linked to others with a wiki-style graph syntax, and a curated index loads at startup. Recall runs four stages: embed the question, then fuse a vector and a keyword search with reciprocal-rank fusion. A cross-encoder reranks the top results, and an MMR pass diversifies them, so the five memories that reach the answer are relevant without repeating each other.

Every answer is grounded. It can only draw on what was retrieved, and each line carries the memory it came from, so there is a file behind every claim. The store is one SQLite database in write-ahead mode, cosine similarity computed in numpy, about 1,170 lines with no framework underneath. It is deliberately boring: plain files I can read and edit by hand, no database I cannot open, no service I cannot restart.

The dream pass runs nightly, and it is purely additive. It groups the day's new memories by what they are about, then writes a short three-sentence summary for each group into a separate consolidated folder, so recall gets a high-level entry point next to the detail. It never rewrites or removes the source files. A separate check can flag likely duplicates, but only to surface them for me to review. Nothing is merged automatically.

The hardest decisionThe easy version stuffs everything into the context window and lets the model sort it out. That gets slower and more expensive as the history grows, and the answers get worse, not better. So I put the work into retrieval, and into the nightly pass that keeps the store legible. I built this before there was an official memory primitive to reach for. The shape it took has held up since.
06/THE PROOF·ORG NAVIGATION

Find who owns it, and who they answer to.

I search the entire org in plain English, and the graph traces the reporting line and the team behind any name.

Org Explorer. Representative interface. Figures illustrative.

In a company this size, the hard part of getting something done across teams is not the work. It is finding the one person who actually owns the thing. The org chart is buried, search hands back job titles, and you lose days asking around. I built the surface that just answers it.

I ask in plain language, who owns install scheduling, and the right people come back ranked, with their level, role, team, and tenure. Pick one and the graph draws their world: the reporting line up to a leader, the team around them, and where they sit among everyone else. I know the structure before I send a message.

It only ever shows what the company already publishes about itself, titles, teams, and who reports to whom. Nothing private, nothing inferred. The point is to find the right door faster, not to learn more about people than they have chosen to share.

Architecture
Next.js 16·React 19·TypeScript·Force-directed graph·Directory + reporting data·CloudFront

It sits inside the Operations Center as one of a family of internal tools. The directory and the reporting lines load as a static graph on a CDN, so the whole org is in memory and search returns instantly. A ranking pass scores every person against the query, by role, by team, and by how close they sit to what I asked about.

The graph is a force-directed layout of the entire company. Selecting a person walks the reporting edges to trace their chain up to a leader and pulls in their direct team, so one click turns a flat list into a map. Every node is a real directory record, nothing scraped, nothing guessed.

Design callA search box over an employee table would have been a weekend. The graph took the real work, because the answer I needed was never just a name. It was the structure around it: who they report to, who reports to them, where they sit. That is the difference between a directory and a map.
07/THE PROOF·AGENT INFRASTRUCTURE

Autonomous until it has to commit.

The infrastructure several of these systems run on. It works end to end on its own, and still cannot reach the world without me.

The Agent Harness. Representative architecture. Figures illustrative.

Some of the systems on this page are not separate builds. They run on one chassis I wrote: an orchestration, review, and trust layer for agents that work against live, irreversible systems, a CRM of record and a customer mailbox. A mistake here is not a bad demo. It is an action against the real world that you do not get to take back.

A message in Slack spawns a real agent session on an always-on box. A line of single-purpose agents researches, drafts, and scores the work, and a separate critic tears each result apart before it counts. Anything with a claim it cannot trace goes back to be redone. The reasoning runs in the cloud, but the actions that need a corporate login run from my own laptop, so the cloud drops a task in a queue and the laptop picks it up.

What makes it safe to leave running is where it stops. Six gates stand between the agents and anything they cannot take back, and the last one is not a setting they can skip. Approval is a state in a queue that only I can change, so an agent running fully headless, every prompt bypassed, still cannot send. Autonomy lives in the runtime. Safety lives in the data. Keeping them apart is the whole design.

Architecture
Claude Agent SDK·Bedrock·EC2·Slack (Bolt)·DynamoDB·S3 queue·systemd·MCP·Salesforce API·CloudWatch

The operator surface is Slack, not a bespoke UI. A mention spawns a real agent session on an always-on box, streams the work back into the thread, and persists the session so a follow-up resumes it. One run holds per thread, the rest queue, and three separate paths can kill a run. Underneath sit 51 typed tool interfaces into the CRM, the mailbox, memory, and Slack, and a 1024-dim vector store the agents search for past context.

Reasoning agents run on the always-on box, where cloud auth never expires. The actions that need a corporate sign-in run on my managed laptop, which the cloud cannot reach, so control is inverted: the box drops a task in an object-store queue and the laptop polls it every 30 seconds. Every agent runs on the top model at full effort, with no cheaper tier anywhere. Because the gateway can quietly serve a smaller model, a detector reads the model id off each response and raises an alarm when what was served does not match what was asked.

Over all of it sits one supervisor: a single brain that wraps every producer behind one execute() interface, so the whole fleet runs as one orchestrated system instead of a set of independent scripts. It was built test-first and hardened through three adversarial review rounds, with a kill switch on the whole thing. All of it carries 1,508 tests behind 352 single-author commits.

The hardest decisionThe headless paths have to run with every permission prompt bypassed, or they hang with no one to click allow. But a message to a customer can never go out without my say-so. Those two look like they contradict. They stop the moment approval is not a prompt at all. I made it a state in a queue that only I can flip, with the send tools blocked at the harness on top. Bypassing prompts cannot bypass a gate that was never a prompt.
08/THE PROOF·SHIPPED IN PUBLIC

The one you can open yourself.

Everything else here runs behind a company login. This one's live on the open web, so you don't have to take my word for it.

Texera, live at texera.ca. The actual site, not a representative frame.

The rest of these I can only show you as a sanitized screenshot. This one's different. It's a real product you can open right now and look at in full, not a cropped frame.

It's the public face of a practice that designs and builds AI agents for other businesses, the same work the rest of this page is made of, packaged and sold. A site like that has to sell, so it reads like marketing, but most of the work sits under the surface.

Under the marketing, it works like a solutions pitch. A live dashboard shows a business what its operations are quietly costing it, then flips to the same board running clean once an agent is on the work. A calculator turns that into a number the buyer can check against their own. I handled the whole thing, from the design through the deploy.

It's held to the same standard as everything else on this page: nothing generic, every section earning its place. It's one click away, so rather than walk you through it, I'll just point you to it.

Open it livetexera.ca
Architecture
Next.js 16·React 19·TypeScript·GSAP·Lenis·ScrollTrigger·PHP mailer·Static export + FTP

The hard part of a site like this isn't the look, it's making heavy motion feel weightless. The main dashboard is pinned to the scroll as a fixed layer driven by a single ScrollTrigger, so it can switch from an audit view to a live one without dropping a frame. Smooth scrolling runs on Lenis, the reveals and pins on GSAP, and the headline that plays video inside the letters is its own component.

Behind the cost calculator is a real back end, not a third-party form. It recomputes every figure server-side so the emailed snapshot always matches what's on screen, then sends a branded copy to the visitor and a lead notice to me, with an origin check, a honeypot, length caps, and a rate limit in front of it. The whole site builds to a static export and ships file by file.

Design callThe dashboard shows the cost before it shows the fix. Nobody feels a solution until they've seen the problem counted up in their own terms. So the audit comes first, red and specific, and the running version second. The order is the argument.
THE PROOF·OFF THE CLOCK

I run my own life on the same stack.

Off the clock, the same watchers, schedulers, and approval gates point at my house: the family schedule, the home, the bills, each action staged for me to approve. The truest test of a system is whether you would trust it with your family. I do.

Al’s Command Center. Representative interface. Figures illustrative.
THE PROOF·MORE

The rest of the work.

A shorter list, same bar. More systems I built and still run, across work, family, and the toolchain itself.

  • Work
    Signal
    Built for the entire enterprise team in Canada: it turns raw delivery data into cited evidence about any property, from a single building up to a whole account, so a claim is backed before anyone makes it.
  • Network
    Nexus
    A map of my professional network. It folds more than 2,000 connections and years of email into one graph of people and companies, then shows me who I actually know, how we are connected, and the history behind every relationship.
  • Family
    A learning agent for my daughter
    My daughter was losing to quadratics, so I built her a tutor on the always-on Mac mini at home. It watches her Google Classroom read-only, sees the exact questions she got wrong, and builds practice for those gaps, never just handing over the answer. It keeps no score, no grades, no streaks, just unlimited retries and a first line that reads 'no rush, no judgment.' Her grades have come up.
  • Toolchain
    A weekend content pipeline
    It trims a long video, transcribes it, picks an approved image, and writes five captions. I choose one, it ships. The taste stays mine.
  • Toolchain
    A cross-model review harness
    Before I call any change done, a second model reviews the first model's work for bugs and bad calls. The disagreements between them are where the real fixes hide.

Let's talk.

The best conversations happen when the right signal reaches the right person.

I build the systems. And I've spent 20 years in the room with the people who use them.

LocationToronto, Canada · Eastern Time