Testing & AI
Quality assurance and AI integration. Every project ships with tests. AI features use the provider that fits the task — OpenAI for breadth, Anthropic for depth, Vercel AI SDK to wire it into the UI.
Jest
The established testing framework for JavaScript. I use Jest on projects with existing test suites and when Vitest compatibility isn't guaranteed.
Vitest
My default for new projects. Vite-native, fast, and compatible with Jest's API. First-class TypeScript and ESM support.
Playwright
My go-to for end-to-end testing. Cross-browser, reliable, and powerful — tests real user flows across Chrome, Firefox, and Safari.
Cypress
I use Cypress on projects that already have Cypress suites, or when the team prefers its interactive test runner and dashboard.
OpenAI
GPT-4, DALL-E, embeddings, and function calling. I integrate OpenAI when the product needs text generation, classification, or semantic search.
Anthropic
Claude for tasks that need long context, careful reasoning, or safety-conscious AI. My preference for code generation and complex analysis.
Vercel AI SDK
Streaming AI responses in Next.js with a unified API across providers. Handles the tricky parts of real-time AI UI — token streaming, tool calls, structured output.
LangChain
I use LangChain for complex AI workflows — RAG pipelines, agent chains, and multi-step reasoning that go beyond single API calls.