Menjadi Seorang Frontend Engineering Lead Di Awal Usia 20-an
24 Juni 2021 • --------
Hallo semuanya! Di tulisan kali ini, saya akan menceritakan pengalaman saya saat menjadi seorang Frontend Engineering Lead di sebuah perusahaan tanda tangan digital terbesar di Indonesia (PrivyID), di usia yang cukup muda yaitu 20 tahun.
Latar Belakang
Saya adalah seorang lulusan SMK. Dan sekolah saya merupakan sekolah dengan kurikulum yang spesial. Tidak seperti SMK pada umumnya, saya ada di sekolah selama 4 tahun. 3 tahun untuk belajar, kemudian 1 tahun untuk bekerja secara magang.
Ketika saya berada di tahun keempat, saya memutuskan untuk mencari magang. Saat itu, saya hanya memiliki keterampilan dasar HTML & CSS, sementara keterampilan JavaScript saya masih kurang. Saya tidak tau library atau framework JavaScript modern. Satu-satunya library JavaScript yang saya tau dulu hanya, jQuery.
Namun, tuntutan perusahaan di tempat saya magang mengharuskan saya menggunakan library JavaScript modern, yaitu React.js. Jadi, saya diharuskan untuk bisa belajar dan beradaptasi dengan sangat cepat. Dan saya, yang pada waktu itu masih anak ingusan, merasa sangat kebingungan dan kesusahan.
Saat itu, saya belum menemukan metode belajar yang tepat untuk saya. Saya mencoba semua metode belajar yang saya tau saat itu. Dan metode yang paling efektif yang saya temukan adalah dengan mengikuti kursus online lewat video YouTube dan Udemy.
Tetapi, kursus online ini hanya mengajarkan saya hal-hal dasar saja. Saat saya bertemu sebuah masalah yang lebih kompleks, saya kebingungan. Saya bersyukur karena saat itu, saya memiliki banyak mentor yang sudah senior dalam bidang ini. Mereka dengan senang hati membantu saya untuk menyelesaikan masalah yang saya hadapi. Dari mereka, saya juga belajar, bagaimana belajar melalui dokumentasi.
Dari pengalaman ini, akhirnya saya memiliki fondasi yang cukup kuat untuk masuk lebih dalam ke dunia frontend engineering. Seiring berjalannya waktu saya dipercayakan untuk menjadi mentor bagi kolega-kolega saya. Juga, saya dipercayakan oleh pihak sekolah untuk melakukan mentoring terhadap adik-adik kelas saya yang akan mengikuti perlombaan dalam bidang web engineering.
Perjalanan
Perjalanan saya di mulai di awal tahun 2020, dimana saya mulai dipercayakan sebagai Frontend Engineering Lead. Semua orang tau bahwa menjadi seorang pemimpin, bukan sesuatu yang mudah.
Semakin banyak orang yang mencari saya, bergantung pada saya, dan juga banyak keputusan-keputusan penting yang menjadi tanggungjawab saya. Maka dari itu, jelas bahwa jago dalam coding saja tidak cukup. Ada banyak skill lain diluar coding yang harus saya pelajari.
Sebelum saya membahas skills apa saja yang harus dimiliki, saya akan bagikan terlebih dahulu sikap-sikap penting yang saya pelajari.
Sikap Penting (Soft Skills)
-
Kejujuran
Poin pertama ini mungkin sedikit klise ya. Namun, justru ini adalah poin terpenting.
"Kurang cerdas dapat diperbaiki dengan belajar. Kurang cakap dapat dihilangkan dengan pengalaman. Namun, tidak jujur itu susah diperbaiki.”
— Mohammad HattaDari kutipan quote diatas, saya memegang teguh bawa jujur itu diatas segalanya. Menurut saya, kejujuran adalah fondasi utama. Karena banyak orang yang mempercayai saya, saya harus dapat menjaga kepercayaan tersebut.
Karena kebohongan hanya akan menghasilkan konflik dan masalah baru. Jadi saya belajar menjadi jujur dan terbuka dengan keadaan dan pengetahuan saya yang sebenarnya. Saat saya tahu, saya bilang tahu. Saat tidak, ya saya bilang tidak.
Saat saya jujur dengan diri saya sendiri, saya bisa mengerti kelemahan dan kelebihan yang ada dalam diri saya. Membuat saya tahu, apa yang perlu saya perbaiki dan pelajari lebih dalam. Kejujuran juga membuat saya mengerti apa yang sebenarnya saya mau.
-
Memiliki Tujuan
Karena saya mengerti apa yang sebenarnya saya mau, saya jadi dapat menentukan tujuan. Saya jadi mengerti, apa sih yang mau saya perbaiki dan pelajari. Contohnya, saya adalah seorang yang kurang bisa berbicara di depan umum. Dengan kesadaran diri tersebut akhirnya saya jadi memiliki sebuah tujuan yaitu untuk bisa berbicara di depan umum. Pada akhirnya saya coba untuk belajar menyampaikan gagasan dan ide saya, di depan umum.
Hasilnya memang tidak sempurna. Pasti ada kegagalan di setiap hal yang baru saya pelajari. Namun, karena saya sudah memiliki tujuan tersebut, akhirnya saya menjadi gigih dan pantang menyerah untuk terus belajar dan mencoba. Kegagalan juga membuat saya belajar lebih banyak lagi, dan menjadi bekal saya agar tidak jatuh ke lubang yang sama.
-
Peduli
Saat saya sudah dapat jujur dan memiliki tujuan, saya jadi bisa peduli terhadap sekitar. Waktu saya mulai peduli, saya jadi tersadar bahwa saya tidak sendirian. Ada banyak orang yang juga memiliki kesusahan dalam mencapai tujuan mereka. Saya juga banyak belajar saat ada seseorang yang membagikan cerita kegagalannya, dan bagaimana ia terus gigih untuk mencapai tujuannya.
Kepedulian membuat saya senang berbagi. Karena saya merasa saya sudah banyak belajar dari teman-teman, yang mau membagikan cerita kegagalan maupun keberhasilan mereka. Kepedulian juga membuat saya rendah hati. Saat ada teman atau kolega yang membutuhkan bantuan saya dalam pekerjaan (coding), saya jadi mempunyai sikap yang senang menolong dan mau untuk berbagi ilmu.
Skill Teknis (Hard Skills)
Dulu, saya terlalu fokus mengembangkan skill coding saya saja. Namun, keterampilan non-coding dibawah ini lah yang sebenarnya membuat saya akhirnya dipercaya menjadi seorang pemimpin.
-
Eksplorasi
Saya belajar bahwa kemampuan untuk dapat mengeksplorasi dan belajar hal-hal yang baru dalam dunia software engineering adalah kunci. Dunia software engineering berkembang dengan sangat pesat, maka dibutuhkan juga kemampuan untuk belajar sesuatu yang baru dengan cepat. Dengan eksplorasi, saya menemukan hal-hal baru yang dapat membuat pekerjaan saya lebih cepat dan efisien.
-
Perencanaan
Perencanaan yang dimaksud adalah, merencanakan hal-hal apa saja yang harus dipersiapkan maupun dilakukan ketika ingin mencapai sebuah tujuan tertentu. Proses dalam mencapai sebuah tujuan juga menjadi lebih bermakna, karena ada tujuan-tujuan kecil yang ada dalam rencana yang membuat saya bisa mengerti saya sudah sampai dititik yang mana.
-
Komunikasi & Kolaborasi
Mampu berkomunikasi dan berkolaborasi dengan tim merupakan hal yang sangat krusial. Dalam pekerjaan saya sehari-hari, saya akan selalu bekerja dengan tim. Kemampuan untuk mengomunikasikan ide, gagasan maupun saran dan kritik pada tim merupakan hal yang dapat meningkatkan kerjasama dan juga jika hasilnya baik akan meningkatkan performa kerja tim.
-
Code Review
Melakukan review pada kode yang saya tulis sendiri itu penting. Saya jadi mengerti mana yang bisa dibuat lebih sederhana, mana yang bisa saya perbaiki, mana yang belum sesuai dengan best practices. Setelah dapat melakukan review terhadap kode saya sendiri, saya jadi bisa melakukan review pada kode yang ditulis oleh orang lain. Kemampuan ini membuat saya sering terlibat dalam diskusi dengan kolega-kolega saya untuk dapat meningkatkan efektivitas pada kode dan membuat kode yang lebih mudah dibaca.
-
Security, Performance, Accessibility & Unit Testing
Skillset ini menurut saya merupakan suatu skillset advanced dalam software engineering. Karena menurut saya, saat saya sudah bisa menulis kode dengan benar dan berjalan dengan baik, saya baru bisa memikirkan 4 hal ini. Saat saya sudah bisa memikirkan 4 hal ini, saya tersadar bahwa hal-hal ini tidak kalah penting dari menulis kode yang baik dan benar. Kode saya bisa saja berjalan dengan baik dan benar. Namun, celah yang membuat kode saya gagal akan selalu ada jika saya lalai dan melupakan 4 hal ini.
-
Menulis Dokumentasi
Hal ini selalu menjadi momok untuk saya. Saya awalnya tidak suka menulis dokumentasi, karena saya lebih suka untuk mengajari seseorang secara langsung untuk sebuah project atau library yang saya kerjakan. Namun, saya tidak bisa selamanya mengajari orang per orang satu persatu. Pada akhirnya, saya belajar agar dapat menulis dokumentasi dengan baik. Dokumentasi membuat orang lebih cepat belajar dan dapat mengerti dengan jelas apa yang harus mereka lakukan ketika jump-in ke dalam sebuah project maupun pengerjaan/pemakaian sebuah library.
-
Mentoring
Mentoring atau pendampingan dalam sebuah proses pembelajaran adalah hal yang membuat saya dan kolega saya semakin sepaham akan bagaimana sebuah kode harus ditulis. Penyamaan persepsi saat menyelesaikan masalah juga terbentuk saat adanya mentoring ini. Dengan mentoring juga membantu diri saya dan kolega saya untuk sama-sama berkembang, membuat kerjasama menjadi lebih baik.
Menulis kode yang baik dan benar itu penting. Tetapi yang saya pelajari adalah, yang membuat saya dipercayakan untuk memimpin sebuah tim adalah karena saya mau belajar menguasai softskills maupun hardskills yang saya tulis diatas.
Saya juga belajar bahwa saya tidak memerlukan izin untuk dapat melakukan hal-hal yang saya tulis diatas. Saya hanya belajar melakukannya saja.
Jika kamu bertindak seperti seorang pemimpin, orang akan melihat kamu sebagai seorang pemimpin.
Begitulah kata atasan saya, saat mempromosikan saya sebagai seorang frontend engineering lead. Di kemudian hari, saat saya diberi kepercayaan untuk memilih seorang engineering lead, saya akan mempromosikan orang-orang yang tidak hanya unggul dalam coding saja, namun juga unggul dalam softskills dan hardskills non-coding ini.
Akhir kata, saya bersyukur pernah dipercayakan sebagai seorang frontend engineering lead. Saya belajar sangat banyak dan akan terus belajar menjadi pemimpin yang lebih baik. Terima kasih sudah membaca, stay safe dan have a nice day. 😁