Welcome! This is a technical interview project based on the T3 Stack, designed to assess your skills in modern full-stack development. The project is scaffolded for you to focus on real-world tasks, bug fixes, and feature implementations.
This project simulates a real enterprise dashboard, including user management, project tracking, metrics, and activity logs. You'll encounter realistic bugs, performance issues, and feature requests—just like in a real engineering team.
Tech Stack:
-
Clone the repository and install dependencies:
pnpm install # or npm install -
Start the development server:
pnpm dev # or npm run dev -
Environment Variables:
Copy.env.exampleto.envand fill in any required secrets.
You'll find your tasks in the answers branch in tasks.md. Each ticket simulates a real feature, bug, or performance issue. Please:
- Commit regularly and open a PR for each ticket using the format:
<conventional_type>/ticket_id/friendly_name
Example:feat/TECH-002/dashboard-stability - Reference the ticket in your PR description.
- Focus on code quality, maintainability, and clear commit messages.
- Networking: Optimize data fetching, pagination, and error handling.
- Performance: Improve load times and rendering efficiency.
- Layout & UI: Enhance navigation, responsiveness, and user experience.
- Error Handling: Standardize and improve error management across the app.
See tasks.md in the answers branch for full details and acceptance criteria.
You're encouraged to:
- Investigate and fix bugs as you encounter them.
- Use your debugging skills to understand backend/frontend data shape mismatches and effect dependencies.
- Bonus points for identifying and fixing issues not explicitly listed!
Note: There's a thought.md file in the answers branch that contains some hints and known issues. While you shouldn't look at it while working on the tasks (as it contains spoilers), feel free to check it out after you're done to compare your solutions!
- Keep it simple: Start with the provided scaffolding and add only what's necessary.
- Be thorough: Handle loading, error, and empty states gracefully.
- Be efficient: Avoid unnecessary network requests and excessive renders.
- Be user-friendly: Ensure the UI is intuitive and responsive.
- Open a PR for each completed ticket.
- Ensure your code is clean, well-documented, and tested.
- If you have questions, document your thought process in your PR.
Good luck, and have fun building!