System Design Interview: Antara Persiapan dan Realita
Tepat 3 minggu yang lalu, tanggal 2 Januari 2025 adalah pertama kalinya aku system design interview seumur hidup. Aku mempersiapkan diri dengan belajar dari berbagai sumber, seperti video YouTube dari IGotAnOffer, Exponent, HelloInterview, dan banyak lagi. Selain itu, aku mengikuti panduan dari Ashish Pratap di GitHub dan blognya. HelloInterview juga punya blog yang sangat lengkap yang menolongku dalam persiapan interview ini. Semua sumber itu memberikan gambaran yang jelas tentang bagaimana seharusnya alur wawancara system design berjalan secara terstruktur, sistematis, dan ideal. Aku membayangkan prosesnya akan berjalan sesuai pola yang sudah aku pelajari.
Namun, ketika hari H tiba, ekspektasi dan realitas ternyata berbeda. Waktu terasa berjalan begitu cepat, meskipun aku sudah berusaha mengikuti struktur yang diajarkan: memahami kebutuhan, membuat high-level design, hingga menggali lebih dalam ke solusi. Di tengah proses, aku menghadapi hal yang tidak terduga. Interviewerku tidak ingin membahas tentang struktur database. Padahal, menurut pemahamanku, database adalah fondasi untuk memecahkan masalah yang diberikan. Ini sempat membuatku bingung dan sedikit kehilangan arah.
Dari pengalaman ini, aku belajar beberapa hal penting. Pertama, tips yang sering disebutkan di berbagai panduan ternyata benar: selalu ikuti arahan interviewer. System design interview tidak selalu berjalan sesuai kerangka yang kita bayangkan. Menjadi fleksibel sangat penting di sini.
Namun, ada satu hal yang aku pelajari sendiri: meskipun interviewer tidak ingin membahas database secara mendalam, kita tetap perlu mendefinisikan entitas dari desain yang kita buat. Entitas ini sangat penting karena menjadi dasar untuk mengurai solusi dari requirement yang diberikan. Dengan memahami entitas, kita bisa lebih mudah mengaitkan solusi desain dengan kebutuhan yang diminta, meskipun pembahasan database tidak diutamakan.
Contoh dari interview itu, saya diminta membuat desain money transfer system antar cabang bank. Maka entitasnya adalah account number, branch number, amount, transaction. Tanpa definisi entitas, kita akan kehilangan kerangka penyelesaian masalah.
Pengalaman pertama ini mengajarkan bahwa persiapan memang penting, tapi kemampuan untuk beradaptasi selama interview adalah kunci utama. It’s okay jika wawancara tidak berjalan ideal sesuai ekspektasi, karena yang lebih penting adalah bagaimana kita tetap fokus pada kebutuhan yang diminta dan solusi yang relevan. Ini adalah pengalaman pertama, dan saya cukup yakin akan ada interview-interview lain di masa depan. Harusnya kalau aku berkesempatan system design interview lagi kedepannya aku akan lebih siap ya😄
Day 3 of 99
Komentar