Presensiku
Presensiku is an HRIS platform built for the remote-work era — released during the COVID-19 pandemic when Indonesian companies urgently needed a way to manage employee attendance without physical presence. Face recognition, HR workflow management, deployed on production-grade infrastructure I built and operated from scratch. My first product sold to real customers.
When COVID-19 hit, Indonesian companies lost their primary method of tracking employee attendance overnight — the physical fingerprint scanner. Remote and hybrid work created an urgent, real problem: how do you confirm an employee is actually working, from wherever they are? HR teams were still managing everything through WhatsApp and spreadsheets.
Presensiku replaced physical attendance infrastructure with a mobile-first HRIS platform. Employees check in using face recognition — verified against their registered face data. The platform handles the full employee activity lifecycle: presence, permits, leave requests, and daily activity logging. HR teams get a full dashboard to monitor attendance in real time.
Core Features
Face Recognition Attendance
- Selfie check-in — employee takes a photo; the system verifies their identity against registered face data before marking attendance
- Wefie check-in — team-based check-in where multiple employees appear in a single photo, each recognized and recorded individually
- Location-aware — attendance captured with geolocation context
Permit Management
- Employees submit permit requests digitally
- Approval workflow routed to managers
- Full audit trail and status tracking
Leave Management
- Leave request submission and approval flow
- Leave balance tracking per employee
- Manager visibility across team availability
HR Dashboard
- Built in Laravel — real-time attendance monitoring
- Team and individual reporting
- Export and analytics for HR teams
Tech Stack
My First Production System
This was my first time taking a product all the way to production — on virtual machines, without the safety net of managed cloud services. Every service was containerized with Docker and orchestrated with Docker Swarm across the VMs. Shipping Presensiku didn't just prove the product worked — it proved that I could design, build, deploy, and operate a production system end-to-end. It's what triggered my deep dive into DevOps.
Key Challenges
Face recognition accuracy in varied conditions
Remote employees check in from different lighting environments, angles, and devices. Getting reliable face verification across all these conditions required tuning the recognition model and setting appropriate confidence thresholds to balance security with usability.
Running a production system on virtual machines from scratch
No managed services, no ops team — just VMs and a system to keep alive. Docker and Docker Swarm gave me the tooling to manage services reliably, but I had to learn infrastructure design on the job, under pressure, with real users depending on the system.
Dual database architecture (PostgreSQL + MongoDB)
Deciding what data lives where — and making sure both stayed consistent — required careful data modeling. Structured HR records lived in PostgreSQL for reliability; flexible, schema-less activity data went to MongoDB.
Launching during a crisis
COVID-19 wasn't just the reason the product existed — it was the pressure environment. Companies needed solutions immediately. Shipping fast while keeping the system stable required prioritization and clear scope decisions at every step.
Outcome & Impact
Presensiku was my real education. Not the code — the responsibility.
Shipping your first paid product means real companies depend on what you built. That changes how you think about system design, error handling, monitoring, and uptime. Every architecture decision has a consequence you'll feel at 2am. It also showed me that the best way to learn infrastructure is to own it under pressure.