Langsung ke konten utama

Bagaimana Rasanya Magang Sebagai Software Engineer di Tokopedia?

Aku merupakan mahasiswa tingkat tiga. Artinya, aku diharuskan untuk magang karena adanya mata kuliah Kerja Praktik di semester keenam. Setelah berpetualang mendaftar berbagai macam perusahaan termasuk Twitter, Google, Tokopedia, Traveloka, Bukalapak, dan sebagainya. Kini aku berakhir di Tokopedia sebagai Software Engineer Intern. Tentunya pengalaman semacam ini akan aku bagikan kepada teman-teman karena selain dapat memberikan gambaran mengenai apa saja yang akan dilakukan, tetapi ini juga dapat dijadikan semacam motivasi bagi teman-teman untuk bisa magang di Tokopedia. Ya, in short, fokus kita di tulisan ini adalah pengalamanku selama tiga bulan magang di Tokopedia.

Sesi foto bersama peserta magang dari berbagai universitas.

Onboarding

Seperti biasa, onboarding merupakan sesi pertama yang akan kita jumpai. Pada sesi ini kita akan diberikan pengenalan mengenai aturan kerja di Tokopedia, memperkenalkan diri ke tim yang "mengadopsi" kita, dan arahan untuk mempelajari beberapa hal sebagai tahap awal. Sepertinya cukup jelas bukan? Pada dasarnya onboarding di berbagai macam tempat kurang lebih sama.

Sebagai informasi tambahan, saat onboarding kita diminta untuk melengkapi beberapa hal termasuk identitas personal dan informasi mengenai rekening kita. Untuk masalah gaji, di Tokopedia hanya menerima rekening BCA. Ya, BCA Syariah tidak termasuk! Apabila kamu ingin magang atau kerja di Tokopedia sebaiknya dipersiapkan sedini mungkin. Jangan lupa untuk tap in dan top out karena kalau lupa nanti kamu akan dihitung telat masuk kerja.

Setiap hari Rabu ada onboarding di Tokopedia jadi kita bisa pilih mau tanggal berapa mulai magangnya. Kamu hanya perlu konsultasi dengan recruiter untuk masalah ini.

Latar Belakang Tribe

Aku bergabung ke tribe bernama New Retail yang saat ini sedang mengerjakan Tokopedia Mitra dan aplikasi-aplikasi sejenis. Karena masih terbilang baru, ada banyak sekali hal yang dapat kita lakukan untuk memberikan kontribusi besar ke aplikasi-aplikasi tersebut. Meskipun aku bilang masih baru, aku bisa bilang penggunanya sudah sangat banyak. Taking care aplikasi dengan pengguna yang sangat banyak itu gabisa asal-asalan. Reliability dan performance-nya benar-benar harus diperhatikan. Inilah kenapa bergabung dengan tribe ini akan menjadi menarik ke depannya.

Tugas Belajar

Namanya juga magang. Salah satu objektif kita tentunya belajar. Tugas pertama yang akan kita dapatkan yaitu mempelajari bahasa pemrograman Go dan GraphQL. Selain itu kita juga diminta untuk mempelajari SQL agar kita memiliki pemahaman yang baik sebelum membuat query. Lebih bagus kalau kita bisa memperkirakan cost dari suatu query yang akan kita eksekusi. Nah, tugas ini batas waktunya satu minggu sehingga kita harus dapat belajar dengan cepat. Sebagai informasi tambahan, database yang digunakan di Tokopedia sejauh yang aku tahu adalah PostgreSQL, MySQL, dan Redis. Utamanya PostgreSQL jadi kamu setidaknya harus tahu sedikit tentang ini agar kalau kamu ingin melakukan setup database di lokal bisa melakukannya dengan mudah. Saranku sih pasang pgAdmin atau DBeaver.

Selain tugas-tugas untuk backend, aku juga dapet tugas untuk frontend karena salah satu hasil kerjaanku di internal tools Tokopedia punya UI dan UX yang lumayan. Karenanya, aku belajar beberapa framework untuk frontend seperti React.js (ups, ini library sih), Vue.js, dan Svelte. Aku belajar ketiga framework itu untuk mencari tau framework mana yang paling bagus untuk tugas frontend-ku. Ya! Aku yang anak magang ini dapat kesempatan untuk initiate proyek frontend baru dan sendirian! Maksudku, sangat jarang ada perusahaan besar yang memberikan kepercayaannya kepada anak magang dan aku di Tokopedia mendapatkan kepercayaan itu. Agar tidak mengecewakan, aku melakukan riset mendalam.

Pada akhirnya, keputusanku adalah untuk menggunakan Svelte! Berhubung Svelte hanya untuk handle komponen-komponen, aku butuh sesuatu yang dapat berperan sebagai server agar bisa pakai proxy pass-nya Engine X. Nah, itulah sebabnya aku pakai Sapper, sebuah web framework yang dikembangkan langsung oleh tim yang mengembangkan Svelte. Ternyata hasilnya menarik. Aku gabisa cerita lebih lanjut sekarang karena produk yang aku kembangkan itu belum rilis juga walaupun salah satu fiturnya sudah siap. Intinya, aku belajar banyak hal di Tokopedia.

Terombang-Ambing

Setelah melewati minggu pertama, aku terombang-ambing hingga sekarang (24/06/2019). Awalnya aku akan mengerjakan sesuatu di proyek tertentu. Sayangnya, peserta magang sepertiku tidak memiliki hak akses ke beberapa hal di proyek tersebut. Dengan demikian aku terombang-ambing beberapa hari untuk dicarikan tugas yang sesuai. Aku punya saran ke tim yang mengadopsiku yaitu "tolong manfaatkan teknologi seperti Docker Compose, Database Migration, dan Database Seeding untuk men-setup development environment untuk masing-masing proyek sehingga peserta magang sepertiku dapat ikut berpartisipasi." Ya, kami tidak mendapatkan akses karena database dan gRPC yang digunakan masih mengarah ke server staging! Maklum juga karena tim yang mengadopsiku ini terbilang masih baru. Semoga dapat menjadi lebih baik lagi ke depannya!

Setelah terombang-ambing, salah satu senior di sana yang menjadi supervisor-ku bertanya. "Ekspektasi lu magang di Tokopedia apa? Proyek seperti apa sih yang lu pengen kerjain? Biar gw bisa bantu lu provide itu." Mendengar itu aku pun memanfaatkan kesempatan ini untuk belajar lebih banyak tentang distributed systems and parallel computing. Salah satunya yaitu publisher-consumer dengan menggunakan NSQ. Aku juga memberikan diriku kesempatan untuk belajar lebih banyak tentang high performance computing dan highly available system juga highly reliable system. Aku memanfaatkan publikasi Google untuk mempelajari berbagai macam hal tersebut. Sayangnya gajadi dikasih tugas yang berkaitan dengan NSQ sih. But! Terima kasih ka Ivan karena hal itu membuatku tau dan belajar banyak tentang NSQ.

Setelah aku ngegas di paragraf pertama, ternyata masalah akses itu cukup sederhana. Aku hanya perlu meminta akses untuk akun jaringanku. Terima kasih untuk ka Razi yang udah ngasih ide ini. Akhirnya aku bisa melakukan development dengan mudah! Ya, database untuk development dan staging Tokopedia ini berada di jaringan intranet mereka sehingga kita tidak perlu repot-repot pasang sendiri. Tinggal tulis IP, port, database name, username, dan password di konfigurasinya dan viola! Kita udah bisa mulai development deh. Terima kasih infra Tokopedia!

Terbuka Pada Inovasi

Tugas pertamaku adalah melakukan implementasi fitur baru di internal tools Tokopedia. Seperti yang kamu mungkin bayangkan, internal tools ini punya desain yang biasa saja atau malah bisa dibilang berantakan. Ketika aku diberikan tugas untuk implementasi fitur baru, apa yang aku lakukan pertama kali tentunya melihat fitur yang sudah ada terlebih dahulu sebelum melakukan apapun. Astaga! Jujur saja mataku pedih. Meskipun di mata kuliah Interaksi Manusia dan Komputer yang aku dapatkan kemarin nilaiku biasa saja sehingga tidak mendapatkan grade A, setidaknya aku masih "ingat" beberapa hal dari mata kuliah ini. Sayangnya, pada saat itu aku menahan diriku untuk challenge the status quo. Ya karena aku hanya anak magang! Sayangnya kebiasaanku untuk ngegas gabisa bendung keinginanku untuk implementasikan desain yang bagus atau setidaknya rapi.

Setelah mempelajari codebase dari internal tools tersebut, aku diberikan semacam wireframe dari desain fitur yang akan aku implementasi. Aku dikasih wireframe yang isinya kotak-kotak sama label tulisan doang. Di sana aku bimbang karena kalau aku implementasikan desain yang benar-benar sama maka hasilnya akan jelek. Karena input field yang ada di halaman fitur baru ini akan sangat panjang ukurannya. Setelah berpikir mengenai kemungkinan interaksi pengguna yang akan terjadi, aku akhirnya memutuskan untuk screw this, I will implement my own style and design dengan gaya-gaya ngegasku yang aku yakin orang-orang yang kenal dekat denganku tau seperti apa itu.

Aku membuat fitur itu memiliki beberapa langkah. Langkah-langkah selanjutnya akan dapat dilakukan jika dan hanya jika langkah sebelumnya sudah dilakukan dengan benar. Kenapa aku implementasikan seperti ini? Karena aku tau, internal tools itu fiturnya sangat banyak sehingga tidak hampir tidak mungkin seorang pengguna tau betul cara menggunakan masing-masing tools yang ada. Untuk mengurangi human error dan untuk mempermudah pengguna belajar menggunakan fitur tersebut, aku buatkan formatnya dalam bentuk langkah demi langkah yang disertai dengan penjalan singkat. Aku bermain banyak kode JavaScript di sini untuk handle kebiasaan pengguna. Semacam satpam yang menahan kamu untuk masuk sebelum kamu menunjukkan identitas kamu. Ya, kira-kira seperti itu.

Setelah datang waktunya untuk rilis dan demo, ternyata orang-orang menyukai apa yang aku lakukan dan bahkan menjadikan apa yang aku kerjakan itu sebagai the new standard. Aku bersyukur karena ternyata apa yang aku lakukan ini baik dan aku juga bersyukur karena Nakama sangat terbuka terhadap inovasi. Meskipun sebaiknya aku konsultasi dulu sebelum rilis tapi yasudahlah.

You Got the Trust

Setidaknya di tribe ini aku merasa mereka mempunyai trust yang tinggi meskipun kita hanya anak magang. Mereka melihat kita sebagai literally rekan kerja sehingga perlakuan antar yang satu dengan yang lain sama. Maksudku, walaupun kita hanya anak magang, itu tidak berarti kita diperlakukan seperti orang-orang yang cupu sehingga hanya dikasih tugas-tugas yang boring. Tugas yang diberikan akan disesuaikan dengan kemampuan kita. Kalau kita bisa mendapatkan kepercayaan mereka, tugas-tugas yang lebih challenging akan diberikan kepada kita. Itulah kenapa magang di sini sangat-sangat menarik!

Setelah melakukan implementasi fitur di internal tools sesuai dengan yang aku jelaskan sebelumnya, karena hasil frontend-ku bagus, aku diberikan kepercayaan untuk initiate satu proyek "besar" yang mana bagian frontend-nya diberikan ke aku seorang diri. Aku diberikan kebebasan untuk memilih teknologi yang aku gunakan. Setelah ini dan itu pada akhirnya aku memutuskan untuk menggunakan Sapper. Mereka oke dengan itu so aku langsung kerjakan apa yang aku bisa.

Proyek yang aku kerjakan ini belum rilis dan sudah ada orang yang meneruskan ketika magangku selesai. Merasa seperti orang tua yang mempercayakan anaknya kepada orang lain? Exactly! Joke aside, intinya ketika kamu magang di Tokopedia, usahakan di tugas pertama perform sebaik-baiknya agar kamu mendapatkan kepercayaan dari mereka.

Highly Appreciated

Apapun yang kamu kerjakan di sini selama magang, sekecil apapun kontribusi kamu, kamu akan mendapatkan apresiasi. Apresiasi itu juga diumumkan di Slack channel New Retail yang mana salah satu anggotanya adalah Pak Herman Widjaja, Senior Vice President di Tokopedia! Kamu hanya perlu berharap Pak Herman notice kamu dari sana. Kapan lagi di-notice orang-orang keren?

Asyiknya Anniversary Tokopedia

Kalau bisa, ketika kamu magang, pertengahan Agustus kamu di Tokopedia biar bisa ikut acara anniversary Tokopedia. Acara ini asyik dan kamu bisa lihat orang-orang penting Tokopedia seperti contohnya Pak William Tanuwijaya berbicara di panggung. Aku tidak terlalu suka foto makanya gabisa ngasih dokumentasinya di sini. Cari sendiri aja yak banyak kok orang yang berbagi tentang ini.

Penutup

Sebagian besar apa yang ingin aku sampaikan sudah tersampaikan jadi aku cukupkan di sini aja. Di lain kesempatan kalau aku ada pengalaman yang mungkin bisa berguna bagi teman-teman, aku akan bagikan di blog ini. Buat kamu yang ingin mempersiapkan magang di perusahaan unicorn company seperti Tokopedia, kamu bisa membaca perisapannya di Catatan Wisnu!

Terima kasih yang sebesar-besarnya kepada ka Gilang selaku Engineering Manager, ka Kevin selaku Product Manager, ka Ivan selaku supervisor yang membantu tugasku di internal tools, ka Razi selaku lead di squad Sobat Platform yang udah banyak bantu tugas-tugasku di squad ini. Tak lupa juga aku ucapkan terima kasih kepada ka Edi dan ka Ardian yang udah bantu review kode-kode yang aku kirim juga terima kasih kepada ka Dicky yang inisiatif ngajakin makan di hari terakhirku. Terima kasih kepada ka Kelvin yang udah mau belajar Svelte dan nerusin proyek yang aku inisiasi serta ka Ryo juga yang udah mulai setup proyek tersebut. Terakhir, aku ucapkan terima kasih untuk semua rekan-rekan di New Retail. I'm doing great and it is all because of you, guys!

Komentar

Posting Komentar

Aku berharap dapet komentar yang membangun.

Postingan populer dari blog ini

Bagaimana Cara Menjadi Siswa Google Summer of Code?

Google Summer of Code  (GSoC) adalah salah satu program yang dibuat oleh Google dalam rangka meramaikan partisipasi mahasiswa/i untuk berkontribusi ke proyek-proyek sumber terbuka. Ada banyak keuntungan yang akan kita dapatkan apabila terpilih menjadi salah satu siswanya. Selain mendapatkan bimbingan langsung dari orang-orang yang kompeten, kita juga akan diberikan upah untuk kebutuhan hidup. Upah tersebut diberikan apabila kita lolos evaluasi yang dilaksanakan tiga kali. Nilai upah yang diberikan bervariasi tergantung pada tempat dan kebijakan Google di setiap tahunnya. Pada tahun 2018, total upah yang diberikan untuk Indonesia adalah USD 2400. Kamu bisa lihat informasi mengenai upah tahun ini di halaman Student Stipends . Seperti apa GSoC dan bagaimana cara menjadi salah satu pesertanya? Sedikit Pengalaman Mengerjakan Proyek GSoC di Organisasi Haskell Tahun 2018 lalu aku mengerjakan proyek GSoC di organisasi  Haskell . Aku gagal di evaluasi kedua karena ada miscommuni

Merancang Sistem Baru sebagai Upaya untuk Meningkatkan Kredibilitas serta Transparansi Perhitungan Suara

Indonesia dalam beberapa hari terkahir ini diramaikan dengan isu-isu serangan siber dan hal-hal konyol lainnya. Tetiba banyak sekali hacker gadungan yang bermain hacker-hackeran . Semua ini dilatarbelakangi oleh kekhawatiran masyarakat yang merasa akan terjadinya kecurangan dalam pemilihan umum kali ini. Alih-alih ingin berkontribusi justru yang ada malah terlihat bodoh. Untuk mengurangi hal-hal bodoh seperti ini muncul kembali, ada baiknya kita memikirkan sistem baru yang dapat membungkam manusia-manusia semacam ini di Indonesia. Tak perlu yang canggih sekali, yang penting transparan. Well , actually , teknologi yang akan digunakan sudah cukup canggih jadi aku bisa bilang kalau sistem yang akan dibuat ini sudah cukup canggih dan tidak mudah untuk dijaili. Tulisan ini hanya akan membicarakan konsep. Implementasinya tentu di lain waktu saja bila memungkinkan bagiku untuk membuatnya. Kenali Sistem yang Ada Sebelum membicarakan rancangan sistem yang baru, kita perlu mengenali sist

Membangun Kembali Citraku Sebagai Penulis Blog

Halo, salam kenal! Aku Wisnu, seorang pemrogram yang saat ini tengah menjalani pendidikan di salah satu universitas swasta di Indonesia. Buat kamu yang belum pernah sekalipun membaca tulisan postingan blogku, mungkin tidak akan ada masalah dengan gaya tulisan yang sekarang lagi kamu baca. Aku rasa buat yang udah sering baca tulisanku (dulu) pasti ngerasa ada yang beda. Ya, aku terbiasa menulis dengan gaya formal. Gaya tulisan formal tersebut nampaknya kurang cocok dipakai untuk sebuah postingan blog karena terkesan kaku. Dampaknya yah interaksi dengan pembaca terasa kurang. Itulah sebabnya aku mengubah gaya penulisanku menjadi lebih santai. Aku ngomong gini in case kamu penikmat blog berfaedahku. Kalau kamu penikmat blog aibku udah pasti ga heran sama gaya tulisanku. Setelah sekian lama akhirnya aku pakai Blogger lagi. Kenapa kok pakai Blogger lagi? Padahal mampu bikin blogging engine sendiri karena katanya aku pemrogram, bukan? Kan keren kalo bisa! Juga, kenapa ga pake yang lain