Software Developer Intern
at Redime.

I built the first version of StaffPlus from scratch, the beta the attendance product later grew out of. As its only developer I shipped the whole stack (Vite + React + TypeScript + Chakra UI on the front end, Laravel + MySQL on the back end) and evolved it into a foundation the growing team could build on.

Tech-stack I’ve used here

Challenges I faced

  • Nothing to build on: The product started from an empty repository, and every decision became tomorrow’s foundation.

  • One developer, the whole stack: Front end, API and database at once, from first screen to last migration.

  • Usable without training: Employees would check in daily with no walkthrough, so the flow had to be foolproof.

  • Learning while shipping: The professional stack (TypeScript, Chakra UI, Laravel + Sanctum) was new to me, and the beta was the training ground.

Achievements

  • From scratch to working product. Authentication, employees, offices, attendance check-in and reports, built practically solo.

  • ~90% of the beta. Nearly all its code, and 100% of the front end, is mine.

  • Biometric identification, integrated. A Python identification service wired into the check-in flow through the Laravel API.

  • A foundation, not a prototype. Typed services, validated forms and clear modules the team could build on.

Beta architecture

The StaffPlus beta, end to endBoth web surfaces talk to a single Laravel API that handles authentication, data and report exports, and delegates identity checks to a Python service.Check-inshared site deviceAdmin panelemployees · officesattendanceLaravel APIPHP 8 · Sanctum tokensIdentificationPython serviceMySQLone schemaReportsXLSX exportidentity check

My approach

  • Structure before scale:

    • Front end organized by concern: services, models, validators, hooks, state.
    • One typed API service per domain, mirroring the Laravel resources.
  • Validate at the edges: Formik + Yup on every form, with server errors shown where the user typed.

  • Ship vertical slices: Every feature went from screen to endpoint to table in one pass.

  • Design for zero training: For most users the check-in screen was the whole product: one clear path, immediate feedback.