Sunday, January 3, 2016

Lika-Liku Software Engineer: Interview Ala Microsoft

Selama berkarir di dunia IT, gw tentunya sangat familiar dengan proses interview untuk software engineer. Proses interview memang beraneka ragam, tapi biasanya sangat standard: duduk, ngerjain tes tertulis, interview lisan, dan pulang, seperti yang pernah gw ceritakan di post Perjuangan Mencari Kerja.

Namun suatu hari, gw dapet panggilan interview dari salah satu perusahaan di Singapore, yang memiliki style interview yang unik. Style unik berasal dari sang CTO (Chief Technology Officer), berkewarganegaraan Canada, yang pernah bekerja di Microsoft selama kurang lebih 15 tahun. Dia ikut andil dalam pembuatan Microsoft Windows 98, Windows XP, sampai ke SQL Server 2012.

Ketika gw tanya kenapa dia keluar dari Microsoft, dia menjawab kalo dia bisa balik ke Microsoft kapanpun dia mau, tapi sekarang dia mau pensiun dini. Eeehh apa daya, salah satu temannya yang juga warga negara Canada, baru saja membuka cabang di Singapore dan meminta bantuan dia buat memimpin technical team-nya.

Singkat cerita, tibalah gw di situ, bertemu dengannya untuk interview. Dia bilang dia biasa meng-interview para kandidatnya dengan 'Interview Ala Microsoft', cuma versi lebih gampang aja. Karena kalo terlalu susah dan surprisingly gw berhasil menjawab, gw kerjanya di Microsoft, bukan di kantor ini. Orang-orang mungkin lebih mengenal style interview ini dengan sebutan 'Whiteboard Interview'.

Whiteboard interview (Startup Helium, 2015)
Interview-nya face to face, perorangan, tipikal interview IT pada umumnya. Bedanya, tidak ada tes tertulis atau tes langsung di komputer yang harus dikerjakan.

Seperti biasa, awalnya dia mempersilakan gw duduk dan memperkenalkan diri dulu. Kemudian meminta gw menjelaskan pengalaman dari technical skill yang gw cantumkan dalam resume, seperti berapa lama pengalaman gw di C#, Java, SQL, dan lainnya; projek apa yang gw bikin pake C#, Java, dan lainnya.

Kemudian dia bertanya tentang perusahaan gw yang sekarang, kerjanya ngapain, role and responsibility nya apa, ikut andil di projek apa aja, tiap projek biasanya tim nya berapa orang, pembagian tugasnya gimana, apa yang dikerjakan oleh anggota tim yang lain, relasi sama teman satu tim gimana, relasi dengan atasan gimana, dan lainnya.

Setelah sepuluh menit wawancara lisan, barulah dia mulai technical test. Dia memberikan gw beberapa sepidol dengan warna yang berbeda-beda. Dia sendiri juga memegang sepidol dengan warna yang berbeda-beda, sehingga masing-masing dari kita mempunyai sepidol berwarna-warni sendiri-sendiri. Sesi pertanyaan pun dimulai. Pertanyaan meliputi:

  1. SQL Server dan Database Design.
  2. Programming.
  3. Tes logika.

Jumlah pertanyaan bervariasi, soalnya juga berbeda-beda tiap kandidat, karena fresh dari otaknya saat itu juga. Gw tahu hal ini karena salah satu temen gw juga pernah interview di sana dan kemudian merekomendasikan gw. Pertanyaan yang temen gw dapet, berbeda dengan pertanyaan yang gw dapet.

Setiap sesi cuma ada 1 pertanyaan, kecuali soal logika yang terdiri dari 2 pertanyaan, sehingga totalnya ada 4 pertanyaan. Tapi, dia bakal menanyakan setiap pertanyaan sampai detail, dan dia meminta gw menjawab dengan berbagai cara yang berbeda-beda. Jadi, walaupun pertanyaannya cuma 4 nomer, tapi nomer 1 nya aja udah ada 1a, 1b, 1c, 1d, dan seterusnya sampai dia puas.

Sesi test dimulai dari SQL dan database design. Dia bikin case study dan nyuruh gw bikin database design buat case study tersebut. Setelah selesai men-design, dia bakal nanya gimana cara dapetin data untuk function tertentu. Awalnya gampang banget, cuma butuh 1 table sama 1 select statement doank. Abis itu baru requirement dari case study-nya jadi makin kompleks, jumlah table bertambah, bikin query-nya pun makin rumit.

Bagian programming juga dimulai dari pertanyaan paling gampang, contohnya bagaimana cara membat fungsi X tanpa meggunakan built-in library. Setelah gw tulis code-nya di papan tulis, terus dia bakal bilang: Gimana cara mempersingkat iterasinya? Begitu gw ganti code-nya buat memenuhi kriteria baru, dia bakal nanya lagi: Gimana kalo ga pake loop? Gimana kalo ga pake ini itu? Gimana kalo cuma boleh 1 line? Dan 'gimana kalo' lainnya...

Terakhir adalah tes logika. Tes logika kali ini adalah tes logika murni tanpa embel-embel programming atau database. Buat gw yang hobi bacain ridde dan penggemar puzzle matematika, tes logika kali ini bisa dibilang ga begitu susah, cuma memang lebih tricky dibanding tes logika di perusahaan-perusahaan lain yang gw tahu.

Lamanya technical test 1,5 jam. Saat interview, dia selalu meminta gw untuk 'think out loud' alias mikir sambil ngomong. Dia bilang sendiri kalau benar atau salahnya jawaban gw, itu urusan kedua. Yang dia prioritaskan bukan jawaban gw, tapi proses berpikir, proses berkomunikasi, dan bagaimana cara gw berdiskusi / bekerja sama dengan dia untuk menyelesaikan masalah. Gw sendiri beberapa kali stuck di tengah-tengah dan baru bisa menjawab setelah diberi clue. Walau begitu, tetep aja gw keterima! Yay!

Menurut gw, interview ala Microsoft atau whiteboard interview ini jauh lebih efektif dibanding tes tertulis. Untuk tes tertulis, penilaiannya murni berdasar benar atau salahnya jawaban kandidat, tanpa tahu bagaimana proses berpikir mereka. Para kandidat juga bisa saja mencari jawaban lewat Google, karena biasanya tes dilaksanakan di ruang terpisah dengan pengawasan yang minim.

Balik lagi ke pertanyaan interview, di antara ketiga sesi tersebut, pertanyaan tentang database yang paling susah. Interview lain biasanya cuma nanyain select-insert-update-delete query yang simpel atau nanyain cara kerja index. Sebelumnya, gw sama sekali ga pernah merasa kesulitan menjawab test tentang database. Sedangkan kali ini, gw disuruh men-design database untuk sistem tertentu dengan requirement tertentu. Setelah design database selesai, dia bakalan nanya gimana cara dapetin select query untuk function tertentu, seperti yang udah gw jelasin di atas. Dan... gw sempat berdiam diri 5 menit cuma buat mikir.

Mungkin memang dia sengaja kasih pertanyaan yang susah karena dia liat gw punya sertifikat Microsoft, dan dia sendiri ikut andil dalam pembuatan SQL Server. Dia mengaku kalo dia sangat-sangat-sangat familiar sama semua yang berhubungan sama SQL dan database. Dia bahkan bilang kalo dia yang men-design sertifikat Microsoft yang gw pegang saat itu.

Salutnya, walaupun dia jenius, dia tetep ramah, fun banget, dan ga pelit ilmu. Kadang agak kocak juga. Sama sekali jauh dari tipikal orang yang sombong atau bossy. I've found another great mentor to learn from!

No I'm not lucky, I'm blessed!

0 comments:

Post a Comment