Thinkspedia dashboards
Three dashboard products in five months, mid-migration.
Interface
Representative interface stills.
- Role
- Frontend Developer Intern
- Organisation
- Thinkspedia
- Period
- Mar 2024 – Jul 2024
- Stack
- Next.js
- TypeScript
- Tailwind
- MVVM
Short explanation
Three dashboard products in five months, built while the codebase they lived in was being moved onto Next.js. Two attendance systems with different owners, and a monitoring tool for a political voting process.
- HRIS — internal employee attendance.
- AULIA — a client-facing attendance system.
- Digital Politik — monitoring for a political voting process.
- All three delivered alongside a migration to Next.js, TypeScript and Tailwind.
Building during a migration
This is the situation most engineers actually meet: the stack is changing under you and the roadmap doesn't pause for it. Every feature is a decision about which version of the codebase to build it in, and getting that wrong means writing it twice.
The rule I settled on was to build new surfaces on the new stack and leave working old ones alone until there was a reason to touch them. Migration for its own sake is how you spend a quarter and ship nothing.
HRIS attendance
Internal — employee attendance and reporting.
HRIS attendance dashboard
AULIA
The same problem, a client's version of it.
AULIA client attendance dashboard
Digital Politik
Monitoring a live voting process.
The one with real stakes. A monitoring tool is only worth anything while the thing it monitors is happening, which makes reliability a deadline rather than a quality.
Digital Politik voting monitor
Working inside MVVM
The codebase used MVVM across project categories, which was not the architecture I'd have chosen and was also not mine to choose. Learning to build well inside someone else's structure — rather than quietly rewriting it toward the one you like — turned out to be a more useful skill than having opinions about it.
Built inside a company, so the live product isn't public. The stills on this page are representative, not captures of the real system. Happy to walk through the architecture and the decisions in a conversation.

