Perjalanan menjadi Software Engineer – Part 22

Jika pada tulisan sebelumnya gw menceritakan mengenai project virtual account yang bisa dibilang cukup critical dalam kemajuan payment di tiket, kali ini gw akan bercerita mengenai kompetisi programming pertama dalam gw hidup LOL. Sebenarnya gw cukup malas ikut kompetisi kayak begini karena entah kenapa setiap kompetisi yang gw ikutin biasanya ga pernah menang. Jadi kalau pun mau ikut, harus sama orang yang benar-benar jago ngodingnya supaya kesempatan menangnya tinggi. Hanya saja waktu itu, salah satu developer yang menurut gw paling jago di tiket yakni Ko Harry tidak ingin ikut begituan karena katanya males. Gw pun akhirnya mengurungkan niat gw untuk ikut sampai akhirnya Ko Nat bilang beliau akan join untuk kompetisinya dan akan turun tangan langsung di kompetisi. Sungguh pengalaman seru yang tidak boleh dilewatkan karena bisa melihat CTO turun gunung.

Pada bulan April 2016 atau lebih tepatnya 1 bulan sebelum pengerjaan project virtual account, gw mendapatkan kesempatan untuk mengikuti kompetisi hackathon yang diadakan oleh BCA. Hackathon yang berjudul Hack By The Beach yang diadakan di Segara Ancol pada 23-24 April 2016. Sebelum ke acara utama, sebenarnya gw sempat diundang 2 kali sama Octa untuk ikut pra Hackathon (gatw istilahnya apa) namun gw hanya datang 1 kali. Waktu itu, seingat gw acaranya diadakan di salah satu ballroom di Kempinski. Untuk acaranya sendiri disitu hanya membahas mengenai API e-wallet yang diberikan BCA untuk konsumsi publik. Sebagai informasi, bahwa API perbankan adalah salah satu yang paling strict karena aksesnya sangat secure dan hampir mustahil bisa diakses oleh public. Tetapi BCA membagikannya secara gratis kepada semua orang dan mereka melakukan gathering feedback dari orang-orang yang diundang dalam acara tersebut. Yang paling menarik dari acara tersebut adalah bahwa BCA sudah menggunakan Oauth sebagai proses authentikasinya dimana perbankan lain saat itu masih menggunakan whitelist dan authentikasi 1 arah (menggunakan secret key). Yang gw sayangkan adalah pada acara tersebut, gw tidak dapat doorprize atau pun flazz yang berisi IDR 500,000 sedangkan pada acara sebelumnya, semua orang yang hadir dalam acara tersebut mendapatkan flazz berisi IDR 500,000.

Pada proses berikutnya, Octa pun mendaftarkan tim berisi 4/5 orang untuk ikut dalam kompetisi Hackathon tersebut. Seperti yang gw bilang sebelumnya, gw sebenarnya agak males join karena udah harus ngoding selama 24 jam, gak ada kemungkinan menang juga, jadi buat apa ikut juga. Ko Nat pun waktu itu sempat meyakinkan gw agar at least saat berkarir sebagai software engineer, lw harus mencoba untuk ikut hackathon. Karena waktu itu Ko Nat ikut, akhirnya gw pun ikut mendaftar jadi anggotanya berjumlah 3 orang saat itu. Tentunya jumlahnya masih kurang karena minimal harus 4 dan maksimal adalah 5. Akhirnya untuk menambah anggota tim, Octa pun mengajak Elbert dan Tommy karena mereka juga berpikir hal yang sama yakni kalau Ko Nat ikut, ada kemungkinan jadi juara LOL (padahal pada akhirnya kalah juga). Yang gw agak lupa dalam pemilihan tim adalah mas Imam sebagai tim berperan sebagai apa LOL.

Yang menarik dalam pendaftaran tersebut adalah Octa lupa memberi nama tim, jadi ketimbang mendaftarkan nama tim, Octa malah menulis namanya sendiri, jadi nama timnya adalah Octavia George. Untuk proposalnya sendiri kami menggunakan e-wallet BCA sebagai tempat penampungan uang sangu untuk para siswa dari SD sampai SMA. Octa pun pada akhirnya mensubmit proposal tersebut dan akhirnya terpilih sebagai salah satu peserta dalam acara hackathon tersebut. Bisa dibilang cukup hebat juga karena (kalau tidak salah ingat) kami berhasil menyingkirkan kurang lebih 300 ide dari tim lainnya dan menjadi salah satu dari 59 tim yang terpilih untuk ikut dalam hackathon tersebut. Setelah mengetahui bahwa timnya terpilih, Ko Nat pun sempat memberikan briefing kepada kami bahwa dalam hackathon yang penting aplikasinya bisa berjalan dengan test case paling banyak berjumlah 10 LOL. Jadi misalnya test casenya sebagai berikut:

  1. Input 1 ekspektasi output A maka hardcode output dengan nilai A.
  2. Input 2 ekspektasi output B maka hardcode output dengan nilai B.
  3. Input 3 ekspektasi output C maka hardcode output dengan nilai C.
  4. Demikian seterusnya sampai input 10 output J.

Lalu bagaimana kalau tiba-tiba juri minta dimasukin output 11? Kata beliau itu ga mungkin, kenapa? karena ada 59 peserta, jadi ga mungkin juri sempat untuk mengecek codenya satu per satu. Yang paling penting adalah ketika codenya dijalanin tidak error dan ekspektasinya sesuai. LOL banget dah.

Hari hackathon pun tiba, kami pun berangkat menggunakan mobil Octa dari gedung Salak (gw naro motor dulu di Salak, ya kali gw bawa motor ke Ancol). Gw berangkat bareng Elbert, Tommy dan mas Imam, yang lucu dari keempat cowok yang ikut, ga ada yang bisa bawa mobil waktu itu. Jadinya yang bawa mobil malah si Octa LOL. Sesampainya di Segara, kami pun bertemu dengan Ko Nat untuk daftar ulang terlebih dahulu. Salah satu panitia disana ternyata ada teman Ko Nat juga dan dia sempat bilang ini timnya main curang, kok bisa-bisanya CTO ikut ngoding di kompetisi ini LOL (gw uda GR tuh, wah bau-baunya bakal menang nih, mayan). Ketika bertemu dengan peserta-peserta lain, hampir semuanya orang-orang nerd gitu, gw jadi agak kagok bisa menang apa engga (lah tadi katanya bakal menang LOL). Setelah mendaftar ulang, kami pun diminta berkumpul oleh panitia untuk mendengar kata sambutan dari Armand Hartono (cucu bos Djarum) dan juga Jahja Setiaatmaja yang merupakan Presiden Direktur BCA pada saat itu (sampai sekarang juga sih). Sehabis itu, ada juga sambutan dari para juri yang kata Ko Nat ada salah satu musuhnya juga (ya elah jadi pesimis lagi mau menang LOL) dan juga ada Andrew Darwis alias si mimin dan juga pendiri Kaskus.

Waktu kompetisi pun telah dimulai, sebelum memulai Ko Nat pun memberikan sedikit arahan kepada kami agar pembagian tugas jelas. Untuk gambarannya sebagai berikut:

  1. Bayu: Mengintegrasikan aplikasi dengan API payment dari BCA.
  2. Elbert: Mempersiapkan komponen admin.
  3. Tommy: Mempersiapkan komponen enduser.
  4. Ko Nat: Menyiapkan core aplikasi untuk integrasi antara bagian end user dan admin.
  5. Octa: Jadi cheerleader LOL.
  6. Mas Imam: Membantu dalam bagian UI/UX (gw lupa jadinya bagaimana end usernya LOL)

Untuk kodingnya sendiri waktu itu menggunakan codeigniter karena kami tidak sempat menyiapkan framework sendiri, jadinya ambil yang paling gampang dipakai saja. Gw pun sempat merasa frustasi pada saat itu karena sempat tidak jalan integrasi dengan API BCA. Gw sudah sempat menghubungi panitia BCA dan memberikan info bahwa SDK yang diberikan tidak bisa konek. Yang kampretnya waktu itu adalah orang BCA mostly developernya adalah developer java, jadi pas dikasi kodingan PHP katanya kalau ada salah, googling aja errornya apaan. Ya elah kampret bener nih manusia-manusia. Untungnya setelah stuck hampir 3 jam, integrasi dengan API paymentnya berhasil. Gw lupa errornya kenapa, cuma seinget gw kalau ga salah itu rookie mistake LOL. Nah yang bikin lucu, si Elbert bikin controller auth aja kagak kelar-kelar dari 2 jam yang lalu, sampai Ko Nat pun shock dan akhirnya sempat bilang beatiful mind.

Tidak terasa sudah hampir 12 jam kita ngoding, dan mata uda mulai sepet dan capek waktu itu. Yang gw kaget adalah Ko Nat masih segar untuk ngoding saat itu. Beliau sempat bilang kalau capek, balik aja dulu ke hotel dan istirahat sebentar, nanti balik lagi. Akhirnya waktu itu gw dan Elbert balik ke hotel, sedangkan Ko Nat dan Tommy masih ngoding disana. Berhubung waktu itu badan dan otak udah capek banget, akhirnya gw ketiduran dan bangun-bangun sudah agak siang. Gw dan Elbert pun shock dan akhirnya langsung bergegas kembali ke venue untuk ngoding lagi. Yang bikin gw makin kaget, si Ko Nat masi ngoding dan mukanya masi fresh aja. Beliau bilang kerjaannya sudah hampir selesai, tinggal bagian integrasi koding payment punya gw ke backend uangsangu saja. Sayangnya karena waktu itu mepet, akhirnya dipakailah cara Ko Nat, yang penting test casenya berhasil aja LOL (API paymentnya tidak diintegrasi).

Jam 12 siang pun telah tiba dan panitia meminta agar setiap peserta tidak koding lagi dan menuju hall untuk mempresentasikan hasil karyanya selama 5 menit di depan para juri. Ya cuma 5 menit, uda ngoding hampir 24 jam, lw bakal dinilai selama 5 menit aja hasilnya. Gw pun sempat berpikir ga bakal menang karena secara API, integrasinya bisa gw bilang gagal dan cuma mocking doank (seolah-olah berhasil melakukan transaksi padahal tidak mengurangi saldo). Disini lah untuk pertama kalinya gw melihat Ko Nat presentasi layaknya lagi pitching di depan investor, beliau cuma ngobrol sekitar 3-4 menit dan sempat membuat juri awal terpukau. Sebagai gambaran, untuk juri utama dimana ada pak Jahja, Andrew Darwis dan musuhnya Ko Nat itu (LOL) adalah untuk para peserta yang masuk 8 besar, sedangkan untuk penilaian awal akan dipilih oleh panitia khusus (gw lupa siapa aja jurinya waktu itu). Akhirnya kami pun masuk ke 8 besar untuk bisa mempresentasikan hasil karya kami di depan para juri utama.

Salah satu kata-kata yang gw ingat pada presentasi Ko Nat mengenai project uangsangu ini adalah menanamkan kebiasaan baik sejak dini. Beliau berpesan bahwa ketika sejak dini diajarkan dengan baik, maka setelah besar seorang anak akan terus mengingat hal tersebut bahkan mewariskannya kepada anak-anaknya juga nanti. Mindset yang sama akan dipakai ketika memilih BCA sebagai bank yang dikenalkan ke anak sejak dini terutama ketika memberikan uang jajan ke dalam versi e-wallet BCA. Sayangnya karena emang dasar Ko Nat doyan ngomong, beliau tidak sadar bahwa waktu presentasi di depan juri utama hanya sekitar 6 menit. Jadi sebelum presentasinya kelar, sudah dipotong oleh panitia. Setelah semua presentasi, kami pun berharap agar menang karena kelihatannya juri-juri utama pun masih terpukau, cuma ada satu hal yang diluar ekspektasi kami saat itu. Ternyata seluruh panitia mencoba aplikasi tersebut secara end to end dan akhirnya ketahuan bahwa API payment kami tidak terintegrasi dan akhirnya kami gagal untuk jadi juara LOL.

Pada kompetisi kali ini gw selalu kagum sama Ko Nat karena beliau benar-benar koding selama 24 jam tanpa tidur dan masih bisa presentasi dengan baik di hadapan para juri., bahkan setelah kompetisi tersebut, beliau masih harus tampil untuk menjadi pembicara di salah satu acara mengenai tech leadership. Ga kebayang itu bagaimana capeknya. Dari kompetisi ini gw belajar banyak bagaimana ngoding di hackathon, bertemu dengan orang-orang yang memang memiliki passion di dunia engineering dan yang paling penting bagaimana cara presentasi yang bisa meyakinkan di depan banyak orang. Kalau kata Ko Nat, selalu jual rasa takut ke orang lain dan tunjukkan bahwa kalian punya solusi terhadap rasa takut tersebut supaya jualannya laku. Berikut foto gw dan tim di acara hackathon ini:

BCA Hack by The Beach 2016
Video Resmi dari BCA

Untuk kisah berikutnya gw akan bercerita pengalaman mengenai perjalanan dinas ke Singapore untuk bertemu dengan cybersource.

Leave a Reply