Build a Code Review Assistant - an AI-powered tool that helps developers get instant feedback on their code snippets. Think ChatGPT, but specifically designed for code review.
We're looking for founding engineers who can:
- Ship quality products quickly
- Make smart architectural decisions
- Handle ambiguity and make product calls
- Debug and problem-solve independently
- Write clean, maintainable code
Build a chat interface where users can:
- Paste code snippets and ask for review/feedback
- Have a conversation with an AI reviewer about their code
- See streaming responses as the AI types (not all at once)
UI/UX Requirements:
- Clone the ChatGPT interface - we want to see your attention to detail and UI taste
- Match the look and feel: message bubbles, layout, spacing, typography
- Show streaming text character-by-character (like ChatGPT does)
- Clean, modern, polished interface
- Thoughtful micro-interactions and states
- Specifically think of how the scroll animation works (message is sent, goes perfectly to top -> make it easier for users to read)
Technical Requirements:
- Use the Vercel AI SDK for LLM integration
- Implement proper TypeScript types throughout
- Set up a clean service layer for AI interactions (don't put everything in components)
- Create an API route to handle the AI requests
- Handle error states gracefully
What We're Looking For:
- UI that looks and feels like a real product (not a prototype)
- Clean separation of concerns (components, services, API routes, types)
- Thoughtful architecture decisions
- Proper error handling
- Type safety
- Your taste in UI/UX details
Add ONE feature that would make this tool significantly more useful for developers. This is intentionally open-ended - we want to see your product taste.
Some ideas to spark thinking (don't feel limited to these):
- Code syntax highlighting (with proper color schemes)
- Language detection
- Copy-to-clipboard for code blocks
- Conversation history/persistence
- Regenerate response button
- Multi-code-block support in responses
- Something else you think would be valuable?
What We're Looking For:
- Product intuition - what would actually be useful?
- Implementation quality of your chosen feature
- Polish and attention to detail
- How well it integrates with the overall UI
We want to see how you:
- Identify problems
- Debug systematically
- Handle API errors
- Manage edge cases
Common issues to watch for:
- Streaming might not work correctly
- Error handling might be missing
- Environment variables might be misconfigured
- Types might be incomplete
- ✅ UI that resembles ChatGPT - clean, modern, polished
- ✅ Working chat interface with streaming responses
- ✅ Clean service layer (not all logic in components)
- ✅ Proper TypeScript types (no
anyunless justified) - ✅ API route for AI interaction
- ✅ Error handling (network errors, API failures, etc.)
- ✅ One additional feature that shows product sense
- Smooth animations and transitions
- Loading states and user feedback
- Responsive design
- Dark mode (if you have time)
- Code comments where helpful
- A brief note on what you'd do with more time
- Next.js 14+ (App Router)
- Vercel AI SDK (
aipackage) - OpenAI or Anthropic (your choice)
- TypeScript
- Tailwind CSS (already configured)
npm install ai openai
# or if using Anthropic: npm install ai @anthropic-ai/sdkCreate a .env.local file:
OPENAI_API_KEY=your_key_here
# or
ANTHROPIC_API_KEY=your_key_herenpm run devWe'll be looking at:
- How close is the UI to ChatGPT's polish?
- Attention to detail (spacing, typography, colors, animations)
- Feature choice and implementation
- Overall "product feel"
- Your design taste and decisions
- Clean separation of concerns
- Proper service layer
- Logical file structure
- Reusability
- TypeScript usage
- Error handling
- Code clarity
- No obvious bugs
- How you handle bugs/errors
- Debugging approach
- Edge case handling
- Technical decisions
- ✅ Look at ChatGPT's interface for inspiration (spacing, colors, layout)
- ✅ Balance UI polish with technical implementation
- ✅ Make architectural decisions and stick with them
- ✅ Write types as you go (don't leave them for the end)
- ✅ Test your error states
- ✅ Make product decisions confidently
- ✅ Show your taste in the details (animations, hover states, etc.)
- ✅ Leave comments where your thinking isn't obvious
- ❌ Ignore the UI - it's important for this role!
- ❌ Build a prototype-looking interface
- ❌ Over-engineer (2 hours is tight!)
- ❌ Ignore errors or edge cases
- ❌ Use
anyeverywhere - ❌ Put all logic in components
- 15 min: Fix bugs in API route + service layer
- 45 min: Chat interface with streaming (clone ChatGPT UI)
- 25 min: Your product feature
- 20 min: Testing, error handling, edge cases
- 15 min: Polish UI details and final review
We'll review your code together and discuss:
- Your architectural decisions
- Your product feature choice
- Trade-offs you made
- What you'd do differently with more time
If anything is unclear or you hit a blocker, please ask your interviewer! We want to see how you work, not watch you struggle with ambiguous requirements.
We've provided some basic starter code to help you get going faster. However, there are intentional bugs and issues that you'll need to identify and fix. This is part of the test!
src/app/page.tsx- Basic chat interface (has issues!)src/app/api/chat/route.ts- API route for AI (incomplete)src/services/ai-service.ts- Service layer skeleton (needs work)
We won't tell you exactly what's broken - that's for you to discover! But here are hints:
🐛 Streaming - The responses should stream in real-time, not all at once
🐛 Error Handling - What happens when things go wrong?
🐛 Types - Are the types strict enough?
🐛 State Management - Does the UI update correctly?
🐛 Service Layer - Is it actually being used properly?
🐛 API Implementation - Is the streaming being handled correctly?
Part of being a founding engineer is debugging unclear issues - show us your process!
npm install ai openaiCreate .env.local:
OPENAI_API_KEY=your_key_herenpm run devTry sending a message. What doesn't work? What could be better?
When you're ready, start fixing and building! Remember: we're looking for clean code, solid architecture, AND good UI taste. All three matter for this role.
Good luck! 🚀