
Sentiment Analysis with GPT-4 Function Calling
- AI & Data Engineering


Ryan VanderpolRyan Vanderpol
July 23, 2026 • 6 min read
This article originally appeared in our CEO's newsletter, available at ryanvanderpol.com
We're preparing to launch our most ambitious product yet: a competitor to Notion. We spend over $10,000 per year on Notion and over the last year or two we have found that it has become bloated, difficult to navigate, disorganized, slow, and buggy. We decided we could build something better.
We've been working on this new product for the last couple of months using Spec-Driven Development and AI-assisted workflows. This has been effective, but choosing what AI model to use is crucial. Different parts of the work require very different kinds of models.
Today I'll share a bit about how we choose which AI model to use for software development.
There are seemingly endless major AI models available to software teams today. Their capabilities overlap, but they are not interchangeable.
Some are better at architecture and complex reasoning. Some are optimized for writing code quickly. Some are dramatically cheaper than others. Several come in three different sizes, and a new model seems to appear every few weeks.
On the Foundry team, we use SDD for most substantial product work. Before asking an AI agent to start writing code, we define what we are building, how it should work and how we plan to implement it.
Our typical AI-assisted engineering workflow is broken down (roughly) into these stages:
Different stages of this workflow require different kinds of intelligence.
Writing a technical specification requires architectural judgment and the ability to identify ambiguity. Implementing an approved plan requires speed, reliable tool use and the ability to make changes across many files. Reviewing the finished implementation requires skepticism and enough context to compare the code against the original requirements.
If time and money are not something you care about, you can just throw Fable 5 at the entire workflow and call it a day.
In practice, that is usually wasteful and not necessarily the best way to produce reliable software.
The general approach is:
The goal is not to identify one model that is “best at coding.” It is to assign each model the role where its strengths provide the most value.
As of July, 2026, here are the primary models we consider, what they are good at, and some of the trade-offs we need to consider.
Anthropic Fable 5 — Best for architecture, complex specifications and very long autonomous implementations. Very slow, token-hungry and extremely expensive.
Anthropic Opus 4.8 — Best for planning, critical reviews, gap analysis and difficult debugging. Slow to medium speed and expensive.
Anthropic Sonnet 5 — Best for everyday implementation, refactoring, testing and debugging. Fast, capable and moderately priced.
OpenAI GPT-5.6 Sol — Best for architecture, complex planning, security review and difficult full-stack work. Slow to medium speed and expensive.
OpenAI GPT-5.6 Terra — Best for everyday implementation, code review, testing and debugging. Medium-fast with balanced pricing.
Google Gemini 3.1 Pro — Best for huge codebases, multimodal analysis, UI work and broad gap analysis. Medium-slow and moderately expensive.
Google Gemini 3.6 Flash — Best for fast implementation, debugging and large-context code exploration. Fast and relatively inexpensive.
xAI / Cursor Grok 4.5 — Best for agentic implementation, terminal-heavy work and complex multi-file changes. Fast and moderately priced.
xAI / Cursor Composer 2.5 — Best for executing clear plans, editing many files and fixing test failures. Very fast and extremely inexpensive.
We can take this list and broadly categorize the models into the following jobs:
Rolling this into the SDD workflow we discussed before, here is how we select which model to use for each of the stages:
As with everything AI-related, the more context the model has the better it will perform. This can be frustrating for someone who just wants to come in and one-shot something.
Before having your Architect model create an implementation plan, provide it with several different specification files that describe the product, features, and various guidelines you want the AI agent to respect. You will spend much more time writing and reworking spec files, but the outcome will be much higher quality.
Switching between models and having them review each other's work is also a critical part of finding gaps or problems. Just like in the real world, having a fresh set of eyes on something can often surface issues you previously overlooked. Do not let one model author, implement, review, and approve the same feature — split this up between several different models.
The best AI engineering workflow is not built around one model. It is built around a clear specification, deliberate division of labor and multiple independent opportunities to catch mistakes before they reach production.
This isn't one-size-fits-all, but this is the thought process I use when designing and building new products and features.
When our Notion competitor is released you can judge for yourself!
Cheers,
Ryan