BUILD 0001 / 2026.05 40.71N · 74.00W
acidlemon est. 2005

Lab notebook for AI, attribution, and machine intelligence.

Writing, experiments, and field notes from Joel Citron — building enterprise AI systems by day, prototyping at the edge of the model after hours.

About

Started in 2005. Still building.

Began as a creative director in 2005, pivoted to development in 2008, and have spent the last decade-plus marrying the two — building enterprise attribution systems at AI Media Group, where I'm now CTIO.

The thesis hasn't changed: a design-trained engineer makes better technical decisions because they think about the human standing in front of the system, and a engineering-trained designer ships things the design-only crowd never finishes. acidlemon is where I write about both sides.

Journey
2022 — NOW
Chief Technology & Information Officer
AI Media Group
2018 — 2022
VP, Advertising Technologies
AI Media Group
2013 — 2018
Director of Advertising Technologies
AI Media Group
2008 — 2013
Web Developer
Transition · design → engineering
2005 — 2008
Creative Director
acidlemon (freelance)
Stack
DATA
Databricks · DBT · Fivetran · MySQL · Snowflake
PLATFORM
Azure · Node.js · Next.js · Astro · Matomo
LANG
Python · TypeScript · PHP · Laravel · SQL
AI / ML
Anthropic Claude · OpenAI · Ollama · LangChain · MCP
Interests
Generative AI Machine Learning Robotics Data Engineering Attribution Analytics Enterprise Architecture
// Lab 4 experiments
// Projects 4 repos

action_man

Open ↗

Browser-based action prototyping playground.

JAVASCRIPT VERCEL LIVE Source ↗

home_hunter

Personal real-estate tracking + analysis tool for the NJ market.

WIP DATA NEXT.JS Source ↗

joelcitron.com

Open ↗

Operator-persona executive site — Astro + Tailwind, Metric Stage design system.

ASTRO TAILWIND v4 LIVE Source ↗

acidlemon.com

Open ↗

This site — Calibrated Gantry design system, bento grid, dark mode.

ASTRO DESIGN.MD LIVE Source ↗
NOV 2, 2026

Check both meters before the job runs

Lab note: a usage gate that routes agent jobs between model providers before a cap hits. Check the weekly and the 5-hour session usage, run only if both are at or under 90%, otherwise fall to the next provider, and fall to the next provider too when the check itself errors.

#ai agents#cost#rate limits#model routing#fallback#infrastructure#lab note
NOV 2, 2026

Diff the live ad every night

Lab note: the design for a nightly job that snapshots what an ad platform is actually serving, compares it with what was approved, and flags any change nobody on the team made. Written as the job I'd want, with the open problems.

#ai advertising#ad creative#monitoring#diff#audit log#meta#lab note
OCT 29, 2026

Five pins before an agentic measurement tool writes

Agentic measurement and ads agents (Lifesight, Snowflake AI Gateway for Advertising, Contentsquare's agent-traffic split) are arriving fast. Five pins before one gets to recommend or write a budget change: split humans from agents, own the events, check causality, human approval plus audit row, and no self-grading.

#ai agents#measurement#attribution#incrementality#agent governance#mcp#audit#lab note
OCT 22, 2026

Autoloop is not a control plane

Post-deploy self-tuning for AI agents (Kore.ai Autoloop, Google's agentic Gemini, RSA Agent ID) is real progress. A loop that rewrites a live agent still needs pinned contracts, identity and authority, revoke, shadow-before-write, and audit.

#ai agents#agent governance#control plane#agent identity#mcp#audit#lab note
// Now playing
Open fullscreen ↗