All Work
Backend EngineeringHR TechComputer Vision

Presensiku

RoleBackend Developer · System Architect
Year2020
StatusShipped · Live in Production

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.

The Problem

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.

The Solution

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

Backend APIPython — core business logic, face recognition processing
DashboardLaravel (PHP) — HR admin interface and reporting
DatabasePostgreSQL + MongoDB — structured HR data + flexible activity logs
File StorageAWS S3 — employee photos, attendance selfies/wefies
ContainersDocker — containerized services for consistent deployment
OrchestrationDocker Swarm — multi-container orchestration across VMs

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

First product I shipped to paying customers in the market
Launched during COVID-19 — directly addressed a real, urgent problem faced by Indonesian companies
Validated the full tech stack: Python backend, Laravel dashboard, PostgreSQL + MongoDB, S3, Docker + Docker Swarm
Became the foundation that pushed me into DevOps — Docker, container orchestration, and production operations
Proved I could own an entire product: design, backend, infrastructure, deployment, and operations — solo
What I Learned

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.