100

1 Tahun Sebagai Product Engineer di Dicoding Indonesia

Perjalanan mencari pengalaman dengan bekerja sebagai Product Engineer di Education Tech Startup.

Penulis

Rahmat Agung Julians

Rilis

Kategori

sharing

Bahasa

Indonesia

Waktu Baca

6 menit

Jumlah Kata

1124

Saya harap Anda menyukai catatan ini.

Jika Anda ingin Saya menulis suatu hal baru,hubungi saya.

Tahun 2021 tepatnya pada bulan Oktober, saya bergabung dengan Dicoding Indonesia sebagai Product Engineer.

Pada awalnya posisi ini tidak menjadi target utama saya saat akan bergabung, saya mendaftar pada 2 posisi yaitu Front-End Curriculum Developer dan Product Engineer, tetapi memang Product Engineer adalah posisi yang pertama kali saya lamar.

Saat itu saya masih menduduki bangku kuliah semester 4. yap, bukan jurusan teknik tetapi jurusan pendidikan.

Melewati 1 bulan masa lamaran yaitu dengan total 5 interview termasuk dengan tambahan tes secara teknis, setelah itu saya diterima oleh pihak PT Presentologics dengan posisi tersebut.

Alasan Bergabung

Ada banyak hal yang membuat saya tertarik untuk bergabung dengan tim engineering di perusahaan ini, salah satunya yaitu mengenai prinsip engineering.

Beberapa prinsip engineering ini yang sebelumnya belum saya pahami menjadi satu buah tolak ukur bahwa saya harus bergabung dan mencari pengalaman diperusahaan ini.

Pengembangan Diri

Pengembangan diri ini sangat bagus untuk saya, karena saya bisa belajar banyak hal baru dan juga bisa mengaplikasikan hal-hal yang sudah saya pelajari sebelumnya.

Pada setiap Engineer dibebaskan untuk mengambil kursus, pelatihan dan sertifikasi yang mereka inginkan, saat itu saya mengambil kursus pada platform AlgoExpert untuk mempelajari algoritma, struktur data dan pengembangan Front-End yang lebih sulit.

Hasil dari kursus tersebut saya berhasil membuat 1 library testing OwnTest dan mengembangkan 1 situs untuk berlatih algoritma dalam bahasa pemrograman Javascript OwnCode. Menariknya yaitu saya melakukan itu selama 1 bulan saja, itu sudah termasuk pembuatan library testing, plugin dan situs untuk berlatih algoritmanya juga.

Bukan hanya itu, untuk sisi softskill juga saya jauh lebih baik setelah bergabung dengan tim engineering ini, karena saya bisa berinteraksi dengan orang-orang yang berbeda latar belakang dan juga berbeda bidang.

Mulai dari cara berbicara, berinteraksi dan juga cara berpikir, saya bisa belajar banyak hal dari mereka. Beberapa pemecahan masalah yang sebelumnya belum bisa saya lakukan akhirnya bisa saya lakukan.

Membahas sedikit mengenai softskill, saya juga saat itu bergabung menjadi salah satu mentor pada program Studi Independen Bersertifikat Batch 2, dimana saya harus mengajar 1 group yang terdiri dari 25 orang. Ini cukup menantang bagi saya, karena saya harus bisa mengelola dan memberikan pengetahuan terkait hardskill (development) dan softskill (communication) kepada mereka.

Kultur

DevOps

Kultur ini memberikan warna baru untuk saya sebagai Engineer, dengan ini saya menjadi lebih peduli dengan tim lain saat akan melakukan perubahaan dan mengembangkan fitur pada aplikasi.

Disaat saya harus memikirkan bagaimana cara untuk memecahkan masalah untuk kode yang saya tulis, saya juga harus memikirkan bagaimana agar kode tersebut tidak menjadi beban untuk tim seperti QA, DevOps dan juga tim lainnya.

Blameless

Saling mengapresiasi dan saling membantu adalah hal yang sangat bagus untuk tim, karena dengan ini tim akan menjadi lebih baik dan juga lebih produktif.

Di tim Engineer memiliki kultur Blameless yang artinya tidak ada yang salah, jika ada masalah maka tim akan saling membantu untuk mencari solusi. saya sangat suka dengan kultur ini, tidak membuang waktu untuk saling menyalahkan tetapi lebih asik dengan membantu satu sama lain.

Prinsip

Arsitekturnya memiliki sistem monolith yang cukup besar, ini akan sangat susah untuk dikembangkan jika tidak ada prinsip yang diterapkan.

Test Driven Development

Hal yang paling kuat di Dicoding adalah Test Driven Development, dimana setiap fitur yang akan dikembangkan harus memiliki test case terlebih dahulu.

Ini sangat cukup untuk memastikan bahwa fitur yang akan dikembangkan tidak akan mengganggu fitur yang sudah ada dan juga sudah sesuai dengan kebutuhan yang diinginkan.

Saya ingat kata-kata dari TechLead yang mengatakan:

TDD itu membantu kita untuk nyenyak tidur, lebih tenang karena kita yakin bahwa fitur yang kita buat sudah sesuai dengan kebutuhan dengan melewati test case yang sudah kita buat.

Tanpa berpikir, saya langsung ikut untuk mengimplementasikan TDD di perusahaan ini, dan hasilnya sangat bagus bagi Saya.

Clean Architecture

Ini sangat baru bagi Saya, karena sebelumnya saya hanya mengenal Clean Code. Clean Architecture ini sangat bagus untuk memisahkan antara business logic dan framework yang digunakan. Ini juga yang menjadikan saya untuk bergabung dengan Dicoding Engineer Team, menerapkan prinsip ini untuk mengatur agar arsitektur aplikasi menjadi lebih baik.

Tentu saja ini harus diperkuat oleh pengetahuan OOP agar lebih mudah saat memahami Clean Architecture, kebetulan saya yang selalu menggunakan Functional Programming sehingga saya harus menggali kembali OOP.

Cukup menantang pada awalnya saat mengetahui jenis arsitektur ini.

Pola Pengembangan

Tim engineer memiliki pola Agile, dimana setiap tim akan memiliki sprint yang berlangsung selama 2 minggu. Setiap sprint akan memiliki sprint goal yang harus dicapai. Semua fitur yang akan dikembangkan dan perbaikan bug akan dilakukan di sprint ini, dan setiap sprint akan di review oleh Product Owner dan juga tim lainnya.

Biasanya saya akan melewati beberapa tahap yaitu, planning, exploring, grooming,development, review dan juga retrospective. Sangat panjang mengingat pada saat itu yang bergabung dengan sprint tidak banyak hanya 4 orang saja, termasuk Saya.

Saya mempelajari banyak hal dari pola ini, disaat tugas didalam sprint sudah selesai, saya akan mempelajari hal baru yang belum saya ketahui sebelumnya.

Perubahan Besar

Saya meninggalkan Dicoding bukan tanpa membawa dan melakukan apa-apa, banyak sekali yang terjadi saat saya disana. Mulai dari pembuatan aplikasi baru, perubahan arsitektur, perubahan pola pengembangan dan juga perubahan kultur.

Banyak sekali yang saya dapatkan dari bergabungnya dengan tim Engineer Dicoding, menarik sekali disana saya juga mengembangkan sistem kuis dan kode interaktif yang digunakan untuk platform Dicoding Academy. saya juga membuat sistem yang mirip untuk situs pribadi saya, Anda dapat melihatnya dibawah disini:

Bahkan saya juga sudah menyediakannya pada mode inline seperti dibawah ini:

Dengan mengimplementasikan arsitektur baru menggunakan Next JS ini menjadikan saya lebih memahami bagaimana cara membuat aplikasi yang lebih baik dan juga lebih mudah untuk di maintain, tentu saja dalam sekala menengah hingga besar.

Kesimpulan

Terima kasih Dicoding telah memberikan kesempatan kepada saya untuk bergabung dengan tim Engineer, saya sangat berterima kasih atas semua yang telah saya dapatkan selama bekerja disana dan juga terima kasih kepada semua rekan kerja yang telah membantu saya dalam bekerja.

Saya juga berharap Dicoding akan terus berkembang dan menjadi lebih baik lagi kedepannya.

Komentar