FAQ: Melamar Pekerjaan Software Engineer di Indonesia
Halo! Kali ini, saya kan berbagi FAQ yang sering ditanyakan orang-orang (dan yang saya juga sering pertanyakan) ketika ingin melamar menjadi software engineer, baik full-time maupun internship (magang). Semoga bermanfaat!
FAQ Umum: Full-Time, Part-Time, dan Internship
Bagaimana cara apply ke perusahaan?
Perusahaan saat ini membuka lowongan pekerjaan secara online. Ada yang caranya harus email langsung ke HR supaya dibalas dengan lebih cepat.
Apa saja proses yang dilalui agar diterima di perusahaan?
Standar seperti layaknya perusahaan, kamu akan melalui beberapa interview dan mungkin diberikan tugas project. Bedanya dengan interview pada umumnya, semuanya hampir teknikal. Kebanyakan startup tidak melakukan interview “basa-basi” HR dengan kandidat (semacam “Mau jadi apa 5 tahun lagi?”, “Apa kekurangan dan kelebihan kamu?”). Berikut adalah beberapa cara utama (selain screening CV) perusahaan menyeleksi kandidat software engineer.
- Melakukan online coding test/coding interview. Kedua cara tersebut akan menguji kemampuan algoritma dan struktur data (selanjutnya akan saya singkat menjadi alstrukdat).
- Melakukan system design interview. Biasanya pertanyaan semacam “Coba buat sistem bit.ly”, dan kamu mulai dari desain basis data, dst.
- Menyuruh kamu untuk membuat sebuah project dengan framework/library tertentu untuk mengetahui seberapa mahir kamu menggunakan framework/library tersebut. Misalnya, saya sempat disuruh membuat sebuah web crawler situs diskon bank BNI.
- Khusus untuk universitas/lembaga penelitian, mereka umumnya meminta kamu mengajukan proposal penelitian.
Apa bedanya online coding test dengan coding interview?
Pada online coding test, kamu akan mengerjakan soal-soal alstrukdat dalam suatu periode waktu. Diberikan masukan masalah sedemikian serupa, buat kode untuk menghasilkan keluaran yang diharapkan. Penilaian apakah program tersebut benar atau tidak akan dilakukan oleh autograder online sistem. Coba Hackerrank sebagai bayangan tes yang akan kamu hadapi.
Coding interview juga sebenarnya mirip, yaitu membuat kode untuk menyelesaikan suatu masalah. Tapi, di sini kamu tidak hanya sekedar menulis kode. Kamu akan berhadapan dengan interviewer, baik langsung di kantor maupun dengan video call, dan harus berbicara menjelaskan juga proses berpikir kamu dari ide hingga eksekusi penulisan kode. Berikut adalah contoh coding interview di Google.
Saya sendiri belum pernah coding interview di papan tulis, tapi saya beberapa kali interview video call dengan menulis kode di Google Docs. Pada awalnya memang akan terasa “aneh”. Kamu harus tetap mengetik kode sambil bicara menjelaskan, dan kode yang kamu ketik tidak dapat dijalankan. Tetapi, di sini interviewer dapat melihat secara langsung proses kamu mendapatkan ide optimal dan seberapa baik kamu mengerti bahasa pemrograman yang kamu usulkan dari kelancaran penulisan kode. Untuk mengurangi rasa aneh, solusi terbaiknya adalah dengan melakukan interview berulang kali.
Bagaimana kalau kode di coding interview tidak bisa dicompile atau runtime error (salah nama fungsi, typo, dst.)?
Saya pernah melakukan interview dengan Google dan ketika saya cek kembali kodenya, sudah jelas kode tidak bisa dicompile. Kalaupun kesalahan compile saya dibetulkan, kode saya tetap akan mengalami runtime error (array out of bound) bahkan untuk input sederhana 😱. Ajaibnya, saya tetap dapat lanjut ke interview selanjutnya. Mungkin tergantung interviewer juga sih, tapi selama kamu memberikan kesan baik, sepertinya interviewer akan oke-oke saja.
Saya merasa nggak adil. Kenapa hasil interview coding saja yang menjadi dasar kemampuan saya sebagai software engineer? Padahal kita pas kerja mungkin nggak akan pernah menyelesaikan persoalan alstrukdat!
Nah, saya sendiri nggak punya jawaban untuk pertanyaan ini. Tapi, saya pernah baca sebuah opini bahwa proses seleksi kandidat yang paling efektif, cepat, dan murah adalah dengan menggunakan coding interview.
Kemampuan interview alstrukdat saya pas-pasan. Saya kan bukan anak competitive programming (CP). Apa berarti saya nggak mungkin diterima di perusahaan top?
Percaya deh, kamu nggak perlu memiliki kemampuan super anak-anak yang sering menang lomba CP. Bahkan untuk diterima di Google sekalipun. Saya ikut Comfest dan Gemastik beberapa kali di bidang CP dan nggak pernah lanjut 10 besar final (selalu peringkat 20-an 😢). Saya baru kenal programming saat tahun pertama di kuliah dan awalnya juga kesulitan menghadapi mata kuliah alstrukdat. Yang harus kamu lakukan adalah latihan, latihan, dan latihan. Jangan pernah merasa underprivileged ketika melihat teman-teman jenius kamu diterima di perusahaan impianmu. Jadikan itu sebagai inspirasi untuk terus belajar. 🙂
Lebih bagus kerja di startup atau nggak?
Ini subyektif sih, tapi menurut saya pribadi saat internship, magang di startup jauh lebih menambah pengalaman dibandingkan magang di perusahaan konvensional. Saya sering dengar kalau magang di perusahaan konvensional, umumnya hanya datang kerja, duduk manis, nggak produktif, kemudian pulang. Kalau di startup, banyak hal yang akan kamu lakukan karena biasanya kamu magang mengerjakan fitur produk (misal fitur pencarian di Bukalapak) langsung bersama engineer full-time. Teknologi yang dipakai startup juga umumnya teknologi baru yang sedang hangat didiskusikan banyak orang.
Untuk full-time ataupun intern, mungkin startup akan jauh lebih seru. Orang di startup juga umumnya muda-muda, hanya beda kisaran 2–5 tahun, jadi rasanya nggak canggung untuk bertanya banyak dan sekedar ngobrol-ngobrol. Selain itu, kamu bisa kerja pakai kaos, sendal, datang dan pulang sesuka hati, nggak ada birokrasi gono-gini, dll selama kamu menyelesaikan tanggung jawab. Respect is not shown by your outfit, guys. What’s important is good work ethics and good brain 😃. Memang ada beberapa startup yang sibuk banget sampai karyawannya sering lembur dan kehilangan work-life balance, tapi kayaknya secara umum, hidup karyawan startup baik-baik saja.
Bagaimana CV/resume yang bagus?
CV sendiri nggak ada standarnya di Indonesia. Saya sendiri ikut syarat-syarat yang dijelaskan di blog ini karena kebetulan dulu ingin coba apply ke perusahaan di Amerika Serikat (walaupun nggak ada yang respon 😆). Ini adalah CV yang saya kirimkan dulu. Benar-benar simple. CV teman yang lain ada yang berwarna supaya menarik, ada yang dua halaman, dst. dan sepertinya mereka tetap dipanggil untuk interview. Intinya, pastikan CV kamu singkat dan enak dibaca.
Apakah baiknya saya apply ke banyak perusahaan sekaligus, atau satu-per-satu sambil menunggu penolakan/penerimaan?
Saya sendiri pakai strategi langsung apply ke banyak perusahaan sekaligus. Lumayan keteteran sih. Kamu harus pintar-pintar mengatur jadwal, tapi umumnya interview dilakukan secara online sehingga nggak terlalu sulit. Technical interview antar perusahaan juga sama, jadi nggak perlu persiapan ekstra untuk perusahaan tertentu. Yang paling pusing dari cara ini adalah ketika kamu diterima banyak offer, kamu harus mampu memilih satu dan menolak sisanya. Dulu mama saya sedikit kesal dengan cara saya ini. Dia bilang, “ditolak pusing, diterima juga pusing” 😆.
Ada yang memilih cara yang kedua. Teman saya bilang bahwa kita bisa belajar terlebih dahulu dari feedback interview yang gagal sebelum interview perusahaan selanjutnya. Dia juga bilang cara ini lebih “bermoral” karena ketika sudah diterima di satu perusahaan dan memang minat kerja di situ, harusnya kita tidak cari perusahaan yang lain lagi. Kelemahan dari cara ini adalah slot magang dari perusahaan bisa habis diambil oleh orang lain kalau kamu terlalu lama.
Seberapa besar pengaruh asal universitas untuk diterima kerja?
Sayangnya, asal universitas cukup berpengaruh. Privilege utama yang sangat mencolok adalah kesempatan kamu untuk dapat interview, meskipun kamu belum punya pengalaman project/magang. Tapi, tetap saja kalau dari ITB interviewnya nggak bagus, ya ditolak. Tentunya, kalau kamu bukan anak universitas top, kamu masih memiliki peluang besar kalau kamu punya banyak project/kontribusi atau sering menang lomba supaya direspon oleh HR. Dengar-dengar, privilege yang lain adalah besar gaji yang diberikan bisa berbeda antara lulusan X dengan lulusan Y.
Seberapa pengaruh internship sebelumnya?
Mirip seperti pengaruh asal universitas: privilege kesempatan interview dan besar gaji.
Seberapa besar pengaruh IPK untuk diterima kerja?
Untuk yang satu ini, saya nggak yakin. Dari pengalaman saya yang anak ITB dan apply ke startup, sepertinya IPK sama sekali nggak berpengaruh. FYI, nggak ada satu startup pun yang meminta transkrip.
Apa bidang yang paling baik saat ini sebagai software engineer (back-end, front-end, machine learning)?
Ini kembali ke minat masing-masing. Sekarang AI, ML, dan NLP dibahas di mana-mana. Saya awalnya magang back-end dan cukup senang dengan pekerjaannya. Saya lalu mencoba ikut trend, di mana tugas akhir saya dan internship terakhir saya berhubungan dengan NLP. Dan akhirnya, saya menyimpulkan bahwa melakukan eksperimen ternyata membosankan dan membuat jenuh 😆.
Intinya, jangan ikut trend ya. Mungkin ada baiknya kamu magang beberapa kali atau ambil kelas kuliah bidang berbeda-beda untuk mengetahui minat kamu sebenarnya. Memang sih ada beberapa yang bilang kalau bidang X memiliki gaji yang lebih besar dari bidang Y, atau bidang X lebih banyak dibutuhkan dari bidang Y. Menurut saya sih, selain hal-hal tersebut, minat kamu harus jadi pertimbangan yang paling utama untuk menentukan role kerja kamu.
Berapa gaji software engineer di Indonesia?
Sangat bervariasi, tergantung dari perusahaan yang kamu apply dan lokasinya. Kamu bisa cek sendiri secara online di website Qerja dan Glassdor. Walaupun gaji di sini mungkin tidak terlalu akurat, kamu bisa dapat estimasi. Untuk startup besar Indonesia di Jakarta sendiri (Traveloka, Bukalapak, Cermati), kamu bisa perkirakan gaji di atas Rp10.000.000.
FAQ Internship / Magang
Sebaiknya, kapan saya mulai magang?
Sebenarnya, tahun pertama kamu juga sudah bisa mulai magang. Nggak ada yang terlalu dini, kalau ada tekad langsung aja. Syarat paling dasarnya sama, yaitu memiliki pengetahuan alstrukdat yang baik. Kalau nggak salah, ada intern semester 2 yang dapat magang karena lulus coding interview, dan dia belum mengerti basis data. Tapi, karena memang orangnya pintar juga, ketidaktahuan itu nggak jadi masalah.
Kalau di ITB, normalnya mahasiswa magang pada tahun ketiga untuk mengisi mata kuliah kerja praktek. Di UI, sepertinya sudah lumrah mahasiswa mulai magang tahun pertama dan kedua. Memang beberapa perusahaan lebih senang kalau kamu sudah tahun ketiga karena mahasiswa semester 6 pasti sudah melewati seluruh mata kuliah penting (basis data, web app, mobile app). Ada perusahaan yang menolak kandidat muda karena perusahaan tersebut lebih memilih mahasiswa tahun ketiga.
Berapa gaji magang sebagai software engineer di Indonesia?
Gaji tentunya berbeda-beda setiap perusahaan, bahkan ada yang tidak dibayar. Ada yang memberikan gaji secara harian (kerugiannya saat hari libur tidak digaji 😢) atau secara bulanan. Untuk startup-startup di Jakarta yang saya apply sendiri, gajinya sekitar Rp5000.000.
Bisa nggak saya magang di luar negeri?
Bisa banget! Teman angkatan saya banyak banget yang ke Jepang, tapi umumnya magangnya dalam bentuk penelitian di universitas, walaupun ada juga yang di perusahaan. Kalau kamu sangat jago, kamu bisa magang di perusahaan seperti Google dan Facebook di UK atau US.
Beberapa sempat tanya bagaimana kalau Singapura, tapi sayangnya mereka nggak memberikan visa internship untuk warga Indonesia.