Pertanyaan wawancara dengan perincian jawaban — Halaman 49 dari 52
Buka halaman 49 dari pembahasan pertanyaan dan jawaban wawancara Offer.cc lengkap dengan penalaran, detail implementasi, pertanyaan lanjutan, dan sumber publik.
Bagaimana Cara Mendesain API Cursor Pagination yang Stabil?
Mulai dari semantik paginasi di bawah operasi penulisan serentak (concurrent writes), bandingkan offset dan cursor pagination, lalu turunkan compound cursor, indeks yang cocok, kueri dua arah, batas snapshot, serta uji coba adversarial.
Wawancara Rekayasa Data: Merancang Dimensi SCD Type 2
Rancang dimensi SCD Type 2 yang point-in-time-correct dengan surrogate key, interval validitas half-open, pemuatan idempoten, semantik penghapusan, koreksi terlambat, dan pemeriksaan invarian.
Wawancara Koding: Mengimplementasikan SPSC Lock-Free Ring Buffer Berbatas
Implementasikan ring buffer single-producer single-consumer berkapasitas tetap dan jelaskan indeks, pemeriksaan penuh/kosong, memory ordering, serta edge test.
Wawancara System Design: Mendesain Editor Kolaboratif Real-Time
Bangun editor kolaboratif berbasis konvergensi CRDT, ruang dokumen (document room), log pembaruan tahan lama (durable update log), dan sinkronisasi state-vector sambil menangani pengeditan lokal instan, penyambungan kembali offline, kursor efemeral, pencabutan izin, dan pemulihan yang dapat diuji.
Bagaimana Cara Mendiagnosis dan Mengoptimalkan Kueri PostgreSQL yang Lambat?
Turunkan indeks multikolom atau parsial dari bukti beban kerja, rencana eksekusi, dan estimasi kardinalitas, lalu validasi peningkatan baca terhadap amplifikasi penulisan dan risiko penerapan.
Wawancara Data Engineering: Merancang Pipeline Change Data Capture
Rancang pipeline CDC bebas celah dari PostgreSQL WAL, snapshot awal, dan posisi sumber, lalu tangani pengiriman at-least-once, penghapusan, evolusi skema, risiko replication slot, replay, dan rekonsiliasi.
Bagaimana Cara Mengimplementasikan Fenwick Tree untuk Dynamic Prefix Sums dan Weighted Selection?
Implementasikan point updates, prefix and range sums, dan rank-by-weight selection dengan struktur satu array yang ringkas sambil menangani pengindeksan, kompleksitas, dan batasan bobot negatif.
System Design Interview: Mendesain Sistem Centralized Logging
Desain platform centralized logging berbasis local buffering, durable stream, selective indexing, dan arsip object storage agar mampu bertahan dari lonjakan log (log storm), pemadaman downstream, field ber-kardinalitas tinggi, serta noisy tenant.
Bagaimana Cara Mencegah Cache Stampede Saat Hot Key Kedaluwarsa?
Rancang jalur pembacaan cache dengan soft expiration, request coalescing, dan distributed lease yang mampu bertahan dari kedaluwarsanya hot key, crash pada refresher, kegagalan cache, dan penulisan yang tertunda.
Wawancara Data Engineering: Bagaimana Cara Mendiagnosis dan Memperbaiki Hot Kafka Partition?
Diagnosis Kafka hot partition dari lag per-partisi dan ketimpangan kunci (key skew), hitung pertumbuhan backlog, lalu pilih throttling, konkurensi intra-partisi yang aman, kunci yang lebih baik, dan migrasi yang aman terhadap urutan (ordering-safe).
Bagaimana cara mengimplementasikan skip list dan menjelaskan perilaku O(log N) yang diharapkan?
Bangun struktur terurut yang dapat dicari dan diubah dengan level acak, lalu analisis kompleksitas yang diharapkan, kasus ekstrem, dan trade-off memori.
Wawancara System Design: Mendesain Layanan Penyimpanan dan Sinkronisasi File Cloud
Desain cloud drive dengan upload chunk yang dapat dilanjutkan (resumable), versi file yang immutable, sinkronisasi perangkat berbasis kursor, salinan konflik, pemulihan versi, dan garbage collection yang aman.
Mencegah Write Skew dengan Isolasi Transaksi
Gunakan invarian jadwal on-call untuk menurunkan perilaku aktual dari Read Committed, Repeatable Read, dan Serializable, kemudian bandingkan percobaan ulang serializable, penguncian eksplisit, dan pembaruan kondisional satu baris.
Bagaimana Cara Mendiagnosis Sample Ratio Mismatch dalam Uji A/B?
Gunakan uji chi-square untuk mengonfirmasi Sample Ratio Mismatch, lalu telusuri penetapan, eksekusi, pemrosesan log, dan filter analisis sebelum memercayai kenaikan (lift) eksperimen yang tampaknya signifikan.
Bagaimana cara mengimplementasikan metode alias Vose untuk weighted sampling O(1)?
Prakomputasi tabel probabilitas dan alias untuk pengambilan sampel waktu-konstan dari distribusi diskrit statis, termasuk pembaruan, presisi, dan validasi.
Wawancara System Design: Merancang Layanan Distributed Lock
Rancang layanan distributed lock berbasis state yang konsisten kuat (strongly consistent), pembaruan lease, dan fencing token agar tetap aman saat terjadi jeda proses, partisi jaringan, respons hilang, dan kegagalan leader.
Mendesain API Create-Order yang Idempoten
Mulailah dengan cakupan idempotency-key, fingerprint permintaan, dan batasan keunikan database (database uniqueness constraint) untuk membuat pembuatan pesanan aman untuk dicoba kembali (retry), termasuk penanganan permintaan konkuren, respons yang hilang, masa berlaku key, dan efek samping downstream.
Wawancara SQL: Temukan Tiga Produk Teratas per Kategori
Agregasikan item pesanan ke tingkat produk, gunakan DENSE_RANK untuk mempertahankan kesetaraan pendapatan, serta jelaskan urutan fungsi jendela, kasus tepi, kebenaran, dan validasi.
Bagaimana cara mengimplementasikan Count-Min Sketch untuk estimasi frekuensi streaming?
Gunakan array pencacah dua dimensi dan fungsi hash independen untuk mengestimasi frekuensi kunci dalam memori tetap, termasuk batas galat, penggabungan, dan batas pengaturan ulang.
Wawancara Desain Sistem: Merancang Perayap Web Berskala Besar
Turunkan host-sharded URL frontier dari crawl budget, lalu tangani robots.txt, politeness, deduplikasi, recrawling, dan lease recovery dengan kapasitas dan failure invariants yang dapat diuji.
Bagaimana Cara Memantau Model ML di Production?
Gunakan regresi ETA ride-hailing untuk membangun pemantauan berlapis untuk serving health, kualitas data, pergeseran distribusi, dan kualitas label yang tertunda, lalu petakan setiap sinyal ke peringatan yang dapat ditindaklanjuti, rollback, atau keputusan pelatihan ulang.
Bagaimana HyperLogLog dapat Memperkirakan Nilai Unik dalam Stream Berskala Masif?
Perkirakan kardinalitas streaming dengan memori tetap dengan menurunkan pembaruan register HyperLogLog, koreksi kesalahan, dan batas penggabungan terdistribusi.
Bagaimana Anda Mendesain Sistem Feature Flag?
Desain platform feature flag berlatensi rendah dengan memisahkan management control plane dari evaluasi in-process, lalu buat penetapan peluncuran (rollout assignment), perilaku data usang (stale-data), tata kelola, dan pemulihan kegagalan menjadi eksplisit.
Bagaimana Cara Mengevaluasi Sistem Rekomendasi Secara Offline dan Online?
Bangun keputusan peluncuran dari data log point-in-time, metrik pemeringkatan dan beyond-accuracy, bias eksposur, serta eksperimen online acak, lalu diagnosis mengapa kemenangan offline bisa kalah secara online.