oke jadi saya mendapat 47 SMS dari Marcus dalam satu minggu tentang persiapan wawancara insinyur perangkat lunak Uber saya. empat puluh tujuh. saya membaca mungkin tiga di antaranya. mengebom wawancara. dua dari empat putaran, total faceplant. Marcus jika Anda membaca ini: ya. Saya tahu. kamu bilang begitu padaku. kamu bisa berhenti.
konteks singkat tentang Marcus -- dia magang di Uber pada musim panas 2024 di infrastruktur Eats, pada musim panas mereka merestrukturisasi tim pengiriman. jadi ketika dia mengirimi saya pesan pada jam 11 malam untuk "mempelajari produk Ibrahim" dan "melihat cara kerja pengiriman" dan "membaca tentang lonjakan harga" dia benar-benar tahu apa yang dia bicarakan. seperti benar-benar tahu. dan dia memformat iMessage-nya dengan poin-poin? siapa yang melakukan itu haha. Marcus melakukannya.
lagipula, apa yang kulakukan sambil mengabaikan pesan-pesan ini? duduk di tempat tidur jam 2 pagi dengan domino pepperoni dingin di pangkuanku. $7,99 kesepakatan menengah. memesan begitu banyak minggu itu Domino mengirimi saya pemberitahuan push pada jam 1 pagi seperti hai Ibrahim, kamu lapar? (ya. selalu.) menggiling media LeetCode. mata juling. seratus dua puluh masalah dalam tiga minggu dan NOL postingan blog Uber terbaca. menggiling LeetCode tanpa rencana adalah caramu membuang waktu. tidak ada waktu di aplikasi memikirkan tentang pencocokan. tidak pernah mencari di Google "bagaimana cara Uber mengirim" yang membutuhkan waktu empat detik. saya menyiapkan array, pohon, daftar tertaut, DP. itu saja. itulah keseluruhan rencananya dan itu adalah rencana yang buruk.
saya datang ke kantor SF dan saya sudah gemetar. Ngomong-ngomong, Priya juga memperingatkanku tentang hal ini. Priya adalah teman kuliahku (yah, awalnya pacar teman sekamar kuliahku, sekarang salah satu teman terdekatku, hidup ini aneh). dia selalu mengatakan bahwa dia memasuki wawancara untuk mencoba mempelajari hal-hal, bukan mencoba untuk dipekerjakan. dan aku ingat baik-baik saja Priya itu filosofi yang lucu tapi aku butuh PEKERJAAN. ternyata dia benar? Ya. dia benar. ketika Anda sangat membutuhkan tawaran, otak Anda langsung terkunci. Anda lupa kata-kata yang Anda gunakan setiap hari. tulisan tangan papan tulis Anda terlihat seperti Anda sedang mengadakan acara medis. maaf Priya. kamu benar. aku berhutang makan malam padamu.
putaran perilaku menghancurkan saya. Saya punya cerita bagus tentang mengoptimalkan waktu respons API di perusahaan terakhir saya. saya menukar seluruh antrian pesan, percepatan yang nyata dan terukur. pewawancara saya menjawab "metrik apa yang bergerak" dan saya menjawab "secara signifikan". dan dia hanya. menatapku. keheningan mati selama tiga detik. "berapa banyak." dan saya duduk di sana mengerjakan matematika mental mencoba mengingat angka latensi P99 yang tidak pernah saya tulis karena tampaknya masa lalu saya membenci saya di masa depan. Marcus memberitahuku hal seperti ini akan terjadi. dia mengatakan pewawancara Uber ingin Anda mengatakan hal-hal seperti "Saya memotong P99 dari 340 md menjadi 90 md setelah menukar RabbitMQ dengan Kafka" dan saya muncul dengan "Saya membuat segalanya lebih cepat." kerja bagus Ibrahim. mereka juga mengikat setiap pertanyaan perilaku kembali ke nilai-nilai perusahaan mereka, terobsesi dan mengambilnya serta membangunnya dengan hati, dan saya mengetahui hal ini SELAMA wawancara karena saya tidak membaca halaman karier haha.
hal terbesar yang saya pelajari dari babak itu. TULISKAN ANGKA ANDA. aku tidak bisa cukup menekankan hal ini. sebelum Anda masuk, lihat saja proyek-proyek lama. duduk di sana selama dua puluh menit. apa yang bergerak. seberapa banyak. kenapa kamu memilih Kafka daripada RabbitMQ atau apalah. mendapatkannya di atas kertas. catatan tempel, serbet, aku tidak peduli. karena inilah yang terjadi jika Anda tidak melakukannya: Anda blank. pewawancara Anda bertanya "metrik apa yang bergerak" dan Anda menjawab "secara signifikan" dan kemudian hanya ada waktu tiga detik. Tidak ada apa-apa. dan kalian berdua mengetahuinya. jangan mengada-ada juga. mereka akan menekan setiap nomor dan Anda akan terjebak dalam dua tindak lanjut. saya mencoba metode STAR. sejujurnya tidak melakukan apa pun untukku. mungkin itu berhasil untuk orang lain. Aku punya kisah nyata, bahkan yang bagus, aku tidak bisa menarik detailnya dari kepalaku ketika seseorang menatapku. jadi ya. catatan tempel. di laptopmu. di ponsel Anda. di manapun.
coding adalah satu-satunya titik terang saya. Uber memulai dengan CodeSignal OA, empat masalah dalam tujuh puluh menit. dua yang pertama adalah susunan dasar, saya melumpuhkannya dalam waktu total mungkin dua belas menit. ketiga adalah jendela geser dan saya telah memecahkan masalah seperti itu enam hari sebelumnya, jadi murni keberuntungan. keempat adalah penjelajahan grafik yang memakan waktu dua puluh lima menit dan saya mengirimkannya dengan sisa empat puluh detik, telapak tangan berkeringat. Marcus mendapat DP pada yang keempat sehingga pool berputar. masalah pemrograman dinamis membuat pertanyaan wawancara yang buruk sejujurnya. Anda mungkin sudah mengetahui triknya atau Anda hanya duduk diam dan memandanginya. tidak ada yang akan menemukan solusi DP yang optimal dari awal sementara pewawancara mereka menonton.
layar ponsel dengan insinyur Uber asli. grid tertimbang dengan rintangan, tingkat sedang, kemudian tindak lanjut menambahkan urutan prioritas dan tiba-tiba menjadi sulit. hal yang membuat saya lengah adalah seberapa sering screener saya BERBICARA. aku baru saja melakukan a Layar ponsel Google di mana insinyur mengucapkan mungkin lima belas kata selama empat puluh lima menit, keheningan total saat saya membuat kode, terasa seperti saya sedang mengikuti ujian di ruangan kosong. orang Uber justru sebaliknya, berkata "bagaimana jika masukan ini kosong" dan "antar saya melewati jalur itu lagi" seperti kami adalah dua rekan kerja yang melakukan debug sesuatu pada jam 3 sore pada hari Rabu. aku sebenarnya sangat menyukainya. membicarakan kode Anda saat Anda menulis, itulah inti dari layar ini dan ketika tidak ada yang membalasnya, rasanya aneh dan terisolasi.
rutinitas persiapan saya, dan saya baru memulai ini SETELAH melakukan pengeboman pada ronde pertama jadi lakukan apa yang saya katakan, bukan apa yang saya lakukan, yaitu menyelesaikan dua atau tiga masalah dasar sebelum menyentuh sesuatu yang keras. pencarian biner, 2Sum, DFS dan BFS pada pohon dan grafik, membalikkan daftar tertaut, penukaran koin untuk DP. ini adalah blok bangunan Anda. Anda ingin kode tersebut menjadi memori otot sehingga Anda dapat menulis kode secepat Anda mengetik. trik sebenarnya dengan masalah grafik hanyalah mengidentifikasi bahwa Anda sedang melihat masalah grafik. Marcus mengatakan ini jutaan kali dan saya akhirnya mendapatkannya selama CodeSignal saya ketika masalah empat menatap saya dan saya hampir melakukan kekerasan sebelum berpikir tunggu, ini benar-benar hanya BFS.
desain sistem di situlah aku mati. "rancang mesin pencocokan pengiriman." itulah yang dikatakan pewawancara saya. lima kata. otakku? kosong. benar-benar kosong. saya mengambil spidol dan mulai menggambar kotak layanan mikro di papan tulis seolah itu adalah pekerjaan rumah CS101. dan saya bisa melihatnya terjadi. wajahnya berubah. siku di atas lutut bersandar ke dalam, tertarik, dan kemudian tiga puluh detik kemudian lengan disilangkan, bersandar ke belakang. selesai denganku. orang ini MEMBANGUN sistem pengiriman Uber. MEMBANGUNNYA. dan di sini saya menggambar persegi panjang berlabel "API Gateway" seolah itu berarti apa pun baginya. dia mencoba membantuku. dia benar-benar melakukannya. "apa yang terjadi jika pengemudi offline di tengah pengiriman." oke um. "Bagaimana jika tiga restoran selesai memasak dan hanya ada satu pengemudi di dekatnya." uhhh. Saya duduk di sana memikirkan hal ini dari sudut pandang seorang pria yang memesan pad thai di Uber Eats dua kali seminggu. itulah keseluruhan model pengiriman mental saya. pengindeksan geospasial? tidak tahu. heuristik yang cocok? saya benar-benar tidak dapat mendefinisikan kata itu pada saat itu. persegi panjang di papan tulis. itulah yang saya punya. persegi panjang dan getaran.
(Omong-omong, James memberi tahu saya semua ini SETELAH. rekan kerja saya. melakukan DevOps untuk mencari nafkah, menjalankan sistem produksi sebenarnya, bukan proyek kelas. dia menguasai putaran desainnya di dua perusahaan berbeda. hal nomor satu: sebutkan saja Kafka, sebaiknya Anda menyentuh Kafka. karena pertanyaan lanjutan akan menghancurkan Anda dalam tiga puluh detik dan Anda akan duduk di sana sambil berkata "baiklah, saya membacanya." cukup ucapkan "antrean terdistribusi" jika Anda belum menggunakannya. jangan memalsukan keahlian. James juga memberi tahu saya untuk mengulangi masalahnya kembali ke pewawancara terlebih dahulu, tanyakan apa yang ingin mereka fokuskan, lalu mulai dari jarak tiga puluh ribu kaki dan perbesar. Saya tidak melakukan hal-hal itu sama sekali.
saya menjalankan InterviewMan sepanjang waktu dan sejujurnya itu menyelamatkan saya dari kehancuran total. selama desain sistem, ia mengambil "pencocokan pengiriman" sebagai topik sebelum pewawancara saya selesai berbicara dan memberi saya struktur awal sehingga saya memiliki sesuatu selain tatapan kosong. di CodeSignal ia menangkap pendekatan grafik pada masalah empat bahkan sebelum saya menguraikan batasannya sendiri. perilaku di sekitarnya menarik sebuah cerita dari sebelumnya di mana saya sebenarnya telah mengatakan angka latensi yang konkret, persis seperti yang diinginkan pewawancara saya. saya memeriksa dok, Monitor Aktivitas, daftar proses, rekaman layar pada CodeSignal dan Zoom setelahnya dan tidak dapat menemukannya. dua belas dolar sebulan untuk tahunan, tidak ada batasan sesi. dibandingkan dengan Interview Coder seharga dua ratus sembilan puluh sembilan dolar yang hanya melakukan coding (dua dari empat putaran), itu bahkan bukan sebuah pertanyaan. 57.000 pengguna sekarang, lebih dari dua puluh fitur yang dibuat agar tidak terlihat.
buku dengan sangat cepat. Memecahkan Wawancara Coding? tidak apa-apa. hanya menghaluskan segalanya, seperti Anda membacanya dan berpikir oh oke ini bisa dilakukan dan kemudian Anda duduk untuk wawancara nyata dan tidak. buku berbahaya jujur. Merancang Aplikasi Intensif Data. ya ampun. pengubah permainan untuk desain sistem. sungguh salah satu buku teknis terbaik yang saya miliki. membacanya bahkan jika Anda tidak memiliki wawancara apa pun, itu bagus. untuk algoritma saya menggunakan buku teks Jeff Erickson yang online gratis dan benar-benar menyenangkan? dia menulisnya untuk mahasiswa bukan peneliti sehingga tidak dibaca seperti disertasi. Marcus bersumpah demi Manual Desain Algoritma Skienna, tetapi bahkan dia mengakui Anda harus melewatkannya. pergi dari depan ke belakang adalah kerja keras.
jadi ya. Marcus benar. tentang segalanya secara harfiah. pelajari produknya sebelum Anda muncul. pewawancara desain sistem di Uber membuat hal-hal sebenarnya yang mereka minta untuk Anda desain. itu bukan metafora. mereka benar-benar membangunnya. tulis nomor perilaku Anda pada catatan tempel. lakukan pemanasan setiap pagi seperti melakukan peregangan sebelum lari. dan demi Tuhan, jangan masuk ke dalam desain bulat dan menggambar persegi panjang di papan tulis dan menyebutnya sebagai sistem. saya melakukan itu. itu berjalan persis seperti yang Anda pikirkan.
Ready to Ace Your Next Interview?
Join 57,000+ professionals using InterviewMan to get real-time AI assistance during their interviews.
