2025 in Review
I started 2025 being rather skeptical about LLMs, and now I use them all the time. The most impactful moment for me was when I realized the frontier models started to become really capable at coding. I remember trying out Claude 3 Sonnet in March, using aider. Today, I do most of my coding with Gemini 3 and in Gemini CLI. I love how I can now build projects I couldn't before (such as my text-based adventure game for teaching agent development). Along the way, I keep discovering new techniques and model capabilities.
Here's an overview of the things I wrote about this year:
Gemini CLI Workflows
I've been a daily user of Gemini CLI since it launched.
- Context Mechanics: I researched
how the CLI builds context. It
starts with a file tree snapshot and relies on tool use, such as
ReadFileandSearchText, to fill in details. - Augmenting Context: To improve navigation in large codebases, I prototyped a function indexer using Pygments. This script generates a map of classes and functions, which helps the model locate logic without full-text searches. (I should probably revisit this and expose it as an extension)
- Prompt Engineering: To stop the model from rushing into implementation, I've been trying a technique to force "analysis mode" using annotated pseudo-code.
Agent Development Kit
Google's Agent Development Kit is great for quickly scaffolding agents. I documented a few of the things I figured out when ramping up on the tool.
- Setup: The
initial setup involves
initializing a project with
uv, selecting a model, and running the local web interface. - Tooling: Agents rely on tools to interact with the outside world. I documented how to quickly add Python functions, such as a URL fetcher, to the agent.
Python and Data Visualization
I'm really excited how fast LLMs make writing one-off scripts to visualize data. I documented a few of the things I tried.
- Inline Dependencies: I adopted
uvto write single-file executable scripts that contain their own dependency definitions. - Data Analysis: I used the CLI to parse binary
.FITfiles from Garmin devices and generated scatter plots and ridgeline plots to visualize workout data. - Visual Prototyping: I used Gemini 3 and Nano Banana Pro to redesign data visualizations by uploading screenshots and iterating on the design.
I also used Gemini to deduce the prompt to generate Gemini's own Audio Overviews (podcast-style interviews).
Happy Holidays
After an eventful 2025, I'm looking forward to 2026! I'm taking a short break to enjoy some offline time. Wishing you all a great holiday!