Technical
Why Python Is Still My Default for Backend AI Work
Every year I reconsider my stack. Every year Python survives the review for backend AI work. In 2026 the calculus still favors Python for one reason: the ecosystem gap is widening, not closing. Here is what I evaluated and why I am doubling down rather than hedging.
The Honest Contenders
- TypeScript with the Vercel AI SDK
- Go with the official Anthropic SDK
- Rust for performance-critical hot paths
I use all three. None of them replace Python for the core work. Each has a specific slot in my stack and the slots are well-defined.
What Python Still Does Best
# Python still wins at:
# - Data manipulation (pandas, polars)
# - Embedding pipelines (sentence-transformers)
# - Notebook-to-script workflows
# - Rapid prototyping of agent loops
# - Scientific libraries when the client has a researcherThe supporting libraries for AI work are still richer in Python than anywhere else and the gap keeps growing. TypeScript is catching up for thin API wrappers. Python still wins for anything with data. The package discovery is also better. If an AI paper drops today, there will be a Python implementation by next week. TypeScript equivalents lag by months.
Where I Reach for TypeScript
Frontend-adjacent work. Streaming UI responses. Anything that ends in a React component. The zero-friction path from model call to rendered component is unbeatable with TypeScript. I keep one monolithic TypeScript project per client for the user-facing layer and a separate Python service for the heavy lifting.
Where I Reach for Go or Rust
Proxy layers and high-throughput services. If I need to sit in front of an LLM API and shape thousands of requests per second, Python asyncio is workable but Go is calmer. Rust comes out for data pipeline hot paths where the per-row cost matters.
The Decision Rule
If the work ends in a UI, TypeScript. If the work ends in a pipeline or a file, Python. If the work needs to hit 10k requests per second, Go or Rust. I have not needed the Rust path yet on client work.
The Python 3.13 release notes are worth skimming for the free-threaded mode which changes some of the old performance arguments. For long-running agent processes that used to need multiprocessing workarounds, the new concurrency story is a real improvement.
RELATED READING
The Consulting Shift I Am Making In Year Two
After a year of writing and building, my consulting practice is changing shape. Shorter engagements. Sharper outcomes.
ReadThe Frontend Shift: Shipping Less JavaScript In Year Two
A year ago I reached for Next.js for everything. This year I often reach for nothing.
ReadThe Serverless Lesson I Would Write On A Sticky Note
After a year of shipping serverless projects, one rule explains most of the wins and all of the losses.
Read