$ Hi, I'm
I'm Siroja — a backend engineer based in Yogyakarta. For the past 5 years I've built the parts of a product people never see but always feel: APIs that hold up under load, databases that stay quick when the data piles up, and the payment and auth flows a business can actually rely on. Lately, I've been wiring AI agents into that same backend.
// About
I've spent 5+ years in backend engineering — mostly Laravel (PHP), Node.js (NestJS, MedusaJS, Fastify), and .NET. I like the hard, quiet problems: a query that needs to go from five seconds to under a hundred milliseconds, a payment integration that can't afford to drop a transaction, an auth system a whole company logs in through. More recently I've been building AI agents and MCP integrations on top of that backend, so software can act on its own without turning into a black box.
REST APIs, microservices, and the boring-but-critical glue between them. I design services that stay modular as they grow and keep response times low when traffic isn't polite.
Indexing, query rewrites, materialized views, and Redis where it earns its keep. On one platform I cut a five-second query to under 100ms — the trick is measuring first, not guessing.
I connect LLMs to live data with MCP (Model Context Protocol) and agentic workflows — for semantic search, automated pricing, and back-office work. The goal is software that acts, with guardrails, not a demo that breaks in production.
I've shipped for teams in Malaysia, Singapore, the US, and Indonesia. Remote-first, async by default, and comfortable owning a slice of the system end to end.
// Stack
Day to day, this is what I build with. I'd rather go deep on a few things than collect logos — backend, data, and the AI layer on top.
// Experience
A few years of backend work across e-commerce, payments, recruitment, and internal platforms — here's where it actually landed.
// Case studies
A few builds where the architecture decision actually mattered — what was broken, what I did, and what changed.
A modular commerce platform where AI agents handle product search, pricing, and inventory sync across services — instead of a person doing it by hand.
The old platform couldn't search intelligently and needed someone to reconcile inventory across channels by hand. Data drifted out of sync and pricing opportunities slipped by.
I built a headless stack on MedusaJS with a Next.js storefront, then put AI agents in front of the product data through MCP — so the LLM could read live inventory for semantic search and set prices automatically, within limits.
A multi-vendor platform for industrial and consumer gas, with all the supply-chain and distribution complexity that implies.
Vendor management was clumsy and there was no real access-control model, which meant security gaps and order processing that kept getting stuck.
I rebuilt the backend with Laravel and Express, added granular RBAC, and wired in Firebase plus JNE so tracking and the supply-chain flow ran without babysitting.
A recruitment tool that reads job descriptions and scores candidates with agentic workflows and LLMs, so HR stops doing it line by line.
HR teams were spending more than 60% of their time manually parsing job specs and screening people — slow, and inconsistent from one reviewer to the next.
I built a pipeline that parses the JD, pulls out the real requirements, and scores candidates against them. Then I rewrote the analytics SQL so the dashboards stayed real-time.
An API layer built to serve millions of data points to busy mobile and web clients without timing out.
The legacy APIs took up to five seconds to return complex analytics, and clients were timing out waiting.
I moved the hot endpoints to Fastify, leaned on PostgreSQL indexing and materialized views, and put a deliberate Redis cache in front of the heaviest reads.
A single sign-on authority for a company's internal tools, built around security people would actually use.
Staff were juggling 10+ separate logins, and SMS OTP was expensive and flaky in some regions.
I built the SSO authority in Laravel and moved MFA delivery onto the WhatsApp Business API — which turned out about 3× more reliable and half the cost of SMS.
A lot of this work sits behind NDAs or private infrastructure. I can't always share the code, but I'm happy to walk through the architecture and the trade-offs over a call.
// Services
Most of my work falls into a few buckets. If your problem looks like one of these, we'll get along.
LLM agents, MCP integrations, and agentic workflows that do real work — semantic search, automated decisions, back-office tasks — with guardrails so they don't go rogue.
REST APIs and microservices that are documented, tested, and built to grow. Node.js, Laravel, or .NET — whichever fits the job.
Schema design that makes sense, plus the indexing, query rewrites, and caching to keep it fast as the data grows.
Payments, messaging, auth — the external services your product leans on, wired in cleanly so they don't become the thing that breaks.
When something's slow under load, I find the actual bottleneck — not the guessed one — and fix it. Profiling, caching, and sane horizontal scaling.
A second pair of eyes on your backend or AI plans — architecture reviews, code reviews, and honest advice on what to build and what to skip.
Tell me what you're building. I'll be straight with you about what it'll take and whether I'm the right person for it.
// Contact
Got a project, a role, or just a tricky backend question? The form goes straight to my WhatsApp or email — your pick.
I'm open to backend and AI roles, freelance architecture work, and the occasional 'can you make this faster' rescue job.
Currently taking on remote backend and AI work for 2026.