Sunday, July 20, 2014

Aneka Tips: Sukses Interview Untuk Software Engineer

(Dayton High School, 2015)

Postingan kali ini, gw mau berbagi tips interview, khususnya buat yang mau jadi software engineer: Berikut tips-tips nya:
  1. Belajar! Interview itu bukan cuma dateng buat ngobrol-ngobrol. Tapi akan ada test tertulis yang harus dikerjakan. Soal-soal yang biasanya ditanyakan, akan dijelaskan di bawah.
  2. Sebelum berangkat interview, lebih baik cek dengan perusahaan, dokumen apa yang perlu dibawa. Ijazah asli, fotokopi ijazah dan CV / resume wajib dibawa, walaupun perusahaan bilang ga perlu bawa apa-apa.
  3. Cari tahu sedikit tentang perusahaan: bergerak di bidang apa, client nya siapa, dan informasi lainnya. Jadi pas ditanya 'Apa yang kamu tahu tentang perusahan ini?', jawabannya ga cuma melongo.
  4. Ga perlu bawa laptop. Serius, deh! Kalian ga akan diminta ngerjain coding di laptop, kok.
  5. Berpakaian sepantasnya. Formal, tapi ga perlu terlalu formal. Untuk cewek, ga perlu pake baju pesta yang bling-bling, sepatu hak tinggi atau rok mini. Buat cowok, ga perlu juga pake dasi atau jas segala. It's too much, way too much.
  6. Dateng interview jangan telat. Jangan niru-niru gw yang telat pas interview pertama. Tapi ya, ga perlu dateng 1 jam lebih awal juga.
  7. Tersenyumlah saat memperkenalkan diri. Berbicaralah dengan sopan dan tatap mata lawan bicara, jangan sibuk ngeliatin handphone atau awang-awang.
  8. Kerjakan soal test dengan baik. Jangan mencontek, ya. Bila soal test nya cukup banyak, cobalah untuk menjawab pertanyaan sebanyak mungkin. Jangan fokus terlalu lama di satu soal.
  9. Setelah test selesai, biasanya si bos bakal nanya-nanya, dari soal kuliah, pengalaman kerja, atau soal-soal IT general. Jawablah semuanya dengan jujur. Kalo ga tau, bilang aja 'enggak tahu', ga perlu sok tahu.
  10. Selesai interview, apapun hasilnya, sebaiknya ucapkan terima kasih atas undangan interview via email.
Berikut soal-soal yang biasa ditanyakan pada software engineer: Gw ga tau kalo soal di Indonesia begini juga atau ga. Soalnya gw ngumpulin data ini dari pengalaman interview pertama dan interview terakhir gw sendiri dan teman-teman gw di Kuala Lumpur.
  1. Pertanyaan matematika dan logika umum, contohnya: Berapakah 2 bilangan selanjutnya:
    1, 1, 2, 6, 24, ..., ...
  2. Database query, kebanyakan sih, SQL. Biasanya mereka fokus ke LEFT JOIN, INNER JOIN, UNION, UNION ALL, dan aggregate function seperti SUM, AVG, COUNT, MIN, dan MAX.
  3. Masih berhubungan dengan database, biasanya ada case study di mana kandidat akan diminta untuk men-design simpel database berdasarkan case study.
  4. Ada juga soal database teori di mana kandidat harus menjelaskan apa itu 1NF, 2NF, dan 3NF.
  5. Pertanyaan yang berhubungan dengan programming: function untuk menentukan suatu bilangan termasuk bilangan prima atau bukan, function untuk mengubah string menjadi int dan kebalikannya tanpa menggunakan built-in function, function untuk membuat sorting algorithm, dan pertanyaan kreatif lainnya yang kalo gw list bisa sampe ratusan.
  6. Cara membalas email kepada client. Biasanya akan ada beberapa case study. Jawablah dengan professional.
  7. Diagram. Masih inget Use Case? Entity Relationship Diagram? Class Diagram? Biasanya keluar salah satunya.
Biasanya setelah selesai mengerjakan soal-soal tertulis, si bos akan melihat jawaban-jawabannya. Bila kandidat dinilai berpotensi, si bos bakal 'memaksa' kandidat buat ngejawab pertanyaan-pertanyaan, dan sedikit memberikan clue-clue. Di sini, si bos bisa ngeliat logical thinking si kandidat dan apakah si kandidat bisa berpikir saat under pressure.

Untuk yang sudah berpengalaman, si bos biasa akan bertanya soal pengalaman kerja sebelumnya: perusahannya fokus di bidang apa, client nya siapa, sistem apa aja yang dibuat, seberapa besar kontribusi kandidat, architecture diagram nya seperti apa, dan lainnya.

Petanyaan software engineer yang sudah berpengalaman bisa dilihat di SINI. Selain itu, gw juga pernah nge-post pengalaman gw menghadapi interview ala Microsoft yang bisa disimak di SINI.

Biasanya sih, interview berlangsung minimal 2-3 jam. Beberapa perusahaan bisa saja memanggil kandidat untuk second interview (biasanya, sih, yang interview pertamanya ga langsung sama bos).

Buat yang mau interview, lebih banyak persiapan, pastinya akan lebih bagus.
Good luck!!
Saturday, July 12, 2014

Lika-Liku Software Engineer: Pengalaman Interview Terakhir

Setelah insiden interview pertama, gw berencana untuk ga mencari kerja dulu dalam waktu dekat. Gw mau nunggu sampe semua urusan gw bener-bener selesai dulu. Anehnya, malah temen-temen gw yang sibuk nyariin gw kerjaan. Dari beberapa tawaran, ada satu temen deket gw yang juga nawarin kerjaan. Bisa dibilang temen gw yang ini, sebut saja namanya si Y, cukup dekat dengan gw karena kita punya beberapa kesamaan: sama-sama aneh dan suka ngomongin hal-hal yang ga jelas. Akhirnya, setelah urusan gw selesai semua, gw pun meng-iya-kan tawaran dia.

Undangan interview pun langsung datang. Biasalah, kalo rekomendasi orang dalem, pasti jadi top priority, deh. Seminggu setelah undangan interview, gw udah balik lagi ke KL. Ga mau ngulangin kesalahan yang sama dengan interview pertama, gw belajar. Gw sadar otak gw udah blank, udah hampir setahun juga ga nyentuh coding.

Nebeng si Y, gw berangkat ke kantor. Saat sampe di kantor, gw udah ga kaget lagi walau ada kertas test di tangan gw. Berbeda dari interview sebelumnya, kali ini soalnya cuma 3, dan ga pake abc-an. Satu tentang logic dan programming, dan dua lagi lebih ke diagram dari case study yang ditentukan.

Satu jam kemudian, si bos dateng. Jawaban gw cuma diliat sekilas dan digeletakin gitu aja. Dia malah nanya-nanya soal yang random. Dari soal matematika, database, general IT knowledge, kombinasi dan gabungan ketiganya, sampe soal liburan gw ke Eropa, yang gw yakin dia tau dari si Y.

Herannya, membahas liburan gw ke Eropa itu memakan waktu cukup lama. Terus dia malah sibuk bercerita sendiri. Total interview kira-kira 3 jam: 1 jam test, 30 menit gw jawab pertanyaan lisan dengan asal-asalan sotoy, dan 1.5 jam sisanya, gw cuma duduk dengerin dia cerita. Serius!!

Untungnya, setelah duduk dengerin dia cerita dengan semangatnya, ending nya bahagia.

Si bos (B), Gw (S):
B: 'Actually you have been confirmed even before the interview, when you were still in Europe.
S: 'Wow! How come?'
B: 'Y told me that you are very good, better than him. I was surprised. He is very good and he recommends someone who is better than him. I ask him to invite you for interview. He said you are still enjoying your holiday in Europe. So we wait lah, and finally you are here.'
S: (Gw shock. Si Y kesamber petir apaan tiba-tiba bilang gw better than him? Biasanya dia ga pernah mau ngalah, kok. Udah gitu, gw ke Eropa itu 3 bulan lalu lho!) 'No laahh. He is my senior, he is obviously much better than me.'
B: 'No lah, I see you are also quite good. It's up to you now whether you want to join us or not. If you are okay, our HR will arrange the visa for you.'


Dan si bos tadi nyuruh si Y nganterin gw pulang. Gw bahagia!
Wednesday, July 9, 2014

Curhatan Anak Kuliahan: Lupa Jalan Pulang

Where is My Home? (Chuck, 2013)
Hari pertama sampe di KL, gw dijemput sama pihak kampus buat nyari hotel, soalnya nyokap gw ga diperbolehkan tidur di apartment kampus. Abis taro barang-barang dan check-in hotel, kita dibawa ke kampus untuk melengkapi prosedur pendaftaran dan soal administratif lainnya, termasuk sewa apartment.

Setengah jam kemudian, gw dianter ke apartment. Begitu ngeliat apartment nya, gw seneng banget. Apartment-nya lumayan besar dan bagus, karena gw dapet penthouse. Gw ambil master room, berdua sama anak Thailand yang baru gw kenal di bandara tadi. Kamarnya cukup besar dilengkapi 2 kasur single, 2 meja belajar, 2 kursi, 2 lemari baju, dan ada kamar mandi di dalam. Terus terang gw cukup puas, melebihi ekspektasi gw. Gw pun beristirahat sejenak, unpack my things, dan tidur-tiduran.

Yang penasaran mau liat apartment gw, bisa klik di sini.

Beberapa menit kemudian, gw sudah ada di hypermarket terdekat untuk membeli barang kebutuhan sehari-hari, seperti sabun mandi, shampoo, gantungan baju, piring, gelas, selimut, dan sebagainya. Gw borong cukup banyak karena gw memang berencana untuk membeli barang kebutuhan sehari-hari di sini. Ga cukup kopernya kalau semua bawa dari Indonesia.

Selesai belanja, gw nyari taksi mau balik. Tapi bentar, tunggu dulu, tunggu dulu:
APARTMENT GW TADI NAMANYA APA, YA? ALAMATNYA APA? JALANNYA KE MANA?

Gw diem dulu kaya patung. Otak gw sibuk nyari akal. Google? Smart phone aja belom punya. Oh, ya! Gw SMS aja temen sekamar gw nanyain nama apartment. Brilliant!

Beberapa menit kemudian, dia SMS balik.
'I think this is our apartment name: XXXXXX'
Gw bahagia.

Gw pun nyetop taksi, bilang kalo gw mau ke XXXXXX. Sopir taksi pertama ga tau apartment itu ada di mana. Sopir taksi kedua ga pernah denger ada apartment namanya itu. Sopir taksi ketiga cuma bisa bengong.

Gw diem lagi kaya patung. Otak gw sibuk nyari akal yang lain. Terngiang-ngiang peribahasa: 'Malu bertanya, sesat di jalan'. Oh, ya! Gw nanya orang kiri kanan aja. Brilliant!

Abis nanya kiri kanan 'Do you know any apartment nearby with this name?' sambil nyodorin HP, akhirnya ada seseorang yang tau. Ternyata, nama aprtment sebenernya bukan 'XXXXXX' tapi 'XXSTXX'! Gw bahagia, walaupun sedikit ngomel-ngomel: Ya ampun, cuma beda dikit doank, sopir taksi pada ga tau.

Super valuable lesson learnt. Sejak kejadian itu, gw selalu tahu nama tempat gw tinggal sebelum gw keluar-keluar. Kalaupun gw tinggal di hotel yang namanya pake bahasa lain, gw selalu simpen kartu nama hotel yang lengkap dengan alamatnya.