Back to Engineering Articles/Apa yang Saya Lakukan sebagai Senior Engineer — Arsitektur, Trade-Off, dan Pertimbangan Teknis

Apa yang Saya Lakukan sebagai Senior Engineer — Arsitektur, Trade-Off, dan Pertimbangan Teknis

Saya tidak lagi dinilai dari baris kode. Saya dinilai dari keputusan — arsitektur apa yang dipakai, trade-off apa yang diterima, dan bagaimana membimbing developer lain. Inilah kisah nyata merancang IoT telemetry untuk 50K events/detik, microservices untuk perusahaan asuransi terbesar di Australia, dan keputusan stack yang menjadi artikel paling banyak dibaca.

Faisal AffanFaisal Affan
6/13/2026
Apa yang Saya Lakukan sebagai Senior Engineer — Arsitektur, Trade-Off, dan Pertimbangan Teknis

Apa yang Saya Lakukan sebagai Senior Engineer

"Kamu tidak menjadi senior engineer dengan menulis lebih banyak kode. Kamu menjadi satu dengan membuat keputusan yang bertahan lebih lama dari dirimu." — Saya, setelah merusak production untuk ke-47 kalinya

Lompatan dari mid-level ke senior adalah transisi paling membingungkan dalam rekayasa perangkat lunak. Tahun-tahun mid-level-mu mengajarimu untuk mengirim fitur. Sekarang, tidak ada yang peduli seberapa cepat kamu secara pribadi mengirim. Mereka peduli apakah arsitektur yang kamu pilih bertahan selama tiga tahun pertumbuhan, apakah trade-off yang kamu dokumentasikan menghemat enam bulan penemuan ulang tim berikutnya, dan apakah engineer junior yang kamu bimbing bisa mengirim tanpa dirimu.


Proposisi Senior

Yang Berubah

Sebelum (Mid-Level): "Bisakah kamu memiliki sebuah fitur dari ujung ke ujung dan mengirimkannya dengan andal?" Sekarang (Senior): "Bisakah kamu membuat keputusan arsitektur yang akan diikuti oleh banyak tim — dan benar tentang trade-off-nya 80% dari waktu?"

Saya tidak lagi dinilai dari baris kode. Saya dinilai dari keputusan — arsitektur apa yang dipakai, trade-off apa yang diterima, dan bagaimana membimbing developer lain tanpa menulis kode mereka untuk mereka.

Inilah bagaimana tampilannya dalam praktik.


Studi Kasus 1: Petrosea Minerva — IoT Fleet Telemetry

Peran: Backend Engineer & System Architect Stack: Go, MQTT, Kafka, TimescaleDB, React Skala: 50K events telemetry/detik, 100+ unit alat berat di 3 lokasi tambang terpencil

Operasi pertambangan Petrosea memiliki masalah: 100+ dump truck, ekskavator, dan kendaraan pendukung yang beroperasi di lokasi terpencil di Kalimantan menghasilkan telemetry terus-menerus — posisi GPS, suhu mesin, konsumsi bahan bakar, berat muatan — setiap 2 detik. Data ini krusial untuk keputusan dispatch real-time, peringatan geofence, dan perawatan prediktif. Namun lokasi-lokasi tersebut memiliki konektivitas satelit intermiten yang membuat arsitektur berbasis HTTP tidak andal.

Keputusan Arsitektur

Saya merancang mesin geofencing real-time yang mampu memproses 50K events per detik dengan latensi peringatan di bawah 2 detik. Pilihan arsitektur inti adalah pipeline data:

Dampak

MetrikSebelumSesudah
Pemrosesan telemetryManual/berbasis logReal-time, 50K events/detik
Latensi peringatan geofence5-10 menit< 2 detik
Deteksi pencurian BBMTidak diketahui (tidak terdeteksi)Tertangkap di bulan pertama
Penghematan tahunanRp 3,2 M ($200K)
Visibilitas utilisasi armadaLaporan shift berbasis kertasDashboard langsung, 65% → 79%

Studi kasus lengkap →


Studi Kasus 2: IAG Cybera360 — Arsitektur Platform Asuransi

Peran: Frontend & Backend Engineer Stack: Nuxt.js (SSR), Go microservices, PostgreSQL, D3.js Skala: 5+ integrasi mitra, digitalisasi seluruh siklus hidup asuransi untuk perusahaan asuransi terbesar di Australia

IAG (Insurance Australia Group) — perusahaan asuransi umum terbesar di Australia, kapitalisasi pasar ~AU$12 M — membutuhkan platform untuk melayani pasar asuransi cyber UKM yang kurang terlayani. Proses yang ada membutuhkan 3-4 hari untuk sebuah kutipan, melibatkan 100+ pertanyaan manual, dan memerlukan bolak-balik underwriter melalui email. Kami harus mendigitalkan seluruh siklus hidup: penilaian risiko → pembuatan kutipan → pengikatan → pemantauan → klaim.

Trade-Off Kritis

Dampak

MetrikSebelumSesudah
Perputaran kutipan3-4 hari< 15 menit
Siklus hidup asuransiManual/kertasSepenuhnya digital
Integrasi mitraTidak ada5+ (UpGuard, Acronis, RHCS, dll.)
Jangkauan platformAustralia sajaAsia Pasifik (Singapura, Malaysia, Hong Kong)

Studi kasus lengkap →


Studi Kasus 3: Mengapa Golang — Keputusan Stack

Peran: Pengambil Keputusan Teknologi Stack: Go (dipilih), dievaluasi terhadap Node.js, Python, Rust

Setiap senior engineer pada akhirnya menghadapi pertanyaan: "Apa stack utama kamu dan mengapa?" Ini bukan pertanyaan trivia — ini adalah ujian kemampuanmu untuk mengevaluasi trade-off di berbagai dimensi: performa, produktivitas developer, kematangan ekosistem, pasar perekrutan, dan biaya perawatan jangka panjang.

Saya mengevaluasi empat opsi terhadap lima kriteria:

KriteriaGoNode.jsPythonRust
Model konkurensiGoroutine (built-in)Event loop (single-threaded)Terbatas GILAsync/await (kompleks)
Kecepatan kompilasi< 2 detikN/A (interpreted)N/A (interpreted)30-120 detik
DeploymentSatu binaryNode + node_modulesPython runtime + pipSatu binary
Kurva pembelajaranRendah (25 keywords)RendahRendahCuram (ownership, lifetimes)
Perekrutan di IndonesiaTumbuh pesatMatangMatangNiche

Keputusan: Go menang pada kesederhanaan, kecepatan kompilasi, dan ergonomi deployment — bukan performa mentah. Seorang pendukung Rust dapat dengan tepat menunjukkan bahwa Rust mengungguli Go dalam beban kerja CPU-bound sebesar 2-5x. Namun throughput CPU mentah jarang menjadi hambatan saya. I/O Jaringan, query database, dan throughput antrean pesan adalah hambatannya. Model konkurensi berbasis goroutine Go menangani itu dengan sempurna.

Artikel lengkap →

Pola yang Berulang

Setiap keputusan tingkat senior dalam karier saya mengikuti pola yang sama: identifikasi kendala nyata (bukan yang hipotetis), evaluasi trade-off secara eksplisit, dan pilih opsi yang mengoptimalkan hambatan — apakah itu produktivitas developer, kemudahan deployment, atau persyaratan SEO.


Diagram Arsitektur yang Saya Rancang

Di luar proyek individu, peran senior menuntut saya mendokumentasikan keputusan arsitektur sehingga dapat dipahami, ditantang, dan diperluas oleh engineer lain. Berikut adalah dua diagram kunci yang mewakili masalah arsitektur paling kompleks yang saya selesaikan.


Kartu Skor Senior Saya

Item PortofolioApakah Saya Melakukannya?Bukti
Diagram sistem arsitektur✅ Didokumentasikan di beberapa studi kasus dengan analisis trade-off
Keputusan trade-off dengan alasan✅ Go vs Rust, MQTT vs HTTP, SSR vs SPA — masing-masing dengan matriks evaluasi eksplisit
Dampak mentoring⚠️ Hanya mentoring informal — tidak pernah membuat program terstruktur
Berbicara/menulis✅ 20+ artikel teknis yang diterbitkan termasuk analisis stack Go yang paling banyak dibaca
Pengaruh arsitektur lintas tim✅ Merancang pola yang diadopsi oleh 3+ tim produk (form engine, pipeline telemetry)
Kepemimpinan insiden produksi✅ Memimpin RCA untuk insiden IoT kritis, mendokumentasikan runbook untuk serah terima operasi
ADR / dokumentasi teknis⚠️ Tidak konsisten — keputusan didokumentasikan dalam studi kasus tetapi tidak dalam ADR formal di setiap kasus

Kolom mentoring informal adalah celah terbesar saya. Saya membimbing engineer junior dan mid-level pada code review dan keputusan arsitektur mereka, tetapi saya tidak pernah membuat kerangka mentoring terstruktur. Melihat ke belakang, itu adalah peluang yang terlewatkan — para engineer yang saya bimbing secara informal tumbuh lebih cepat, tetapi organisasi tidak dapat mereplikasi pola tersebut karena tidak didokumentasikan.


Saran untuk Engineer yang Bertransisi ke Senior

Dokumentasikan Setiap Keputusan Arsitektur — Bahkan yang Salah

Perbedaan antara senior dan mid-level bukanlah membuat keputusan sempurna — ini adalah mampu menjelaskan mengapa kamu membuat keputusan, alternatif apa yang dipertimbangkan, dan kapan kamu akan meninjaunya kembali. Mulailah menulis ADR (Architecture Decision Records) untuk setiap pilihan teknis yang tidak sepele. Analisis stack Go yang saya publikasikan menjadi artikel yang paling banyak dibaca bukan karena secara teknis mengesankan, tetapi karena menunjukkan matriks evaluasi — format yang persis sama dengan yang kamu butuhkan untuk portofolio senior-mu.

Mentoring Bukan Opsional

Kamu tidak menjadi senior dengan mengetahui lebih banyak. Kamu menjadi satu dengan membuat orang lain lebih efektif. Mulailah dengan satu engineer junior. Code review dengan penjelasan ("Saya akan melakukan X karena Y, tetapi pendekatanmu berfungsi jika Z"). Pair programming pada fitur yang kompleks. Tulislah dokumentasi internal yang membuka blokir tim. Bunga majemuk dari mentoring membuahkan hasil lebih cepat daripada fitur individu apa pun yang bisa kamu bangun.

Setiap keputusan arsitektur, analisis trade-off, atau postmortem produksi yang kamu tulis adalah aset. Itu memvalidasi pemikiranmu untuk calon pemberi kerja masa depan, membantu engineer lain yang menghadapi masalah yang sama, dan membangun pengakuan yang membuat peran senior lebih mudah diamankan. Saya menulis 20+ artikel teknis selama tahun-tahun senior saya — dan setiap satu dari artikel tersebut berkontribusi lebih banyak pada lintasan karier saya daripada fitur tunggal mana pun yang saya kirim.

Ukur Segalanya, Optimalkan yang Penting

Engineer mid-level mengoptimalkan untuk "apakah ini berfungsi." Engineer senior mengoptimalkan untuk "apakah ini bertahan." Latensi, throughput, error budget, MTTR, frekuensi deployment — ini bukan metrik DevOps. Ini adalah metrik engineering senior. Mulailah mengukur sebelum kamu mengoptimalkan. "Penghematan tahunan $200K" dari Petrosea ada karena saya menginstrumentasi sistem dari hari pertama dan dapat menunjuk pada peningkatan spesifik dengan nilai dolar spesifik.


Yang Akan Saya Lakukan Secara Berbeda

  • Mensahkan mentoring lebih awal. Engineer junior dan mid-level yang saya bimbing secara informal adalah yang paling saya banggakan. Tetapi saya seharusnya menciptakan pola yang dapat diulang — tech talk, jadwal pair programming, daftar periksa pertumbuhan — yang bertahan lebih lama dari kehadiran saya.
  • Menulis ADR formal untuk setiap keputusan besar. Saya mendokumentasikan trade-off dalam studi kasus tetapi tidak dalam format ADR yang dapat dibaca mesin yang dibutuhkan organisasi untuk memori institusional.
  • Berkata "tidak" dengan lebih jelas pada pekerjaan non-senior. Transisi tersulit adalah belajar bahwa tugas saya bukan menulis lebih banyak kode. Setiap jam yang saya habiskan untuk membangun fitur adalah jam yang tidak saya habiskan untuk meninjau arsitektur, membuka blokir rekan tim, atau mendokumentasikan keputusan. Para senior yang unggul sangat strategis tentang di mana mereka menginvestasikan waktu mereka.

Senior engineering bukanlah langit-langit. Ini adalah landasan peluncuran. Keputusan arsitektur yang kamu buat di tingkat ini bertahan lebih lama dari masa jabatanmu. Engineer yang kamu bimbing melampaui pengaruhmu. Trade-off yang kamu dokumentasikan menghemat waktu bertahun-tahun penemuan ulang tim masa depan. Kode-mu dikompilasi dan di-deploy. Namun keputusanmu berakumulasi — dan itulah yang membuat seorang senior engineer.

Discussion

Write a comment or question

Powered by GitHub Discussions
Loading...

Related Engineering & Tech Articles

Apa yang Saya Lakukan sebagai Senior Engineer — Arsitektu... | Faisal Affan