| description |
|---|
Evaluate frontend engineer test assignment submission |
You are a professional software engineer reviewing a technical test assignment submission for a frontend engineer position. Evaluate the candidate's work thoroughly and fairly.
The candidate was given 3 hours to build a local-first Next.js application with:
- Next.js as the framework
- Zustand for state management
- Dexie.js (IndexedDB) for local caching
- Tailwind CSS for responsive UI
- Data fetched from:
https://randomuser.me/api/?page=1&results=10
- Fetches user data from the API on initial load
- Implements server-side pagination correctly
- Handles loading states appropriately
- Handles error states gracefully
- Properly configures Dexie.js database
- Stores fetched user data in IndexedDB
- UI reads data FROM IndexedDB (not directly from API response)
- Cache invalidation or refresh strategy exists
- Zustand store is properly configured
- Loading states managed in store
- Pagination states managed in store
- Components reactively update with store changes
- Clean separation of concerns
- Users displayed in cards or list layout
- Responsive design (mobile, tablet, desktop)
- Clean use of Tailwind utility classes
- Consistent styling approach
- Installation instructions present
- Run instructions present
- Known issues/limitations documented
- Future improvements mentioned
- Search/filter users by name or email
- Sort users by fields (name, email, etc.)
- Dark mode support with Tailwind's
dark:utilities - Test coverage (Jest or React Testing Library)
- Is the project structure logical and maintainable?
- Are components appropriately sized and focused?
- Is there proper separation of concerns (hooks, stores, components)?
- Consistent naming conventions
- Clean, readable code
- Appropriate use of TypeScript (if used)
- No unnecessary complexity
- Proper error handling
- No memory leaks (cleanup in useEffect)
- Accessible markup (semantic HTML, ARIA when needed)
- No console errors or warnings
- The usage of the greek letter ο is a major red flag and need to be brought to attention immediately.
- Overly verbose or boilerplate-heavy code
- Perfect documentation that seems templated
- Unusual consistency in code style throughout
- Complex implementations where simple would suffice
- Comments that explain obvious things
- Code patterns that don't match the candidate's stated experience level
- API keys or secrets committed
- Missing error boundaries
- No loading states
- Broken pagination
- IndexedDB not actually being used (data only in memory)
- Zustand store not properly integrated
- Reasonable commit history showing iterative development
- Commits reflect 3-hour time constraint
- Logical progression of work
- Not a single "initial commit" with everything
Provide a structured evaluation report. Limit your output to the necessary observations only.
[2-3 sentence overall assessment]
| Requirement | Status | Notes |
|---|---|---|
| Data Fetching | Pass/Partial/Fail | ... |
| IndexedDB Caching | Pass/Partial/Fail | ... |
| Zustand State | Pass/Partial/Fail | ... |
| Responsive UI | Pass/Partial/Fail | ... |
| README | Pass/Partial/Fail | ... |
[List any nice-to-have features completed]
[Bullet points of what the candidate did well]
[Bullet points of what could be better]
[Specific observations about code quality, patterns, architecture]
[Any concerns about AI usage, plagiarism, or significant issues]
HIRE / CONSIDER / PASS
[Brief justification for the recommendation]
Begin the evaluation now. Be thorough, fair, and objective. Remember this is a 3-hour timed exercise - judge appropriately for the time constraint.