Full-Stack Software Engineer  /  Websites · Online Stores · Custom Systems

Websites, online stores and the systems that run them — built end to end.

Full-stack engineer: I design the interface your customers actually use and build the backend behind it — company profiles, landing pages, online stores and custom business systems, shipped and kept running.

Contact me
Agil Abdulhadi Mustofa
Jakarta, Indonesia · GMT+7 Available for projects
Rp 392.9B
Wallet top-up GMV processed
577,596
Provisioning orders processed
12,427
Ad accounts under management
6YRS
Shipping production systems

Selected work

How I work

Business problem first, architecture second, code last.

Most systems fail on the seams — the third-party API that rate-limits, the ledger that drifts, the deploy nobody can reproduce. I plan for those before writing the first handler.

01
Model the domain, not the screens
Wallets, ledgers and provisioning states get designed as invariants that hold under retries and partial failure.
02
Treat third-party APIs as hostile
Rate limits, token expiry, webhook replays and silent schema changes are handled at the boundary, with idempotency and reconciliation behind it.
03
Make operations boring
Containerised deploys, documented runbooks and metrics on the paths that carry money — so the team can run it without me in the room.
Open for freelance & contract work

Need a website, a store, or a system built properly?

agilabdulhadi@gmail.com
About

Six years building the front and the back of working software.

I am a full-stack Software Engineer with 6+ years of experience building websites, web applications and business platforms — from company-profile sites and online stores to Go services orchestrating advertising spend at scale.

On the front end that means clean, responsive interfaces and storefronts a non-technical team can actually update. On the back end it means monolithic applications, microservices, API integrations, cloud infrastructure and optimisation — most recently a multi-tenant advertising platform with wallet and ledger design, Meta and TikTok Marketing API integration and the documentation that lets a team operate it.

What I optimise for is trust: the page loads fast, the checkout works, the money reconciles — and your team can run it without me in the room.

Agil Abdulhadi Mustofa
RoleSoftware Engineer
FocusBackend · API · Infrastructure
BasedIndonesia · GMT+7
StatusAvailable for projects

Engineering philosophy

01

Correctness over cleverness

A ledger with 672,177 mutation rows has one job: never lose a cent. Boring, auditable code wins.

02

Design for the failure path

Retries, idempotency keys, dead letters and reconciliation jobs are part of the feature, not a follow-up ticket.

03

Architecture is a business decision

Monolith or microservices is a question about team size, deadlines and cost — not about fashion.

04

Write it down

Technical planning docs, sequence diagrams and runbooks are how a system outlives the engineer who built it.

Career timeline

2025 —
Software Engineer · Melangkah.id
Backend architecture, Go services, Meta & TikTok Marketing API, wallet and transaction systems, cloud infrastructure.
2023–2025
Software Engineer · Orderfaz
Digital marketing platform, Facebook Marketing API, financial management, microservices on AWS.
2021–2023
Backend Developer · Geoff Max
Warehouse management, POS application, inventory workflow, Laravel monoliths.
2020
IT Staff · Politeknik Manufaktur Negeri Bandung (PMS-ITB)
Apprenticeship — inventory and student-data application, network configuration, hardware maintenance.
Experience

Four roles, one throughline: production systems.

Campus IT, warehouse floors, marketing platforms, advertising infrastructure. Every role has been about the same thing — the part of the product that must not break.

2025 — Present
Current role

Software Engineer

Melangkah.id ↗Advertising management SaaS

Own the backend architecture of a multi-tenant advertising platform: 12,427 ad accounts provisioned, 5,319 business managers managed, Rp 392.9 B of wallet top-ups processed and 440,179 spending-limit changes pushed to the Meta and TikTok APIs.

Backend architecture design & technical planning
Go service development & code review
Meta & TikTok Marketing API integration
Wallet, ledger and transaction systems
Cloud infrastructure management on GCP
Documentation, runbooks and team enablement
GoPostgreSQLRedisDockerGCPKong GatewayMeta Marketing API
2023 — 2025
2 years

Software Engineer

Orderfaz · Digital marketing platform

Built platform features across marketing operations and finance, moving parts of a monolith into services and running them on AWS.

Digital marketing platform development
Facebook Marketing API integration
Financial management system
Microservices architecture & messaging
AWS infrastructure & deployment
Node.jsLaravelMySQLRedisAWSFacebook Marketing API
2021 — 2023
2 years

Backend Developer

Geoff Max · Distribution & retail operations

Internal enterprise applications used daily by warehouse and store staff — where a bug means a stock count is wrong and a shipment goes out short.

Warehouse management system
Point-of-sale application
Inventory & purchase-order workflow
Laravel monolithic applications
LaravelMySQLLinux ServerNginx
Jan — Apr 2020
4 mos · Apprenticeship

IT Staff

Politeknik Manufaktur Negeri Bandung (PMS-ITB)Bandung, Indonesia · On-site

First hands-on role: internal tooling for a campus that needed its inventory and student records out of spreadsheets, alongside the network and hardware the staff depended on daily.

Application development — inventory transfer & student data management
Computer network configuration & management
Hardware & software maintenance
Network configuration documentation & reporting
Troubleshooting connectivity, performance & security issues
Hardware & network repair
Want the detail behind these roles?
Request CV (PDF)
Case studies

Problem, architecture, impact — with the numbers.

Three systems I built or led. Figures are pulled from production as of July 2026; some internal identifiers are omitted.

01

Melangkah.id

melangkah.id ↗ Advertising management SaaS platform

A platform for managing advertising accounts, budgets, business assets and marketing operations — performance marketers rent ad accounts, top up a wallet, and push budget to Meta and TikTok without touching a Business Manager.

Rp 392.9 B
Top-up GMV processed
92,954
Successful top-ups
672,177
Ledger mutation rows · ~1,718/day
440,179
Spending-limit calls to Meta / TikTok
Problem

Advertising operations were run by hand: balances tracked in spreadsheets, ad account budgets adjusted account-by-account inside Meta, and every top-up reconciled manually against three payment channels.

At a few hundred accounts it was slow. At 12,000+ accounts and ~1,000 orders a day it was impossible — and a mis-set spending limit burns client money in minutes.

Solution

A Go backend behind an API gateway, split by domain: identity, wallet & ledger, ad-account inventory, provisioning orchestration and insights sync.

Every money movement is a double-entry ledger row; every provisioning action is an idempotent order with a state machine, retried against the platform APIs and reconciled by scheduled jobs.

My role

Backend engineer on the platform: architecture and data model, gateway and infrastructure decisions, the wallet and provisioning services themselves, and the technical documentation the team works from.

GoPostgreSQLRedisDockerGCPKong GatewayREST APIWebhook
Architecture — request & money flow
Simplified. Hover a node.
Clients
Web dashboard
Affiliate portal
Internal ops tools
Edge
Cloudflare · WAF, DNS
Kong Gateway
auth, rate limit, routing
Services · Go
Identity & OAuth
Wallet & ledger
Ad-account inventory
Provisioning orchestrator
Insights sync worker
Data
PostgreSQL
ledger, orders, inventory · 4.5 GB
Redis
cache, locks, job queue
Scheduled reconciliation
External
Meta Marketing API
TikTok Marketing API
Xendit · MONIT · VA
3 payment gateways, webhooks in
Money path
Gateway webhook → idempotent top-up → double-entry ledger row → balance projection. Nothing mutates a balance directly.
Provisioning path
Order → balance hold → platform API call with retry/backoff → state converges, or the hold is released.
Throughput
Avg 1,033 orders/day, peak 1,313 — sustained on a container fleet with no manual intervention.
Impact
Rp 398.5 B of ad budget provisioned through the platform
Impact
Manual account/budget handling replaced by 577,596 automated orders — ops headcount stayed flat while inventory grew to 22,550 accounts.
Impact
Rp 8.57 B of platform fee revenue booked on a ledger that reconciles across three payment gateways.
Impact
6,354 registered users and 3,649 affiliates paid across 30,043 commission transactions.
02

Geoff Max

geoff-max.com ↗

Corporate website and digital platform for a consumer brand — a public storefront that has to stay fast under campaign traffic and be editable by a non-technical marketing team.

Role

Engineer responsible for the platform end to end — backend, integrations, deployment and the operational side after launch.

Technical contribution

Content and catalogue data model, server-rendered pages with cached queries, asset optimisation, and a small admin surface the marketing team runs themselves.

Deployment

Linux server behind Nginx and Cloudflare, TLS and caching at the edge, repeatable deploys with zero-downtime releases and database migrations.

Maintenance

Ongoing uptime monitoring, backups, dependency and security updates, plus incremental feature work as the brand's campaigns change.

LaravelMySQLNginxCloudflareLinux
03

Warehouse & POS System

Enterprise internal application

One system covering the physical business: what is in the warehouse, what has been ordered from suppliers, and what was sold at the counter today.

Inventory management
Stock per location with movement history, stock opname adjustments and variance reporting — so a count dispute has an audit trail instead of an argument.
Purchase-order workflow
Request → approval → supplier PO → partial goods receipt → stock in, with role-based approval limits enforced server side.
POS transaction system
Counter sales, returns and daily cash reconciliation, writing straight through to inventory so stock and sales never disagree.
Architecture — single deployable
POS terminals  ·  Warehouse & admin web
Nginx · TLS, static assets
Laravel monolith
Inventory
Purchasing
POS & cash
Reports & RBAC
MySQL  ·  nightly backup to off-box storage

One deployable on a self-managed Linux server was the right call: a small team, an on-premise network, and no appetite for distributed-systems operations.

LaravelMySQLLinux Server

Want this level of rigour on your system?

Start a conversation
Engineering

The full stack, and how I put it together.

Front end and back end, one engineer. Tools are the easy part — what matters is the pattern they are arranged in: where state lives, where failure is absorbed, and what happens when a third party goes down.

Architecture
Monolith
Microservices
API Gateway
Event & queue workers
Infrastructure
Docker
Nginx
AWS
GCP
Cloudflare
Frontend
HTML & CSS
JavaScript / TypeScript
React
Tailwind CSS
Blade / Livewire
Backend
Go primary
Laravel / PHP
Node.js
Database
PostgreSQL
MySQL
Redis
Integration
REST API
Webhook
OAuth 2.0
Third-party APIs

Reference architecture — a platform I would ship today

Hover a node
1 · Edge
Cloudflare
DNS, WAF, cache
API Gateway
JWT, rate limit, quotas
2 · Application
Core domain service
Go · stateless, horizontally scaled
Ledger / transaction service
Integration service
one adapter per vendor API
3 · Async
Job queue
retry, backoff, dead letter
Webhook receiver
signature verify, replay-safe
Cron · reconciliation
4 · State
PostgreSQL
primary + read replica
Redis
cache, distributed locks
Object storage · backups
5 · Operate
Docker · CI/CD
reproducible deploys
Metrics, logs, alerts
Runbooks & docs
Monolith first, split on evidence
A service earns its own deployable when it has a distinct scaling profile, failure domain or team — not before.
The gateway owns cross-cutting concerns
Auth, rate limiting and quotas live at the edge so every service behind it stays a plain domain service.
Vendor APIs behind one adapter
Meta, TikTok and payment gateways each get an adapter with its own retry policy, so a vendor outage degrades one path instead of the platform.
Services

Websites, online stores and custom systems — end to end.

One engineer for the whole build: interface, backend, deployment and maintenance. You get a working site or system with a fixed scope and a price agreed up front — not a stack of hand-offs between freelancers.

01

Website & landing page

A company profile or campaign page that looks credible, loads fast on a phone, and your team can update without calling a developer.

Company profile & corporate website
Campaign & product landing pages
Responsive UI implementation from design or scratch
Content editing, SEO basics & page-speed work
02

Online store

A storefront that takes real orders and real payments — built on the same discipline I apply to systems moving billions of rupiah.

Product catalogue, variants & stock
Checkout & payment gateway integration
Order, shipping & invoice workflow
Admin dashboard your staff can operate
03

Custom systems & hosting

When off-the-shelf stops fitting: internal tools, automation and integrations — deployed, monitored and maintained.

Internal tools, dashboards & automation
REST API & third-party integration
Hosting, domain, SSL & deployment setup
Monitoring, backups & ongoing maintenance

How an engagement runs

Step 01
Discovery call
45 minutes on the business problem, constraints and deadline. No charge.
Step 02
Technical plan
Architecture, data model, milestones and a fixed scope you can approve or cut.
Step 03
Build in milestones
Weekly demo of working software, deployed to a staging environment you can use.
Step 04
Handover & support
Runbooks, architecture docs and a support window — your team owns it afterwards.
Engagement models
Project-based · Retainer · Technical advisory
Working hours
GMT+7, with overlap for EU and APAC teams
Rates
Quoted per scope after the discovery call

Tell me what needs building.

Book a discovery call
Contact

Available for freelance projects and technical collaborations.

Send a short note about the system, the constraint and the deadline — I reply within one working day. If it is not a fit, I will say so and point you somewhere better.

Good first message
01What the system does today
02What is breaking or missing
03Stack and team size
04Deadline and budget range
Status
Taking new projects — Q3 2026
Location
Indonesia · GMT+7 · remote worldwide
Languages
Indonesian · English
Write to me