Hampir semua perangkat lunak bisa mengeluarkan angka. Jauh lebih sedikit yang bisa
menjelaskan asalnya — enam bulan kemudian, kepada auditor, baris per baris. Di celah
itulah saya bekerja: rule engine, alur persetujuan, dan integrasi yang dibangun supaya
setiap angka bisa ditelusuri sampai ke keputusan yang menghasilkannya.
Sistem klien terikat kerahasiaan, jadi alih-alih tangkapan layar, yang Anda dapat
adalah alur berpikirnya — dibangun di atas artefak yang bisa saya bagikan utuh.
Rule engine
Harga yang bisa dipertanggungjawabkan sistemnya
Sebuah pedagang ponsel bekas menentukan harga tukar tambah secara manual, sehingga
dua karyawan bisa menyebut dua angka berbeda untuk unit yang sama. Solusi yang
terlihat mudah — menanam potongan harga di dalam kode — gugur begitu ada yang
bertanya kenapa angkanya begitu, atau saat aturan bulan lalu diubah dan
penilaian bulan lalu ikut bergeser diam-diam.
Saya memodelkan aturan harga sebagai data berversi, bukan kode, dan
menyimpan jejak perhitungan di setiap penilaian. Karyawan mendapat jawaban yang bisa
dibacakan langsung ke pelanggan:
harga acuan · iPhone 13 128GB3.500.000
battery health < 80% · aturan #12−420.000
dus tidak ada · aturan #31−105.000
kondisi fisik grade B · aturan #07−175.000
harga yang disarankan2.800.000
Snapshot saat disimpan · aturan tidak pernah mengubah histori
Pemodelan data
Skema yang disiapkan untuk pertanyaan berikutnya
Sistem yang sama, di tingkat skema. Setiap penilaian menyimpan cuplikan fitur unit
berdampingan dengan hasil sebenarnya — terjual berapa, berapa lama — sehingga data
yang dibutuhkan model harga di fase berikutnya terkumpul sejak hari pertama, bukan
disusun ulang belakangan.
appraisalsfeature_snapshot│ ├─< satu ke banyakrule_tracesamount_applied│ └─< label hasiltransactionsdays_to_sell · profit
JSONB · generated column · indeks parsial
Performa
Daftar master yang diam-diam sudah tidak terpakai lagi
Sebuah master outlet tumbuh menjadi 266.000 baris. Layar daftarnya
butuh sekitar lima detik untuk terbuka dan, pada filter yang lebih besar, membuat
prosesnya kehabisan memori. Tabelnya bukan masalahnya — pola aksesnya:
seluruh data ditarik ke memori lalu dihitung di sana, jadi setiap kali halaman dimuat,
266 ribu baris dibayar hanya untuk menjawab pertanyaan tentang dua puluh baris.
sebelum~5,0 dtk + kehabisan memori
sesudah<1,0 dtk
Paging didorong ke tingkat basis data, penghitungan jumlah dibuat murah dengan berhenti
mempedulikan total pasti setelah ambang tertentu, dan indeks parsial hanya untuk baris
aktif — karena itulah irisan yang sebenarnya dipakai. Tanpa perangkat keras baru,
tanpa lapisan cache, tanpa tulis ulang.
PostgreSQL · keyset paging · indeks parsial · berbasis EXPLAIN
Orkestrasi job
Puluhan pekerjaan malam yang harus selesai sebelum kantor buka
Sistem operasional besar jarang berhenti saat karyawannya pulang. Ada puluhan pekerjaan
terjadwal yang berjalan tengah malam: menarik data dari sistem lain, menyusun dokumen,
mengirim hasilnya ke tujuan berikutnya. Bagian yang sulit bukan menjalankannya —
melainkan apa yang terjadi ketika satu di antaranya gagal pukul dua pagi.
tarik data sistem sumber · 01.00selesai
susun dokumen harian · 01.40selesai
kirim ke sistem tujuan · 02.05 · percobaan 1gagal — jaringan
ulang otomatis · 02.20 · percobaan 2selesai
eskalasi ke penanggung jawabtidak perlu
Prinsip yang saya pegang: job yang tidak aman dijalankan ulang bukan job,
melainkan bom waktu. Setiap pekerjaan dibuat idempoten, statusnya dicatat per
langkah, kegagalan diulang otomatis sebelum naik ke manusia, dan data lama diarsipkan
serta dibersihkan terjadwal supaya antreannya tidak menua diam-diam.
Antrean di basis data · idempotensi · log status · eskalasi bertingkat · arsip & purging
Data & analisis
Mengukur pasar, bukan menebaknya
Saya perlu tahu papan freelance mana yang benar-benar sepadan, sementara saran yang
tersedia hanya daftar artikel daur ulang. Jadi saya mengambil data empat marketplace,
menormalkan 464 listing, lalu menghitung sebarannya sendiri.
Hasilnya membantah pembacaan pertama saya sendiri — median yang saya kira $370 ternyata
$100 setelah sampelnya diambil dengan benar. Murah ditemukan saat analisis; mahal
ditemukan setelah terlanjur berkomitmen.
<100100200300400500+
Python · scraping · analisis sebaran
Sudah terkirim
Sisi depan, kalau pekerjaannya memang butuh
Sebuah landing page produksi: CSS ditulis tangan, tanpa framework, tanpa build step —
36 KB, tampil pertama dalam 0,4 detik, di-deploy pada layanan gratis
yang tidak pernah tidur. Mengganti seluruh tema situsnya cukup enam variabel CSS.
Backend tetap kekuatan utama saya, tapi sistem yang tidak bisa dipakai siapa pun berarti
belum selesai. Saya lebih memilih memegang seluruh jalurnya daripada menyerahkan API lalu
berharap.
Menjahit sistem yang tidak dirancang untuk bicara satu sama lain
Perusahaan besar jarang punya satu sistem. Yang ada: sistem keuangan berumur belasan
tahun, portal operasional yang lebih baru, dan sistem pihak luar — termasuk milik
pemerintah — yang aturannya berubah tanpa menunggu kesiapan siapa pun.
Saya menghubungkan sistem-sistem itu lewat tabel singgah dan proses batch, bukan
panggilan langsung antar-sistem. Alasannya sederhana: kalau sistem tujuan sedang mati,
data tidak boleh ikut hilang — ia menunggu di tabel singgah sampai bisa dikirim ulang,
dan setiap percobaan tercatat.
Tabel singgah · rekonsiliasi · kirim ulang aman · sistem keuangan, perpajakan, tanda tangan elektronik
Modernisasi
Memindahkan sistem tua tanpa mematikannya
Sistem yang masih dipakai setiap hari tidak bisa dimatikan untuk ditulis ulang. Yang
saya kerjakan: memindahkannya sepotong demi sepotong sambil versi lama tetap melayani,
sampai bagian terakhir berpindah dan yang lama bisa dipensiunkan tanpa ada yang
menyadarinya.
Rentang yang pernah saya lalui membentang dari kerangka kerja berumur belasan tahun
sampai versi terbaru, termasuk perpindahan basis data antar-vendor.
Tahap 1
Tahap 2
Tahap 3
Tahap 4
Bertahap · berjalan berdampingan · tanpa penghentian layanan
Dokumen resmi
Surat dan faktur yang sah, bukan sekadar tercetak rapi
Dokumen resmi punya syarat yang tidak dimiliki laporan biasa: nomornya harus urut dan
tidak boleh bertabrakan meski dibuat bersamaan oleh banyak orang, keasliannya harus
bisa diperiksa, dan arsipnya punya masa simpan.
Saya membangun penomoran yang aman dari tabrakan, penandaan agar dokumen bisa
diverifikasi ulang, alur persetujuan berjenjang, sampai penyusutan arsip terjadwal.
Industri yang pernah saya kerjakan. Distribusi dan purna-jual otomotif
(alokasi kendaraan, portal dealer suku cadang, pergudangan dan penagihan, voucher biaya),
kepegawaian (perencanaan tenaga kerja, rekrutmen, absensi berbasis lokasi, cuti, mutasi),
otomasi perkantoran perbankan (memo-surat-notula, disposisi, manajemen dokumen, retensi
arsip), dan perpajakan Indonesia (faktur pajak, bukti potong, pelaporan).
Kelas masalah yang berulang saya tangani. Sinkronisasi data antar
sistem yang berbeda generasi, sering asinkron lewat tabel singgah dan proses batch.
Penerimaan data massal berbasis berkas dengan validasi bertingkat dan rekonsiliasi.
Penjadwalan pekerjaan dan pemrosesan antrean yang harus idempoten serta bisa diaudit.
Pemindahan sistem lama ke versi baru tanpa penghentian layanan. Produksi dokumen resmi
dengan penomoran, verifikasi keaslian, dan tanda tangan digital.
Yang saya bangun berulang kali. Alur persetujuan berjenjang dengan
batas nilai dan eskalasi, sistem hak akses beserta menu dan izin per peran, jejak audit
di tingkat basis data, serta impor-ekspor Excel dan pembuatan PDF.
Yang bukan bidang saya. Supaya jelas sejak awal: saya tidak
mengerjakan arsitektur microservice berskala besar, infrastruktur cloud-native, antarmuka
satu-halaman modern, maupun pemodelan machine learning. Kalau itu yang Anda butuhkan,
saya bukan orangnya — dan lebih baik Anda tahu sekarang daripada di tengah jalan.
Cara bekerja dengan saya
Lingkup tetap, harga tetap, tanpa ikatan jam bulanan
Saya bekerja penuh waktu sebagai engineer, dan mengambil pekerjaan freelance yang bisa
ditentukan lingkupnya di awal serta diselesaikan pada jadwal yang bisa saya jamin.
Batasan itu disengaja — dan justru itu sebabnya tidak ada yang saya kirim setengah jadi.
Pekerjaan yang paling sering datang: jasa pembuatan REST API beserta
dokumentasinya, integrasi payment gateway seperti Midtrans, Xendit, dan
Doku, jasa integrasi sistem antar aplikasi lewat API dan webhook,
perancangan database PostgreSQL maupun MySQL, serta
migrasi data dari sistem lama. Kalau yang Anda butuhkan adalah
backend untuk aplikasi web atau mobile yang sudah punya sisi depan, itu juga masuk.
mulai $520 · ~1 minggu
Perancangan basis data & ERD
Rancangan skema beserta alasan tertulis
ERD dan skrip migrasi
Peninjauan indeks dan query
Dokumentasi yang bisa dilanjutkan developer lain
mulai $520 · ~1–2 minggu
Integrasi API & webhook
Integrasi REST dengan retry dan idempotensi
Penerima webhook dengan verifikasi tanda tangan
Job sinkronisasi beserta rekonsiliasinya
Dokumentasi OpenAPI
sesuai lingkup
Business rule engine
Aturan sebagai data berversi, bukan kode
Jejak perhitungan lengkap tiap keputusan
Halaman admin untuk staf non-teknis
Audit log sejak hari pertama
mulai $520 · ~1 minggu
Job terjadwal & batch
Penjadwalan pekerjaan berulang yang andal
Idempoten — aman dijalankan ulang
Log status per langkah + eskalasi saat gagal
Arsip dan pembersihan data lama
sesuai lingkup
Modernisasi sistem lama
Audit sistem berjalan dan rencana bertahap
Migrasi kerangka kerja dan basis data
Berjalan berdampingan, tanpa mematikan yang lama
Dokumentasi agar tim internal bisa melanjutkan
Pertanyaan yang sering datang
Sebelum Anda bertanya
Berapa biaya jasa pembuatan backend atau API?
Mulai $520 (sekitar Rp 8,5 juta) untuk lingkup yang jelas seperti perancangan
database beserta ERD, atau satu set REST API dengan dokumentasi OpenAPI. Untuk
integrasi payment gateway dan sistem yang lebih besar, harganya dihitung per lingkup
setelah kebutuhannya jelas. Saya tidak memakai tarif per jam terbuka.
Apakah menerima jasa pembuatan website company profile?
Bisa, walau bukan fokus utama saya. Contohnya ada di bagian karya: landing page
produksi 36 KB yang terbuka dalam 0,4 detik. Kalau kebutuhan Anda murni website
company profile tanpa sisi sistem, biasanya lebih hemat memakai penyedia yang
khusus itu. Saya paling berguna ketika ada backend, database, atau integrasi
di baliknya.
Bisa integrasi payment gateway Midtrans, Xendit, atau Doku?
Bisa, termasuk bagian yang paling sering menyulitkan: alur pembayaran masuk,
webhook notifikasi dengan verifikasi tanda tangan, penanganan pengiriman ulang
(idempotensi), sampai pencairan ke rekening penerima. Semua disertai dokumentasi
dan koleksi Postman supaya tim Anda bisa mengujinya sendiri.
Sistem kami lambat. Bisa dibantu optimasi database?
Ini justru pekerjaan yang paling sering saya tangani. Contohnya ada di bagian
karya: daftar 266.000 baris yang semula butuh lima detik dan kehabisan memori,
turun ke bawah satu detik tanpa perangkat keras baru. Pendekatannya selalu sama —
baca rencana eksekusi dulu, jangan menebak.
Bagaimana kalau saya perlu melanjutkan pekerjaan dengan developer lain?
Seluruh kode, skema database, dan dokumentasi menjadi milik Anda dan diserahkan
di setiap milestone, bukan menumpuk di akhir. Repositori atas nama Anda sejak hari
pertama. Saya menulis dokumentasi dengan asumsi orang lain yang akan melanjutkannya.
Apakah bisa mengerjakan proyek dari luar Indonesia?
Bisa. Saya berbasis di Indonesia (UTC+7) dan terbiasa bekerja tertulis dalam
bahasa Inggris. Untuk klien luar negeri, pembayaran lewat Payoneer atau platform
yang menyediakan escrow.
Kontak
Ceritakan apa yang harus dibuktikan sistemnya.
Kirim masalahnya, bukan spesifikasinya — saya akan bilang terus terang apakah lingkupnya
bisa saya tentukan, dan apakah saya orang yang tepat untuk itu. Kalau bukan, saya katakan.