Exploring Ideas: A Blog on Technology, Startups, Food, and More
Welcome to my blog where I share thoughts and insights on technology, startups, and life in Atlanta. Browse through the articles below or explore by topic.
Deep Research Systems: Architectural Differences That Matter
December 8, 2025
When OpenAI announced “deep research” in early 2025, it sounded like marketing speak. But the term actually refers to something specific: AI systems that can spend minutes or hours investigating a question, searching multiple sources, and synthesizing findings into comprehensive reports. The confusing part? Every major AI lab has built one of these systems, and they all work differently. After dig...
AI Agents Will Break Our Markets (Unless We Fix Them First)
December 4, 2025
I’ve been thinking about AI agents as tools that help humans work faster. But a recent paper from Hadfield and Koh asks a more interesting question: what happens when AI agents don’t just assist with markets, but actually participate in them? The paper is “An Economy of AI Agents” and it bridges economics and AI research in a way that makes both fields look naive. Economists assume away problems t...
Native Structured Outputs: When to Skip the Framework
December 1, 2025
In my previous post I covered three Python frameworks for getting structured data from LLMs: instructor, outlines, and pydantic-ai. But there’s another option I didn’t mention: using the native structured output features built directly into OpenAI and Anthropic’s APIs. This is an interesting tradeoff. You get vendor lock-in, but you also get features that frameworks can’t easily replicate. OpenAI’...
Comparing Python Libraries for Structured LLM Extraction
November 27, 2025
Most enterprise uses of LLMs require structured output. You need JSON objects that fit into databases, validate against schemas, and integrate with existing systems. You can’t just take free-form text and hope it works. The problem is that LLMs generate text. Ask for JSON and you might get it wrapped in markdown code blocks, with extra commentary, missing fields, or wrong types. You get "founded":...
Personal Blogs and the Small Web
November 24, 2025
The beating heart of the internet has also been people just sorta putting things out there. While social media platforms fight over engagement metrics and algorithmic feeds, people are rediscovering something that feels almost radical to some: owning their own little space on the web. A Brief History Personal blogging exploded in 1999. That year alone saw the launch of Blogger, LiveJournal, and Xa...
From Theory to Practice: Building Real Decision Models with Petersburg
November 20, 2025
Last year I wrote about decision making under uncertainty, exploring how expected value calculations break down when facing real-world complexity. I mentioned at the end that I’d built some cool simulations using a project called petersburg, but I didn’t have the images handy and never followed up. Well, I’ve spent some time between JPMC and SVP jobs cleaning up that project, adding examples and c...
I Tested LLM Prompt Caching With Anthropic and OpenAI
November 17, 2025
I spent $1.00 and a Saturday morning testing prompt caching with Anthropic and OpenAI. Here’s what actually happened when I measured cache hits, token counts, and real costs. The Setup Prompt caching lets you reuse parts of your LLM prompts across multiple API calls. Instead of the model reprocessing the same 10,000-token document every time, it caches the internal computation and retrieves it on ...
MCPB: One-Click Installation for MCP Servers
November 13, 2025
Anthropic released MCPB (MCP Bundles), a packaging format that lets you install MCP servers with a single click, similar to how Chrome extensions or VS Code plugins work. No more wrestling with config files or dependency management. It pruports to be a simple way to distribute local MCPs to users. I recently updated my writing-tools-mcp server to support the format, and the installation experience...
Governance in AI Agent Security
November 10, 2025
Two papers dropped in the last month that should make anyone deploying AI agents nervous. Not because they reveal new attacks, but because they prove our defenses don’t work. Simon Willison summarized both, but the governance implications deserve more attention. The Bad News “The Attacker Moves Second” from researchers at OpenAI, Anthropic, and Google DeepMind tested 12 published prompt injection ...
Resulting: Why Good Decisions Sometimes Look Bad
November 6, 2025
Annie Duke talks about a concept called “resulting” in her book Thinking in Bets: the tendency to judge decisions by their outcomes rather than their quality at the time they were made. It’s a useful shorthand for what psychologists have studied as outcome bias since the 1980s. But the more I’ve thought about it, the more I think the problem isn’t just a matter of individual judgment errors, outco...
Subscribe to the Newsletter
Get the latest posts and insights delivered straight to your inbox.