fleet status: green · Jakarta, ID 🇮🇩 · open to remote freelance

Luthfi Farabi Senior Database Engineer & DBA, 10+ years keeping production cloud fleets alive —
and building the tools so they mostly keep themselves alive.

Senior DBA / Database Engineer running multi-database fleets (MySQL · PostgreSQL · MongoDB) on Alibaba Cloud & AWS. I tune queries, cut cloud bills, run zero-downtime migrations, build near-real-time CDC pipelines (OLTP → data warehouse), and ship AI-assisted automation.

10+ yrsDBA / data eng
1TB · <1sonline DDL
95% → stableprod fire, out
30–55%db bill cut

01. Background

I'm a Senior Database Engineer & DBA with 10+ years in production — the person who gets paged when the database is on fire, and the person who, a week later, has built something so it never catches fire the same way twice.

I run multi-database fleets on Alibaba Cloud and AWS: MySQL, PostgreSQL, MongoDB. Day to day that's index and execution-plan surgery, lock-free schema changes on terabyte tables, connection-pool sanity, cost optimization, and HA/DR that actually fails over when it has to.

On the data-engineering side I build near-real-time CDC pipelines with Debezium, streaming from OLTP systems into a data warehouse for analytics — plus the ETL/ELT and observability around them.

The other half of the job is making the job smaller. I wire Claude + MCP into my workflows — auto-RCA, slow-query analysis, report generation — so the boring, repeatable parts handle themselves.

Hands-on. Ships in production. Remote-ready across time zones. Writes the runbook after.

02. Toolbox

The kit I reach for

No skill bars. Just the tools that have actually been in production with me.

Databases

MySQLPostgreSQLMongoDBMariaDBOracleSybaseDB2CassandraSolr

Cloud & IaC

Alibaba Cloud RDS / ApsaraDBDASDTSDMSAWS (EC2 · RDS · S3 · CloudWatch)Terraform

Performance

EXPLAIN / ANALYZEindex optimizationonline DDL (INSTANT/INPLACE)PgBouncerwork_mem / buffer tuningslow query log analysis

Reliability & HA

streaming / logical replicationHA / DR & failoverpoint-in-time recoverypg_basebackup / barmanxtrabackup / mysqldumpzero-downtime migration

Observability

GrafanaPrometheusMimirDatadogNew RelicPagerDuty

🖥 OS & Infrastructure

GNU/LinuxAIXWindowsNetworking

Automation & Code

BashPythonDockerCI/CD pipelinesClaude + MCPJira / Confluence automation

🔀 Data Engineering

ETL / ELT pipelinesCDC (Debezium)near-real-time streaming (OLTP → DWH)data warehouse design

Process

5-Whys RCArunbooksshadow validation

03. Career History

Work History

The production environments I've managed and evolved over the years.

Experience
  • Senior DBA @ PT Mid Solusi Nusantara (Mekari) — Indonesia's #1 SaaS company March 2025 – Present Administer and scale a multi-tenant fleet on Alibaba Cloud (RDS, DAS, DTS, DMS) with zero data loss. Lead query tuning and cost optimization (~30% RDS savings), complex zero-downtime migrations, and Claude + MCP automation that cut routine DBA toil ~40%.
  • Data Engineering & Architect Lead @ PT Koltiva — AgriTech (Global Operations) July 2024 – March 2025 Led a cross-timezone team of Data Engineers and DBAs. Built a near-real-time streaming pipeline (OLTP → data warehouse), rolled out observability (Datadog, Grafana, AWS CloudWatch) cutting MTTR ~35%, and drove a 40% AWS RDS cost reduction.
  • Database Engineer Lead @ PT Investree Radhika Jaya — Fintech Lending April 2021 – February 2024 Owned data operations strategy and led a team of engineers. Built CI/CD-integrated schema-migration pipelines and designed backup, PITR and DR plans hitting 99.9% uptime in a regulated fintech environment.
  • Senior DBA @ PT Investree Radhika Jaya — Fintech Lending April 2019 – March 2021 Automated sensitive-data extraction, masking and server alerting via Bash/cron. Resolved a critical PostgreSQL incident (RAM pinned at 95%) with PgBouncer pooling, work_mem tuning and index surgery — stabilized within 2 hours.
  • System Engineer @ REA Group Asia (rumah123.com) — Property Portal August 2018 – March 2019 Managed AWS infrastructure (EC2, RDS, S3, ELB) with KMS encryption, containerized apps with Docker, and set up alerting via PagerDuty & New Relic. Index surgery and query redesign delivered a 40–55% cloud database bill reduction.
  • Staff Database Administrator @ PT Web Marketing Indonesia (rumah123.com) February 2016 – July 2018 Installed and maintained MySQL, Cassandra and Solr for a high-traffic property portal. Managed access permissions, query tuning, and daily data provisioning for engineering teams.
  • Technical Quality Assurance @ PT Adidata (Project: PT Bank Mandiri) April 2015 – January 2016 Planned and conducted rigorous testing of product deliverables to enterprise banking compliance standards.
  • Staff Database Administrator @ PT Collega Inti Pratama July 2013 – December 2014 Maintained Linux/AIX servers and Sybase & DB2 database servers — daily health checks, backup verification, and replication/job-scheduling troubleshooting for production systems.
Education
  • Bachelor of Computer Science @ Budi Luhur University, Jakarta 2009 – 2013

04. Portfolio & Case Studies

Stuff I've built & fixed

Real incidents and real projects. The mess → what I did → the win. Tap any card for the detail.

The page said "high memory," the cause was three things stacked. No connection pooler in front of a Puma app meant 498 idle connections each holding memory hostage. Long-running statements created lock contention. And a couple of hot queries were doing 23-second sequential scans on tables missing the right index.

The fix went in as a layered stack: PgBouncer in transaction-pooling mode to collapse the connection count, server-side idle timeouts to reap the stragglers, work_mem dialed back to shrink the per-connection memory footprint, and a targeted index plan to kill the seq-scans (so the heavy sorts disappeared instead of needing more memory). Then I wrote the 5-Whys RCA in Confluence so the root cause — not just the symptom — is on record.

A raw ALTER TABLE on a 1TB / 543M-row MySQL table means a full table rewrite — hours of lock, application errors, or a maintenance window nobody wanted. Instead, I used Alibaba Cloud DMS Lock-Free Schema Change: DMS creates a shadow table, streams all ongoing writes from the live table in the background using CDC, then performs an atomic cutover with no locks held on the original table at any point.

Production traffic ran normally throughout the entire operation. Zero downtime, zero application disruption, and the service integration shipped on schedule.

The instinct on a CPU-pinned cluster is to scale up. I scaled down — after finding why it was hot. 843,000 slow queries in 27 hours and 94–98% CPU weren't a capacity problem, they were a query problem. The worst offender was a LATERAL JOIN doing a filesort on every execution; the right composite index removed the sort entirely.

On top of that, over 99% of connections were idle — bloat, not load. With the queries fixed and the connection story cleaned up, the 3× 32vCPU/128GB footprint was wild overkill. Right-sizing the boxes took 40–55% off the bill.

You can't alert on what you've never looked at. I read all 33 panels across the 19-host fleet and wrote down what each one was actually telling me. That surfaced the host quietly running 13,000 QPS with 21 slow queries/sec, another near connection saturation, and 17 blind spots — signals we were graphing but not alerting on.

The output wasn't a complaint, it was a spec: the exact alerts, thresholds and owners needed to turn those blind spots into pages before they turn into incidents.

The thesis: a DBA's judgment can be encoded, and the cloud's control plane can act on it. The roadmap pairs Claude as the brain — anomaly detection, RCA reasoning, index recommendations — with Alibaba RDS as the body that executes scaling, backups and schema changes.

Ten projects, sequenced from safest to boldest: AI anomaly detection, index tuning with shadow validation (test the index against real traffic before it goes live), predictive scaling, automated backup/restore drills, schema-change CI gates, and auto-RCA. Doc first — now turning into running code (see $ now).

Auto-RCA agent — pulls the signals from Grafana, walks a 5-Whys analysis, and writes the draft RCA straight into Confluence via MCP, so the post-incident doc exists before the adrenaline wears off.

Slow-query monitor — a Bash watcher that catches slow queries, hands them to Claude for an explanation + fix suggestion, and drops the whole analysis into Google Chat. Daily standups — auto-generated from Jira via MCP, so the status update writes itself.

A lock-free schema change on a 100GB+ table tripped a known-nasty MySQL virtual generated-column index bug, and the instance started looping through failovers. The safe path: drop the offending index to stop the bleeding, rebuild the table cleanly via DTS, then swap it in with an atomic rename — all inside the agreed maintenance window so no one downstream felt it.

Same week, on the other engine: a MongoDB COLLSCAN on ApsaraDB tracked down and indexed. Different database, same instinct — find the missing index, stop the scan.

05. Current Focus

Currently Exploring
Last updated 02 Jun 2026 — this changes over time
  • Killing connection bloat for good. Rolling out PgBouncer transaction pooling and tuning MySQL connection pools (wait_timeout, stale-connection diagnosis) across the whole fleet.
  • Roadmap → running code. Turning the AI + RDS automation roadmap from a doc into something live — starting with anomaly detection and the slow-query analyzer v2.
  • Making the bots boringly reliable. Hardening the Auto-RCA + daily-standup pipeline so the team trusts it running unattended.
  • Sharpening my Claude/MCP skill library. The toolkit I build all my DBA workflows on top of — always being refined.
fleet status: green · inspired by nownownow.com

06. Contact

// the fleet is quiet. I have a minute.

Let's talk databases.

Available for remote freelance & contract work — DBA, Database Engineering, or Data Engineering. A gnarly query that won't behave, a cloud bill that's too high, a migration you can't take downtime for, or a pipeline to build — I'm reachable.

engagementHourly, fixed-scope project, or ongoing retainer
good fitsPerformance & cost audits · zero-downtime migrations · HA/DR & backups · CDC → DWH pipelines · monitoring/alerting setup
timezoneBased in Jakarta (GMT+7) · async-first · ~4h daily overlap with EU, partial overlap with US
responseUsually within 24 hours · English, written & async
⚠️ Incident Simulator