Zeinuar Kusumatresna

Zeinuar Kusumatresna · Backend & Integration Engineer · Freelance · Indonesia (UTC+7)

Backend, integrasi, dan otomasi lingkup jelas, hasil bisa ditelusuri.

Diagram alur: dua sistem sumber divalidasi, masuk antrean terjadwal, diproses mesin aturan berversi, melewati persetujuan berjenjang, lalu dikirim ke sistem tujuan. Kegagalan memicu notifikasi; setiap langkah menulis jejak audit yang kemudian diarsipkan. Sumber A Sumber B Validasi Antrean terjadwal Aturan berversi Persetujuan Tujuan Notifikasi Jejak audit Arsip
Setiap langkah tercatat · aman dijalankan ulang

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.

10 tahunrekayasa backend
SQL ServerPostgreSQLMySQLSQL Serverbasis data yang saya pakai
0,4 dtkwaktu muat situs yang saya kirim
0 baris5 dtk → <1 dtk, optimasi query

Gulir untuk melihat cara saya bekerja

Karya terpilih

Sembilan masalah, dan cara saya menanganinya

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 banyak
rule_tracesamount_applied
└─< label hasil
transactionsdays_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.

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.

Lighthouse · performa / a11y / praktik / SEO96 · 100 · 96 · 100
bobot halaman · HTML + CSS + JS36 KB
biaya ganti tema · rebrand menyeluruh6 variabel

coffeshop-80m.pages.dev →

Integrasi

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.

Sistem A Sistem B Tabel singgah Tujuan coba ulang bila gagal

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.

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.

Penomoran anti-tabrakan · verifikasi keaslian · persetujuan berjenjang · retensi arsip

Rekam jejak teknis selengkapnya

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.

mrzein231@gmail.com