Pertanyaan wawancara dengan perincian jawaban — Halaman 45 dari 52
Buka halaman 45 dari pembahasan pertanyaan dan jawaban wawancara Offer.cc lengkap dengan penalaran, detail implementasi, pertanyaan lanjutan, dan sumber publik.
Wawancara Koding: Bagaimana Cara Mencari Pola dengan Suffix Array?
Ubah kueri substring teks tetap menjadi dua pencarian biner pada suffix array, lengkap dengan konstruksi, kompleksitas, dan kasus batas (edge case).
Wawancara System Design: Bagaimana Cara Mengisolasi Noisy Tenant dan Menjadwalkan secara Adil?
Rancang layanan multi-tenant berdasarkan identitas tenant, anggaran sumber daya, dan tingkatan isolasi, menggunakan kuota, antrean yang adil (fair queues), dan shuffle sharding untuk membatasi blast radius dari tenant yang bising (noisy tenant).
Mengimplementasikan Event Emitter di JavaScript
Menurunkan EventEmitter JavaScript dari kontrak eksplisit, menangani pendaftaran duplikat, mutasi listener selama pengiriman (dispatch), listener once yang bersifat reentrant, dan propagasi error, lalu memverifikasi semantik tersebut dengan kasus-kasus batas (boundary cases).
Wawancara Backend: Bagaimana Cara Anda Melindungi Layanan dari Kelebihan Beban (Overload)?
Rancang perlindungan kelebihan beban dengan sinyal saturasi, konkurensi berbatas, load shedding selektif, degradasi halus (graceful degradation), dan loop pemulihan terkendali yang mempertahankan pekerjaan berguna saat terjadi lonjakan permintaan berlebih.
Wawancara SQL: Melakukan Sessionize pada Event Pengguna dengan Batas Inaktivitas 30 Menit
Gunakan PostgreSQL LAG, flag batas, dan running window sum untuk melakukan sessionize pada event sambil menangani batas tepat 30 menit, pengurutan deterministik, rentang kueri, data terlambat, dan verifikasi.
Cara Menjawab ‘Apa Produk Favorit Anda dan Bagaimana Anda Akan Meningkatkannya?’
Bangun tesis produk dari perjalanan pengguna dan tradeoff yang eksplisit, lalu turunkan satu peningkatan dari masalah pengguna yang dapat diuji dengan metrik hasil dan guardrail risiko.
Wawancara Linux: Bagaimana Cara Mendiagnosis OOM Kill?
Konfirmasikan cakupan OOM dari exit status, event cgroup, dan log kernel, lalu pisahkan alokasi memori, bedakan kebocoran memori dari limit yang terlalu kecil, dan lakukan remediasi dengan aman.
Wawancara coding: Mengimplementasikan radix heap integer monoton
Gunakan invarian kunci terekstraksi yang tidak menurun (nondecreasing) dan ember (bucket) bit berbeda tertinggi untuk membangun antrean prioritas integer serta jelaskan biaya teramortisasinya.
System Design Interview: Mendesain Sistem Penagihan Langganan (Subscription Billing)
Desain penagihan berulang (recurring billing) dengan state machine langganan, snapshot faktur yang immutable, upaya pembayaran yang idempoten, pengurutan webhook, prorasi, dunning, rekonsiliasi, dan pemulihan hak akses (entitlement).
Bagaimana Cara Mengimplementasikan Promise.all dengan Pengurutan dan Semantik Kegagalan yang Benar?
Turunkan implementasi Promise.all dari kontrak iterable, yang mencakup plain values, thenable, input kosong, hasil yang berurutan, dan penolakan fail-fast, lalu validasi dengan kasus-kasus batas (boundary cases).
Wawancara Backend: Bagaimana Cara Anda Menyelesaikan Masalah Dual-Write Database dan Message Broker?
Rancang transactional outbox yang membuat intensi event menjadi durable, lalu lakukan penalaran terkait crash pada relay, duplikasi pengiriman, pengurutan per agregat, idempotent consumer, dan pengujian injeksi kegagalan.
Wawancara Data Science: Bagaimana Cara Memvalidasi Model Forecasting Time-Series Tanpa Kebocoran (Leakage)?
Bekerjalah mundur dari origin forecast nyata untuk merancang backtest rolling-origin, tegakkan ketersediaan fitur, berikan skor horizon dan kota secara terpisah, serta sisihkan holdout final untuk pipeline yang terpilih.
Wawancara Product Manager: Bagaimana Anda Mendiagnosis Penurunan 15% pada DAU?
Gunakan validasi metrik, analisis kontribusi absolut, nested funnel, dan bukti linimasa untuk menemukan anomali DAU serta memutuskan apakah harus memperbaiki data, menghentikan rollout, atau melakukan rollback.
Wawancara Linux: Mengapa Load Average Tinggi Saat Penggunaan CPU Rendah, dan Bagaimana Cara Mendiagnosisnya?
Mulailah dengan penghitungan runnable dan uninterruptible-task di Linux, lalu gunakan status R/D, PSI, wchan, dan metrik subsistem untuk mendiagnosis beban tinggi dengan penggunaan CPU rendah serta memverifikasi perbaikannya.
Wawancara Coding: Bagaimana Cara Menyelesaikan Offline Dynamic Connectivity dengan DSU Rollback?
Turunkan solusi dynamic connectivity offline dari union-find menggunakan segment tree berdasarkan waktu dan rollback, termasuk penghapusan, invarian, edge case, dan kompleksitas.
Wawancara Desain Sistem: Mendesain Multi-Region API Gateway
Desain sebuah API gateway untuk 300 layanan dan 500.000 permintaan puncak per detik, mencakup routing, autentikasi, peluncuran konfigurasi, kegagalan regional, beban berlebih, dan observabilitas.
Wawancara Backend: Bagaimana Cara Menyimpan Password Secara Aman dan Memigrasikan Hash Warisan?
Mulailah dengan ancaman offline-cracking, lalu rancang parameter Argon2id, kredensial berversi, migrasi saat login, penanganan akun tidak aktif, rotasi pepper, dan perlindungan kapasitas.
Wawancara SQL: Menghitung Rolling 7-Day Active Users
Hitung rolling 7-day active users secara persis menggunakan calendar spine, deduplikasi user-day yang benar terhadap zona waktu, dan distinct union di setiap trailing window, lalu tangani gap data, late event, serta skalabilitas.
Bagaimana Anda Memprioritaskan Permintaan Fitur yang Saling Bersaing?
Bandingkan permintaan yang saling bersaing melalui sasaran, batasan mutlak (hard constraints), kualitas bukti, biaya penundaan (cost of delay), dan biaya peluang (opportunity cost); buat satu keputusan; serta dokumentasikan komitmen, rencana cadangan (fallback plans), dan pemicu untuk peninjauan kembali.
Wawancara Jaringan: Bagaimana HTTP/3 Mengatasi Head-of-Line Blocking pada HTTP/2?
Gunakan lini masa packet-loss untuk menjelaskan blocking TCP lintas stream pada HTTP/2, isolasi stream QUIC pada HTTP/3, serta waktu tunggu yang tersisa pada retransmission, congestion control, flow control, dan QPACK.
Wawancara coding: Mengimplementasikan interval tree untuk query tumpang tindih (overlap)
Augmentasikan balanced tree dengan batas akhir maksimum subtree untuk menjawab query overlap secara online dan jelaskan rotasi, penghapusan, serta kompleksitasnya.
Wawancara System Design: Mendesain Proximity Service untuk Tempat Terdekat
Dapatkan candidate set geospasial, verifikasi jarak eksak, dan paginasi yang stabil untuk layanan tempat terdekat yang menangani batas sel, wilayah padat (hot region), pembatalan cache, dan kegagalan shard.
Wawancara PostgreSQL: Bagaimana Cara Kerja MVCC dan VACUUM Bersama-sama?
Lacak visibilitas baris PostgreSQL dari snapshot MVCC melalui cleanup horizon, autovacuum, penggunaan kembali disk, diagnosis bloat, pembaruan HOT, dan pembekuan XID.
Wawancara Data Engineering: Kapan Anda Harus Menggunakan Batch, Micro-Batch, atau Stream Processing?
Turunkan kapan harus menggunakan batch, micro-batch, atau continuous stream processing dari tenggat waktu tindakan bisnis, lalu buktikan pilihan tersebut dengan anggaran latensi, revisi hasil, biaya, dan verifikasi bayangan (shadow verification).