Principles

Yang kami pegang.

Bukan aspirasi, bukan jargon dinding. Yang muncul saat kode ditulis dan saat keputusan teknis diambil.

01

Arsitektur dulu. Selalu.

Kode yang ditulis tanpa arsitektur seperti rumah yang dibangun tanpa fondasi: cepat berdiri, susah ditambah, hancur di gempa kecil. Kami menolak memulai proyek tanpa fase desain arsitektur, sependek apa pun timeline-nya.

02

Kode yang baik adalah kode yang bisa diwariskan.

Kami menulis kode dengan asumsi bahwa orang yang akan membacanya berikutnya bukan kami. Itu mengubah banyak hal: penamaan jadi penting, dokumentasi jadi penting, struktur folder jadi penting.

03

Kompleksitas yang bukan untuk pamer.

Kalau Anda tidak bisa menjelaskan kenapa Anda memilih solusi rumit kepada engineer berpengalaman di luar tim, kemungkinan solusinya memang tidak perlu rumit.

04

Setiap dependensi adalah utang.

Setiap library, framework, atau service yang Anda tambahkan ke sistem adalah komitmen jangka panjang. Kami memikirkan setiap pilihan dengan kesadaran bahwa pilihan itu akan menemani kita untuk waktu yang lama.

05

Performa bukan untuk dipikirkan belakangan.

Performa adalah karakteristik arsitektur, bukan polishing terakhir. Pilihan database, pilihan struktur data, pilihan apakah operasi sync atau async — itu semua keputusan performa yang diambil di awal.

06

Sistem yang baik tidak butuh hero.

Kami curiga pada tim yang punya satu orang yang jadi satu-satunya yang ngerti sistem. Itu bukan tanda excellence — itu tanda fragility. Goal kami: meninggalkan sistem yang bisa dijalankan tanpa kami.

07

Kalau ragu, lebih sederhana.

Hampir setiap kesalahan engineering yang kami buat dalam karir kami punya satu kesamaan: kami memilih solusi yang lebih rumit padahal solusi sederhana mencukupi. Simplicity bukan tentang kemalasan. Itu disiplin paling sulit di engineering.

Kalau standar ini resonate—

—mungkin Anda akan tertarik melihat bagaimana kami berkolaborasi dengan rekan dari luar.