As AI rapidly reshapes software development, developers are experimenting with tools to boost efficiency and creativity. Fredrik Meyer, a Kotlin and Next.js developer, recently chronicled his evolving AI toolkit, providing a candid look at what works—and what doesn't—in real-world scenarios. His experiments reveal a shift from traditional methods to AI-driven workflows, emphasizing practical applications over hype.

The Daily AI Arsenal: From Quick Queries to Deep Analysis

Meyer's setup starts with Raycast AI, bound to his Mac's TAB key for instant access. 'I use it a lot for quick questions that don’t require a conversation,' he notes, citing examples like PostgreSQL syntax queries that outpace Google searches. However, he points out limitations, such as its struggle with multi-line code inputs.

For more extended interactions, ChatGPT serves as a go-to for everything from recipe ideas to word explanations. But the standout for Meyer is Claude, particularly for data-heavy tasks. Using his Garmin watch data exported to SQLite, Claude generated insightful visualizations like this heart-rate analysis:

Article illustration 1

Screenshot showing Claude's artifact creation for health data (Credit: Fredrik Meyer)

Meyer pushed further with Claude Code, employing R and LaTeX to explore correlations between sleep quality and heart rates. The resulting plot revealed clear patterns: poor sleep elevates next-day heart rates, and vice versa.

Article illustration 2

Boxplot visualizing sleep score vs. heart rate, generated via Claude Code (Credit: Fredrik Meyer)

Agentic AI and Offline Power-Ups

In his IDE, Meyer leverages IntelliJ's Junie, an early agentic AI that assists with complex coding tasks like learning OpenGL or writing integration tests. 'It understands the Java ecosystem well,' he observes, though he laments its inability to browse the web or use IntelliJ’s refactoring tools, leading to outdated library references.

For offline efficiency, Simon Willison's llm CLI tool shines. Meyer uses it to analyze daily work logs—e.g., summarizing top tasks from his notes—and for quick code snippets without internet access. 'It’s slower but invaluable for recalling standard library functions or awk syntax,' he says.

Lessons from the Trenches: Where AI Adds Value (and Where It Doesn’t)

Meyer’s trials underscore AI’s strengths in augmenting—not replacing—developer intuition. He champions it for:
- Code review and bug spotting, where it acts as a vigilant pair programmer.
- Writing boilerplate code, saving hours on repetitive tasks.
- Data exploration, as seen in his Garmin analysis, where AI rapidly surfaces insights from raw datasets.

Conversely, he warns against overreliance:
- Big, ambiguous tasks often yield incoherent results without tight constraints.
- Prose generation produces 'soulless' text that lacks authenticity.
- Illustrations can be hit-or-miss, requiring heavy human refinement.

The Evolving Developer Workflow

Meyer’s journey highlights a broader trend: AI is becoming a seamless layer in the developer stack, yet its effectiveness hinges on targeted, context-aware use. As he eyes future experiments with tools like Emacs' gptel or JetBrains' Koog, his key takeaway resonates: AI excels as a copilot for the mundane, freeing developers to focus on innovation—but it demands skepticism and boundaries. For engineers navigating this landscape, Meyer’s pragmatic approach offers a roadmap: integrate incrementally, validate rigorously, and always keep the human in the loop.

Source: Adapted from Fredrik Meyer's blog post at fredrikmeyer.net