Ini episode terakhir seri ini. Angka “18 bulan” di judul perlu tanda kutip: dari hari pertama sampai tulisan ini dibuat, waktunya sudah lebih dari itu. Ya sudahlah, angka di slide memang punya versinya sendiri. Dari awal seri ini memang bercerita tentang selisih itu hahaha.1
Tujuh episode sebelumnya isinya pelajaran teknis. Di bagian terakhir ini saya cerita apa yang akan saya ubah kalau mengulang, utang arsitektur yang saya janjikan sejak episode kedua, rencana mengajar yang tidak terlaksana, dan hal yang paling saya syukuri.
Yang Akan Saya Kerjakan Beda Kalau Mengulang #
Pertama, saya akan membahas angka target dengan data sejak hari pertama. Episode satu sudah menunjukkan hitungannya: 370+ endpoint, tiga bulan, kira-kira empat endpoint per hari tanpa libur. Kalau mengulang, spreadsheet itu akan saya bawa ke interview: ini jumlahnya, ini kerumitannya, ini tenaga yang tersedia (satu orang). Angka jujur di awal lebih murah daripada burnout di tengah jalan.
Kedua, dokumentasi ditulis sejak hari pertama. Susahnya sistem lama bukan cuma kodenya, tapi juga pengetahuan yang tersimpan di kepala satu orang. Kode jadi satu-satunya spesifikasi. Saya sih senang jadi “manusia dokumentasi” tiap ada yang bertanya, tapi tidak mau siapa pun, termasuk saya sendiri beberapa tahun lagi, bergantung pada itu. Seri blog ini salah satu cara saya mencicil utangnya hehe.
Ketiga, verifikasi paritas dijadwalkan, bukan mengandalkan perasaan. Di episode tiga saya sudah cerita bahwa saya mengumumkan “selesai” sebelum verifikasi mencapai 100%, dan benar saja. Kalau mengulang, verifikasi punya checklist dan jatah waktu sendiri, bukan menunggu saya merasa siap.
Keempat, kesehatan mental masuk estimasi proyek. Tiga bulan pertama menagih bayarannya ke kepala saya. Saya tidak menyesal bekerja keras, tapi kalau mengulang, durasi dan bebannya akan saya tulis sejujur estimasi endpoint.
Kelima, arsitektur dibahas sebelum diwarisi. Nah, ini membawa saya ke janji yang belum saya bayar.
Utang Arsitektur yang Dijanjikan Sejak Ep 2 #
Di episode kedua saya berjanji menjelaskan kenapa endpoint ringan di sistem ini masih punya floor sekitar 2-3 detik setelah semua perbaikan.
Penyebabnya bukan kode, tapi arsitektur. User dan database utama ada di Indonesia, sedangkan aplikasinya di region cloud Eropa. Setiap klik harus menyeberang dua kali. Selama susunan itu tidak berubah, optimasi ada batasnya. Waktu respons memang bisa turun dari 17 detik ke 3 detik, tapi lantai tiga detik itu tidak tembus kalau cuma lewat kode.
Jalan keluarnya sudah lama jelas: pindahkan aplikasi lebih dekat ke database dan user, atau dekatkan replikanya. Dua-duanya bukan refactoring, tapi keputusan infrastruktur yang butuh anggaran dan koordinasi lintas pihak. Di sini saya harus mengaku sebagai penulis solo: sebagian utang tidak bisa dibayar sendirian, dan mengakuinya juga bagian dari pekerjaan.2 Mudah-mudahan suatu hari saya bisa menulis lanjutannya sebagai cerita sukses, bukan cuma cetak biru hahaha.
Satu Babak yang Tidak Jadi #
Ada satu babak yang hampir saya jadikan bagian favorit seri ini: saya diminta mengajari Go ke tim. Rencananya sudah ada sejak Agustus 2025. Saya menyiapkan materi untuk empat minggu: pengenalan Go, fungsi dan struktur data, OOP dan concurrency, sampai web development dengan Go. Salah satu rekan bahkan sudah membelikan kursus online supaya bisa ikut belajar.
Sampai episode ini ditulis, kelasnya belum pernah terjadi.
Kalau dipikir-pikir, cocok juga jadi penutup seri tentang selisih antara rencana dan kenyataan: rencana terakhir yang tidak jalan adalah rencana saya mengajar. Materinya masih rapi di repo, antre menunggu jadwal bersama rencana-rencana lain yang sudah lebih dulu mengantre hehe.
Sebenarnya, jujur, saya merasa ada kekecewaan. Alasannya sederhana: saya berharap dengan mengajari Go ke tim, mereka bisa melihat langsung pentingnya planning dalam ngoding dan penggunaan tipe data pada variabel, hal yang seharusnya terasa penting lewat pengalaman, bukan lewat kelas saya. Saya akui, saya sendiri bukan pembaca yang terstruktur; saya baca apa pun yang sedang saya butuhkan, sehingga ilmu saya terasa seperti ilmu cabutan. Tapi dari kebiasaan itu saya justru belajar debugging dan system analysis, biar lebih paham perilaku program dan cara mengatasi isu-isu production.
Yang Paling Saya Syukuri #
Seri ini dimulai dari lowongan kerja untuk menjalankan keputusan orang lain. Setelah itu ada mandat tiga bulan, endpoint yang makan waktu 15 detik, mobil parkir yang ngebut, dan ratusan keputusan kecil di sela-selanya.
Tapi kalau ditanya apa yang paling saya syukuri, jawabannya bukan soal teknis.
Selain kehebohan yang saya alami selama proses migrasi ke Go ini, saya bersyukur mendapatkan banyak sekali pengetahuan, dari sisi teknis sampai sisi psikologis, manajemen, dan kepemimpinan. Itu semua, Alhamdulillah, bisa saya raih berkat ridha Allah serta doa keluarga dan istri yang tidak pernah putus.
Saya cuma menambahkan satu kalimat dari saya: tidak banyak pekerjaan yang membiarkan kamu melihat sesuatu yang kamu tulis diam-diam bekerja untuk puluhan ribu orang, setiap detik, tanpa pamit. Itu privilese. Alhamdulillah.
Penutup Seri #
Tujuh episode teknis, satu refleksi, dan perjalanan yang katanya tiga bulan.
Terima kasih sudah mengikuti seri ini. Kalau kamu sedang menjalani migrasi serupa: hitung pekerjaannya, tulis dokumentasinya, dan jangan lupa jaga diri. Soal kata “selesai”, ya… ternyata maknanya bisa melar juga, seperti yang saya pelajari di perjalanan ini.