Skip to content
jomariabejo // datacenter boot
006%loading

powering on server racks…

Philippines · Remote

Jomari Abejo

Full-Stack Software Engineer

I design, build, deploy, secure, and monitor enterprise software — always from the perspective of the person who has to use it.

I always try to see the system from the user’s perspective.

Flagship system

MotorPH Enterprise

An all-in-one HR, payroll, recruitment, CRM, and inventory platform built for Philippine businesses.

drag to rotate

Runs payroll from approved time & attendance data, computes SSS, PhilHealth, Pag-IBIG, and BIR withholding automatically, and generates the government forms — with recruitment, CRM, and inventory in the same system. Self-hostable: React frontend, Spring Boot (Java 21) backend, PostgreSQL, Docker Compose.

Role types (RBAC)
7
Product modules
6
E2E test cases
500+
Gov’t forms generated
8

Modules on the monitors

Ordered by impact and sized on the golden ratio — the bigger the tile, the more of the business it runs.

  • Payroll

    Runs from approved attendance — overtime, 13th month, deductions.

  • HRIS

    Employee records, departments, positions, leave & overtime.

  • Attendance

    Timesheets feed payroll; no more spreadsheet reconciliation.

  • Employee Management

    Self-service portal, profiles, payslips, reimbursements.

  • Role-Based Access

    Seven roles with role-switching, guarded routes, audit trails.

  • Reporting

  • Government Compliance

  • PDF Generation

  • Analytics

Feedback

What using MotorPH feels like

Voices from the people who run payroll, HR, and compliance on it every day.

Payroll used to be three days of spreadsheet reconciliation. With attendance feeding straight into the run, it’s a few hours — and the SSS, PhilHealth, and Pag-IBIG figures come out right the first time.

Payroll OfficerAuto-parts SME
Deployment bay

I don’t write “deployment” — I show it

Every change travels the same path from my editor to a user in production. Watch the packets flow.

  1. Developer

    stage 1

    commit + open PR

  2. GitHub

    stage 2

    source of truth

  3. GitHub Actions

    stage 3

    test · scan · build

  4. Docker Build

    stage 4

    multi-stage image

  5. Registry

    stage 5

    tagged & pushed

  6. Linux VPS

    stage 6

    compose up -d

  7. Nginx

    stage 7

    TLS + reverse proxy

  8. Users

    live

    live in production

Runs on GitHub Actions — Playwright E2E, CodeQL, and gitleaks gate every push before a multi-stage Docker image ships to a Linux VPS behind Nginx.

Monitoring wall

Knowing production is healthy — before users tell me

Health checks, metrics, and logs are how I run software after it ships. This is a representative operations view of the stack behind my systems.

CPU Usage

34%

Memory

61%

Network I/O

128Mb/s

Requests

940/min

p95 Latency

180ms

Error Rate

0.2%

Health checks

  • apihealthy
  • webhealthy
  • postgreshealthy
  • nginxhealthy

Live log tail streaming

INFOGET /api/payroll/runs 200 · 42ms
INFOPOST /api/auth/login 200 · role=HR_ADMIN
INFOflyway: schema up to date (V88)
WARNslow query 812ms · report.alphalist — cached
INFOpayslip.pdf generated · 128 employees
INFOhealthcheck · api web db nginx = UP
Security room

The application defends itself

Security isn’t a checkbox at the end — it’s designed into every layer. Each principle below maps to something concrete in my stack, not a slogan.

HTTPS / TLS

Encrypted transport end to end.

TLS terminated at Nginx in front of every service.

Authentication

Prove who you are.

Spring Security filter chain with hashed credentials.

JWT

Stateless, signed sessions.

Short-lived bearer tokens via auth0 java-jwt.

Authorization

Prove what you may do.

Guarded routes + method-level checks per permission.

RBAC

Least privilege by role.

7 roles with role-switching and per-route gating.

Password Hashing

Never store plaintext.

BCrypt (salted, adaptive) through Spring Security.

Input Validation

Trust nothing from the client.

Jakarta Bean Validation on the API, Zod on the client.

SQL Injection Prevention

No string-built SQL.

Parameterized JPA/Hibernate queries only.

XSS Prevention

Escape by default.

React auto-escaping; no untrusted dangerouslySetInnerHTML.

OWASP Top 10

A checklist I design against.

Audit trails, CORS allowlist, secret scanning in CI.

Designed against the OWASP Top 10 · secrets scanned in CI · audit trails on sensitive actions
SEO laboratory

Discoverable, fast, and accessible by design

Growth engineering is part of the craft. This very page is built to hit these numbers — real HTML for crawlers, streamed 3D for humans.

98

Performance

target 95+

100

Accessibility

target 100

100

Best Practices

target 100

100

SEO

target 100

Core Web Vitals

  • LCP

    target < 2.5s

    1.8s
  • INP

    target < 200ms

    90ms
  • CLS

    target < 0.1

    0.02

What ships on every page

  • Server-side rendering & static generation
  • Semantic HTML with a proper heading outline
  • JSON-LD structured data (Person, WebSite, Projects)
  • Open Graph & Twitter cards
  • Dynamic sitemap.xml & robots.txt
  • Canonical URLs
  • Image & font optimization
  • Code splitting & lazy 3D islands
  • Crawlable content outside the canvas
Product thinking

How I think, not just what I use

Tools change every year. The way I approach a system is the constant — and it always starts with the person on the other side of the screen.

01

See it from the user

I start from the person doing payroll on a deadline, not the entity diagram. The system exists to make their day shorter.

02

Understand the business

Philippine compliance isn’t a feature flag — it’s the whole reason. I model the real rules (SSS, PhilHealth, BIR) before touching UI.

03

Clean architecture

A modular monolith with layered packages: clear boundaries, DTOs at the edges, domain logic that doesn’t leak into controllers.

04

Built to maintain

Small reviewable PRs, typed contracts, and tests that describe behaviour so the next engineer (often future me) moves fast.

05

Production readiness

Health checks, migrations, backups, audit trails, and a deploy I can run at 2am — because I’m the one on call.

06

Performance as UX

Server-side grids, code splitting, adaptive rendering. Fast is a feature; slow is a bug users feel every day.

Project workstations

Systems I’ve designed and shipped

Pick a workstation to boot it up — each is a real project with a live link or repository.

MotorPH Enterprise

flagship

All-in-one HR, payroll & compliance for PH businesses

Payroll runs from real attendance, computes SSS/PhilHealth/Pag-IBIG/BIR, and generates the government forms — plus recruitment, CRM, and inventory. Self-hosted, multi-role, production.

  • React
  • Spring Boot
  • PostgreSQL
  • Docker
  • Nginx
  • Playwright

More on GitHub.

The journey

From first line of Java to production systems

A short version of how I got here — and where I’m pointed next.

  1. Startshipped

    BSIT student

    Mapúa Malayan Digital College. First lines of Java; fell for backend systems.

  2. 2023shipped

    Learning Java, deeply

    Spring Boot, Hibernate, REST, and the discipline of modelling a real domain.

  3. 2023–24shipped

    Building enterprise systems

    Designed & built MotorPH Enterprise — payroll, HR, compliance, recruitment, CRM, inventory.

  4. 2026shipped

    Internship

    FilPass — Full-Stack Engineer Trainee: real tickets, PR review, QA handoff, sprint deadlines.

  5. Nownow

    Deploying production apps

    Self-hosting on Docker + Nginx + Linux VPS, one isolated stack per client.

  6. Career Goalsnext

    Distributed systems & DevSecOps

    Event-driven microservices, cloud, observability, and AI-assisted engineering.

Technology wall

The stack, and where I’ve actually used it

Tap any technology to see how it shows up in my work — no filler, just the tools I reach for and why.

React

Frontend

MotorPH’s SPA (30+ server-side AG Grid tables) and this portfolio.

End of the aisle

Let’s build software your users actually enjoy

I always try to see the system from the user’s perspective.” If that’s the kind of engineer your team needs, I’d love to talk.

Looking ahead

AI is changing how software is designed, developed, tested, and deployed. I’m focused on mastering the engineering behind that transformation—from backend systems and cloud infrastructure to AI-powered developer workflows.

If you’re looking for someone who learns relentlessly, ships real products, and embraces the future of software engineering, let’s build something together.

© Jomari Abejo — Full-Stack Software Engineer

Built with Next.js · React Three Fiber · Tailwind CSS · read the blog →