I get asked what AI tools I use. Here’s the actual list and what I use each one for.
Cursor
My main development environment. It’s VS Code with AI baked in — not just autocomplete, but a conversation layer about your code.
What I actually use it for:
Tab completion with context. Better than GitHub Copilot because it understands more of your codebase. Completes whole functions, not just lines.
Inline editing with natural language. Select a function, describe what should change. Cursor rewrites it. I review, tweak if needed, accept.
Chat with codebase context. “What does this method return when the user is admin?” Cursor answers about your actual code, not generic theory.
Generating files with context. “Create a test file for this controller following the same patterns as the existing tests.” It looks at your real test files and matches the style.
Takes about two weeks to develop good habits. After that, I don’t want to go back.
Claude (Anthropic)
My go-to for extended conversations about complex problems.
Architecture discussions. “I need to add multi-tenancy to this application. Here’s the current database structure and the requirements. What are my options?” Claude walks through trade-offs in a way that helps me think, not just code.
Code review. Paste a significant change and ask “what could go wrong with this?” It finds things I missed. More importantly, it makes me articulate why I disagree when I do.
Documentation writing. Technical specs, API docs, README files. I draft in bullets and ask Claude to write prose.
Debugging help. Describing a bug in detail and asking for hypotheses. Sometimes this works immediately. Sometimes it just helps me organize my thinking.
I use the Claude API for some of this through integrations, and Claude.ai directly for conversational work.
GitHub Copilot
Still in my toolkit for specific cases even though Cursor overlaps. Copilot’s useful in contexts where I’m not in Cursor — editing files through the GitHub web interface, quick work in other editors.
The inline suggestion model is good for code that’s following an obvious pattern where I just need the words filled in. Less useful than Cursor for anything requiring full codebase understanding.
n8n with AI Nodes
For client work involving workflow automation, n8n is my primary tool. It has native AI integration — you can run OpenAI or Anthropic models as part of automation workflows.
Use cases I’ve built:
- Email parsing with AI to extract structured data from unstructured messages
- Invoice processing: OCR the document, AI extracts fields, structured data flows into accounting
- Support ticket classification and routing
- Content summarization pipelines
n8n’s visual workflow builder makes AI integration accessible to clients who want to modify their automations over time without needing a developer.
OpenAI API
For custom integrations that go into client applications. When I’m building a Rails app that needs AI capabilities, I typically use the OpenAI API directly (or Anthropic’s) with a service object that abstracts the provider:
class AiService
def self.classify_document(text)
# Implementation behind abstraction layer
# Makes it easy to switch providers
end
end
The abstraction matters — AI providers and their capabilities are changing fast. Locking directly to one provider’s API makes switching expensive.
What’s Not in My Toolkit (and Why)
AI-generated images for client work. Not because the tools aren’t capable, but because design decisions should be made deliberately. AI-generated assets are fine for drafts and exploration. Production design needs human intent behind it.
AI for database migrations. I draft these carefully myself. A database migration that’s wrong can destroy data. Not a place for AI to take the lead.
AI for security configuration. Authentication setup, authorization rules, secret management — I do this by the book, with AI as a reference assistant at most.
Autonomous AI agents for production tasks. Not yet. The reliability isn’t there for unsupervised code deployment or database operations. AI helps me work. It doesn’t work independently on my clients’ production systems.
The Pattern Across All of These
Every tool in my AI toolkit is used by me, not instead of me. I’m the senior developer on every project. AI helps me be faster and catch more things. The judgment, the responsibility, and the accountability remain human.
That’s not a limitation — it’s the right model for production software that businesses depend on.
Have questions about how AI-assisted development fits your project? Let’s talk.