COTEF
A semi-annual staff review still run by hand, through files and email. Solo build of a Laravel web platform covering the whole flow: self-assessment, manager review, score calculation, and a PDF sent automatically to the right person.
- Client
- COTEF consulting firm
- Role
- Full-stack development, solo
- Duration
- 6 months for V1 (2023), evolving ever since
- Stack
- Laravel 10, PHP, MySQL, job queues
- Team
- Just me, sole developer on the project
A semi-annual review
still run by hand
Twice a year, the COTEF consulting firm reviews its entire staff. The process ran on files shared by email, filled in by hand, cross-checked case by case depending on who was reviewing whom.
The need wasn't a simple online form: two paths run on the same questionnaire. The employee self-assesses, their direct manager reviews them in turn, and both results have to converge into a single score, comparable across departments.
The firm also needed to keep control over who reviews whom. The reporting logic (which employee belongs to which manager, which manager to which department) changes regularly and couldn't stay hardcoded.
One flow,
three access levels
The app separates three roles: administrator, reviewing manager, reviewed employee. Each gets their own dashboard and permissions.
The questionnaire runs across several steps, scored 0 to 4 per item, with automatic calculation of the final score. Once a cycle closes, each result is generated as a PDF and emailed out with no manual step.
To handle the send volume (review cycles, PDFs, password resets), emails run through a job queue. Every message gets processed reliably, even under load or after a temporary failure.
The business logic, who reviews whom and which department groups which employees, lives in a single layer of the codebase. The firm can now change its org structure without a developer touching the rest of the app.