Archive
Every published article
73 articles, newest first. Search by title, topic or keyword.
- Product Design3 min read
Snake in ChatGPT: A Little Nokia Nostalgia
Snake appears in ChatGPT’s image-generation waiting screen. A look at the little Easter egg, its Nokia roots, and the charm of a better pause.
- Creative Technology5 min read
From a Maya Assignment to a World Worth Revisiting
Revisiting my Maya3D university project: a lakeside cabin, a yellow seaplane, a missing animation, and a new playable chapter rebuilt in the browser.
- AI Engineering5 min read
Strava to ChatGPT: a useful workflow without a connector
Bring Strava data into ChatGPT with an original FIT export. A practical workflow with Kermit, clearer swim analysis and complementary device recordings.
- Product Engineering9 min read
Your product probably doesn't need a chatbot
A practical decision process for AI product features: user uncertainty, authoritative calculations, templates, privacy, and the smallest useful interaction.
- AI Engineering8 min read
The Last Mile of AI Automation Is Where the Work Actually Happens
Finding a file is only part of an AI workflow. A practical look at version selection, recipient access, attachments, and honest handoffs.
- Cloud Architecture9 min read
The Code Change Was Tiny. The Deployment Was the Real Work.
A tiny transactional-email change exposes sender discovery, SDK compatibility, release triggers, artifact paths, and the evidence needed for deployment.
- AI Engineering9 min read
If an AI Can Clean It Up, It Needs an Undo Button
A practical design for AI-assisted inbox cleanup: narrow scope, conservative classification, recoverable moves, an action manifest, and verified restoration.
- AI Engineering9 min read
No data isn't zero
Design monitoring and AI summaries that distinguish measured zero from missing data, with provenance, freshness, derived metrics, and explicit alerts.
- Leadership4 min read
Meetings on Monday Are Stupid. Here's Why.
The recurring Monday-morning status meeting asks people to report before they've had a chance to understand. There's a better way to start the week.
- AI Engineering12 min read
Ask Questions About Videos with Jockey in ChatGPT
Try TwelveLabs Jockey in ChatGPT: ask questions about footage, review proposed highlights, and check the answers against the video. No code required.
- AI Engineering35 min read
Find Video Moments with TwelveLabs Managed Search
Build a TwelveLabs video AI repository step by step: first commit, local clips, an editable media manifest, and resume-safe managed Marengo search.
- AI Engineering24 min read
Summarize Videos and Identify Scenes with Pegasus
Use TwelveLabs Pegasus 1.6 for video summaries and timed scenes. Check stream endings, inspect saved output, and verify descriptions against the footage.
- AI Engineering18 min read
Search Video Moments with Marengo and Ask Jockey
Build local video retrieval with Marengo 3.5 embeddings, then explore Jockey's API separately. Distinguish similarity scores from checked source evidence.
- Cloud Architecture35 min read
Search and Summarize Videos with TwelveLabs on Bedrock
Compare TwelveLabs on Amazon Bedrock with hosted search. Understand who owns retrieval, then try one bounded Marengo embedding and Pegasus analysis experiment.
- Product Engineering11 min read
Build a Local Review Screen for Video AI Results
Build a local video AI website: a player plus tabs for the summaries, scene lists, search rankings and Jockey answers you saved in chapters 2–5. No new API calls; synthetic demo included.
- Data Engineering8 min read
What Is Apache Spark and How Does It Work?
Learn Apache Spark foundations: drivers, executors, partitions, lazy DataFrames, shuffles, and when a simpler tool is enough.
- Data Engineering9 min read
Databricks and Spark Explained for AWS Engineers
Use familiar AWS services to understand Spark, Delta Lake, Unity Catalog, and Databricks, then follow an orders pipeline through both architectures.
- AI Engineering8 min read
What Happened When Two AI Assistants Discussed Formula 1
Two independently operated AI assistants held a ten-minute, podcast-style Slack conversation about Formula 1. The corrections were the most interesting part.
- Leadership8 min read
Build the Team Before the Plan
A practical way to build trust, understand individual strengths, and agree how an engineering team will work before delivery pressure exposes the gaps.
- Leadership8 min read
Workstream Leads Need the Ball
How to turn workstream leads into a leadership team with real decision rights, resources, and a clear route for decisions they cannot make alone.
- Leadership8 min read
The Dirty Laundry Meeting
A practical weekly blocker review that turns early concerns into owned actions without creating a culture of blame.
- Leadership8 min read
Stay Close Without Taking the Ball
How technical leaders can stay involved, coach judgment, and support decisive action while keeping decisions with the people doing the work.
- Leadership7 min read
Read the Game Before the Scoreboard
How engineering leaders can notice emerging friction, communicate uncertainty early, and give the people affected time to respond.
- Leadership8 min read
Hackathons Build Teammates
A practical approach to hackathons that helps people across engineering teams learn, collaborate, and keep working together after the demos.
- AI Engineering9 min read
How Cursor Tested My App in the iOS Simulator
How Cursor used Maestro and the iOS simulator to test my React Native app, find UI and accessibility bugs, and verify fixes beyond passing unit tests.
- Data Engineering9 min read
PySpark Mental Model: Lazy DataFrames for Media Analytics
Learn the PySpark mental model with a synthetic streaming-media dataset: DataFrames, lazy transformations, actions, and reading a query plan.
- Data Engineering9 min read
PySpark Ingestion: Explicit Schemas and a Delta Bronze Table
Ingest synthetic playback JSON with explicit PySpark schemas, capture malformed records, and write an append-only Delta bronze table.
- Data Engineering10 min read
PySpark Window Functions: Viewer Sessions and Completion Rates
Use PySpark window functions to sessionize synthetic viewer events, join a title catalog, and compute watch time and completion rates.
- Data Engineering9 min read
Spark Performance: Shuffles, Partitions, and Broadcast Joins
A practical Spark performance guide using synthetic media data: shuffles, partition sizing, skew, broadcast joins, and adaptive query execution.
- Data Engineering10 min read
Spark Structured Streaming: Watermarks and Concurrent Viewers
Build Spark Structured Streaming windows and watermarks on synthetic playback events, with checkpoints and a per-minute heartbeat activity proxy.
- Data Engineering9 min read
Testing PySpark Pipelines: Data Quality Checks That Catch Bugs
Test PySpark transformations with small synthetic DataFrames, assertDataFrameEqual, and explicit data quality expectations for media events.
- Data Engineering9 min read
Databricks Genie Code for PySpark: A Review-First Workflow
A practical workflow for Databricks Genie Code with PySpark: clear prompts, Unity Catalog context, reviewing generated code, and verifying results.
- Data Engineering10 min read
Capstone: An End-to-End Spark Medallion Pipeline for Media Data
Combine ingestion, sessionization, quality checks, and streaming into a bronze-silver-gold Spark pipeline on synthetic streaming-media data.
- AI Engineering6 min read
Start with a Failing Chatbot
Build a failing OpenAI chatbot lab with an executable return-policy contract, offline eval cases, and clear simulator limits.
- AI Engineering5 min read
Fix Retrieval and Conversation History
Fix chatbot retrieval and conversation history for short numeric replies, then test 30/61-day boundaries without overstating offline evals.
- AI Engineering7 min read
Connect the Responses API
Connect a local TypeScript or Python chatbot to the OpenAI Responses API with structured output, error handling, and explicit live/offline modes.
- AI Engineering6 min read
Debug with Evals and Local Traces
Debug chatbot evals with local trace provenance, report scope, case-level comparisons, and separate diagnoses for ambiguous numeric replies.
- AI Engineering9 min read
Make Conversation State Explicit
Make chatbot conversation state explicit: preserve order IDs as strings, enforce application guards, and inspect the historical before/after trace.
- AI Engineering7 min read
Read Results Honestly and Extend the Lab
Interpret chatbot eval results honestly, separate model calls from application guards, and extend the lab with held-out tests and quality checks.
- AI Engineering5 min read
Meet Kermit: How I’m Using OpenAI Dots
Meet Kermit, my OpenAI Dot: a practical guide to narrow responsibilities, voice briefings, authorized sources, ongoing work, and explicit human review.
- AI Engineering7 min read
I Built an Instagram Workflow with OpenAI Dots — and Review Happens in Slack
A practical OpenAI Dots Instagram workflow: Slack approves the exact image and caption, Windsor publishes approved media, and the archive stays private.
- AI Engineering11 min read
I Connected My Backoffice to ChatGPT — But Kept the Send Button Human
How I built a human-in-the-loop operations workflow where ChatGPT gathers evidence across Slack, GitHub, and Outlook, drafts a response, and stops before sending.
- Product Engineering8 min read
Introducing mntn passport: A Mountain Passport for Hikers
Meet mntn passport, a hiking app coming to iOS and Android that turns summits, total vertical, and friends’ nearby climbs into a personal mountain history.
- Practical Agent Systems9 min read
Building a Production Agent Runtime
How to separate stateless execution, durable state, fast and long-running paths, autonomy budgets, and the signals that actually govern scale.
- Practical Agent Systems8 min read
Adding Backpressure to an Agent Tool Layer
How queues, bounded drain rates, retry discipline, workload shaping, and admission control protect constrained dependencies.
- Practical Agent Systems7 min read
Designing a Fair Scheduler for Agent Workloads
How reserved capacity, weighted service, aging, and multi-dimensional quotas prevent low-priority work from starving.
- Practical Agent Systems10 min read
Building an Agent Eval Harness From Scratch
How to turn fixtures, trajectories, deterministic graders, calibrated judges, repeated trials, and release gates into evidence.
- Practical Agent Systems9 min read
How to Draw Clear Agent Architectures, Fast
A progressive method for drawing execution paths, ownership boundaries, durability, safety, and evaluation without diagram paralysis.
- Production AI Agents6 min read
An Agent Is a System, Not a Prompt
The useful mental model for agentic software starts with an execution loop, not a clever system message.
- Production AI Agents5 min read
Tools: Where Reasoning Meets the Real World
Tool design is not plumbing. It is one of the most important safety and product-design surfaces in an agent system.
- Production AI Agents8 min read
MCP: A Shared Capability Layer for Agents
Model Context Protocol is most useful when capabilities need to be reusable across agents, clients, and frameworks.
- Production AI Agents6 min read
Context Engineering: Give the Model Less, but Better
The best context window is not the biggest one. It is the smallest trustworthy working set needed for the next decision.
- Production AI Agents5 min read
RAG vs Live Tools: Knowledge Is Not State
Use retrieval for unstructured knowledge and live tools for current authoritative state—and know when the same source needs both.
- Production AI Agents5 min read
Deterministic vs Probabilistic Orchestration
The most important architecture decision in an agent system is deciding which parts should not be agentic at all.
- Production AI Agents6 min read
Reliability: Idempotency, Retries, and Partial Failure
Agentic systems inherit every distributed-systems failure mode—plus a probabilistic decision-maker on top.
- Production AI Agents6 min read
Security: Identity, ACLs, Prompt Injection, and Blast Radius
The model is not a trusted principal. Design as though untrusted content can influence it—and make that influence powerless.
- Production AI Agents4 min read
Human Confirmation Without Confirmation Fatigue
User approval is useful, but it is not authorization—and asking “Are you sure?” before everything is not a product strategy.
- Production AI Agents6 min read
Scaling Agent Systems: Backpressure, Quotas, and Workload Isolation
Ten thousand users is not a capacity number. Peak concurrency, latency SLOs, downstream limits, and workload mix are.
- Production AI Agents5 min read
Tool Sprawl, Routers, and Specialist Agents
When an agent has forty tools, the answer is rarely “write a better prompt and hope.” Reduce the effective action space.
- Production AI Agents6 min read
Evals: The Test Harness Around a Stochastic Application
A production agent needs more than unit tests. It needs a repeatable way to measure outcomes, trajectories, safety, cost, and regressions.
- Production AI Agents5 min read
Ablation, Variance, and Adaptive Sampling
Agent evaluation becomes much clearer once you borrow a small amount of statistical vocabulary—without turning product development into a statistics thesis.
- Production AI Agents6 min read
Production Observability: From Traces to Better Agents
The first month after launch should produce more than dashboards. It should produce a better eval suite and a sharper failure taxonomy.
- Production AI Agents7 min read
The Production Agent Vocabulary Sheet
A compact glossary for architecture discussions, design reviews, and building shared language across teams.
- AI Tooling11 min read
Cursor + Lovable via MCP: The Design Handoff Workflow I Wanted
Cursor owns the product, Lovable gets commissioned for design work, and I decide what comes back. Connecting Cursor to Lovable's MCP server turns two isolated AI tools into one workflow with a clear source of truth.
- IoT & Smart Home14 min read
How I Built JARVIS for My Home: A Local Voice Command Deck on a Mac Mini
A local-first home assistant running on a single Mac mini: wake word, speech-to-text, a small local model and text-to-speech, plus a sci-fi dashboard that speaks a factual daily briefing from my outdoor cameras. No audio or video leaves the house for inference.
- AI16 min read
The Agent Is the Loop: Cursor, Kiro and MCP Without the Buzzwords
What an AI agent actually is, stripped of buzzwords: the model, the loop, the tools and the protocol. How Cursor, Kiro and MCP each own a different layer of the same architecture — with the production concerns nobody puts on the diagram.
- AI9 min read
I Built a Marketing Cockpit in ChatGPT: Customer.io, Meta Ads and Creatify Over MCP
How I connected Customer.io, Meta Ads and Creatify to ChatGPT through MCP apps and plugins, turning three dashboards into a single marketing cockpit that can read audiences, generate video creative and launch campaigns from one conversation.
- Cloud Services10 min read
Query CloudWatch Logs From Cursor: Setting Up the AWS CloudWatch MCP Server
A practical guide to connecting Cursor to the AWS CloudWatch MCP server: the exact config, a least-privilege read-only IAM role with short-lived credentials, and example prompts for debugging production without opening the console.
- Product Engineering11 min read
Introducing Gwhen: The App That Tells You the Best Time to Go Outside
Weather apps give you data. Gwhen gives you a time. Here is why I built an app that answers “when is the best time to run, ride or walk today” with a single window instead of a forecast.
- IoT & Smart Home16 min read
My Smart Home Runs on a Raspberry Pi. Matter Might Eventually Make That Less Necessary.
A step-by-step guide to running Homebridge on a Raspberry Pi, the plugins that make it worthwhile, and why Matter is changing the role of the bridge rather than killing it.
- Product Engineering6 min read
Building tinymissions: Why I Removed AI from the Critical Path
My first instinct was to put an LLM at the center of my new product. Then I realized the best thing AI could do for it was stay out of the runtime entirely.
- AI8 min read
How I Automated Family Meal Planning with Apple Shortcuts and ChatGPT
The most useful AI systems aren't the flashy ones. Here's the lightweight Sunday workflow — one prompt, one shortcut, one routine — that took weekly meal planning off my mental to-do list.
- AI12 min read
Vibe Coding Is Dead. Welcome to Instructor-Led Coding.
Vibe coding showed us what was possible. The next phase is instructor-led coding — where context, judgment and voice-driven direction turn AI into a team you lead.