Catatan setingkat arsitektur tentang sistem yang sudah berjalan.

Kerja profesional, ditulis di level arsitektur: masalahnya, trade-off-nya, dan pelajaran yang diberikan. Detail rahasia klien sengaja dikeluarkan; potongan teknis yang dalam ada di bagian kasus.

SaaS invoicing multi-tenant (freelance)

Independent product, own stack · 2025–2026 · Full-stack (backend-leaning) engineer

Produk invoicing untuk usaha kecil: tenant, dokumen, generasi PDF, dan panel admin — dibangun end to end sendiri.

  • Merancang model isolasi tenant di atas shared schema dengan row-level scoping sejak hari pertama
  • Membangun penomoran dokumen dengan sequence bebas-celah per tenant
  • Me-rilis invoicing PDF dengan rendering deterministik (invoice sama, byte sama)
  • Menjaga p95 di bawah 150ms di hosting komoditas dengan profiling sebelum dan sesudah setiap fitur

Dibangun sendiri dari ujung ke ujung: schema, API, pipeline PDF, panel admin, deploy. Isolasi tenant didesain masuk sejak hari pertama — row-level scoping di atas shared schema, dengan test adversarial yang berusaha membaca melintasi batas. Masalah penomoran dokumen bebas-celah dari produk ini membentuk cara saya berpikir tentang concurrent writes.

api-design · database · performance · tautan ↗

Platform informasi publik (skala pemerintahan)

Regional government agency (anonymized) · 2024–2026 · Backend engineer

Ingest pipeline dan API publik untuk platform informasi regional: data multi-sumber masuk, halaman publik yang bersih keluar.

  • Membangun ulang ingest pipeline agar mem-parse sumber secara streaming, memangkas freshness end-to-end dari jam menjadi menit
  • Merancang kontrak API publik (versioned, paginated, cache-friendly) yang dikonsumsi tiga app downstream
  • Menerapkan validasi schema di boundary ingest, menghilangkan satu kelas korupsi data yang senyap
  • Memangkas latensi API p95 ~40% dengan memperbaiki pola query N+1 dan menambah covering index

Ringkasan hanya di level arsitektur — detail rahasia klien sengaja dikeluarkan dari tulisan ini. Rebuild mengganti batch loading dengan streaming ingest yang divalidasi di boundary: freshness naik dari jam menjadi menit, dan satu file sumber yang korup tidak lagi menggagalkan seluruh run. API publiknya didesain sebagai kontrak ter-versioning untuk tiga app downstream yang menyajikan feed paginasi pada skala tersebut.

database · api-design · performance