Diawal-awal munculnya karir dalam bidang IT khususnya Software Engineer, peran bagi seorang software engineer sangat sedikit. Hampir semua orang bergabung sebagai “Software Engineer”. Akan tetapi tidak semua melakuka pekerjaan yang berhubungan dengan software/produk, beberapa dari software engineer saat itu melakukan pekerjaan yang berhubungan dengan DevOps, beberapa lainnya menulis code untuk membangun platform Saas, dan banyak lagi. Sehingga perlu ada role yang jelas tentang apa yang perlu mereka lakukan dan apa yang diharapkan dari mereka. Hal inilah yang mendasarai dibentuknya suatu tingkatan yang terstruktur dengan baik seperti Associate, Engineer, Senior, Staff, dan Principal. 

Associate Engineer 

Pengalaman: Tidak diperlukan pengalaman sebelumnya 

  • Menyelesaikan tugas yang diberikan dengan jelas dan berkomunikasi ketika ada sesuatu yang menghalangi. 
  • Bekerja untuk mempelajari teknologi dan sistem yang relevan yang ada, secara aktif memelihara sistem. 
  • Berkomunikasi secara internal dan eksternal dengan cara yang baik 
  • Memberikan kontribusi dengan memberikan fitur, melakukan refactoring terhadap code yang ada, atau memperbarui sistem. 
  • Membantu men-debug masalah teknis. Menyampaikan masalah sehingga tim lain dapat mendokumentasikan dan meningkatkan layanan. 

Engineer 

Pengalaman: Biasanya membutuhkan minimal 2 tahun pengalaman profesional. 

  • Mengerjakan inisiatif teknik yang mendorong fitur yang lebih besar, sambil tetap berhati-hati untuk tidak menciptakan utang teknis dalam prosesnya. 
  • Melakukan scan pada issue backlogs. Tindakan yang dilakukan termasuk namun tidak terbatas pada: membiasakan diri dengan titik-titik masalah dalam sistem, menerapkan labels dan triaging yang relevan, menutupnya melalui pull request atau cara lain. 
  • Memahami orang lain dalam tim dan mencoba mendukung orang lain dalam pekerjaan mereka. 
  • Berusaha untuk menjadi mahir dalam memberikan ulasan yang baik tentang pekerjaan rekan-rekan mereka. Hal ini termasuk bersikap respect, teliti, bijaksana, fleksibel, dan tidak bertele-tele. 
  • Mendengarkan prioritas dan kepentingan orang lain, dan mengakui perspektif yang berbeda. Mempertimbangkan reaksi orang lain. 

Senior Engineer 

Pada titik ini, seseorang dituntut dapat menguasai seberapa efektif mereka dapat menjadi kontributor secara individu. 

Pengalaman: Biasanya membutuhkan minimal 5 tahun pengalaman profesional. 

  • Mendefinisikan dan menjalankan rencana eksekusi untuk fitur-fitur tertentu atau pemeliharaan/peningkatan sistem internal. 
  • Secara aktif berpartisipasi dalam upaya yang membantu menyederhanakan pengalaman Produk. 
  • Membantu mendukung pekerjaan rekan-rekan dengan cara mengulas, dan memberikan bimbingan. 
  • Menyesuaikan diri dengan baik untuk menggeser prioritas bila diperlukan. 
  • Bekerja untuk memahami tujuan dari fitur yang sedang dikerjakan oleh tim, dan membantu mengomunikasikan tujuan tersebut kepada anggota tim. Mengajukan pertanyaan untuk mengklarifikasi jika ekspektasi masih tidak terlalu jelas. 
  • Ketika tugas-tugasnya besar, Pecah cakupan pekerjaan menjadi bagian-bagian yang lebih kecil dan dapat ditindaklanjuti. 
  • Menunjukkan keterbukaan terhadap gagasan orang lain. Menyesuaikan gaya komunikasi mereka agar dapat berkomunikasi secara efektif. Secara efektif dan akurat membagikan pujian untuk ide dan upaya kolaboratif. 
  • Menyusun code dengan cara yang mengantisipasi jenis skala dan pemeliharaan yang diperlukan untuk ruang lingkup pekerjaan. Mempertimbangkan keterbacaan yang baik dalam penulisan maupun peninjauan pull request. 

Staff Engineer 

Pada titik ini, sebagian besar waktu seseorang dihabiskan untuk meningkatkan keterampilan mereka sendiri untuk membantu orang lain. 

Pengalaman: Biasanya membutuhkan minimal 8 tahun pengalaman profesional. 

  • Berpartisipasi aktif dalam rapat, dan menciptakan kolaborasi antar tim jika diperlukan untuk mencapai tujuan bisnis. 
  • Membuat dan memelihara dokumentasi internal untuk tujuan dan struktur sistem yang mereka kerjakan. Mendokumentasikan dengan cermat proses-proses yang tidak jelas atau tidak dipahami. 
  • Mengajari rekan-rekan kerja cara mengatur sistem dan mendorong rencana eksekusi untuk fitur dan peningkatan sistem. 
  • Mengkoordinasikan upaya di seluruh tim daripada bekerja dalam satu kelompok. Memastikan bahwa orang-orang merasa dilibatkan dalam berbagai proyek, dan suara mereka didengar. 
  • Secara proaktif mengkomunikasikan masalah dan membahas pertukaran yang diperlukan. Mengambil alih atas suatu masalah. 
  • Mengelola refaktor yang lebih besar, dan/atau peningkatan sistem, membantu orang lain untuk melakukan hal yang sama atau berpartisipasi. Mampu memperkirakan ruang lingkup pekerjaan, dan ketika perkiraan tersebut meleset, berkoordinasi dengan pemangku kepentingan (stakeholders) seperti Manajemen Produk untuk mengatasi risiko. 

Principal Engineer 

Pada titik ini, seorang pricipal engineer diharapkan mampu membantu orang lain menjadi yang terbaik. 

Pengalaman: Biasanya membutuhkan minimal 10 tahun pengalaman profesional. 

  • Mengembangkan sistem yang telah terbukti. Mereplikasi sistem dan pendekatan tersebut di seluruh tim sehingga orang lain dapat belajar dan meningkatkannya. 
  • Memiliki pengetahuan industri yang mendalam dan kesadaran akan lanskap teknis. Menggabungkan analisis ini sesuai dengan strategi. 
  • Tidak hanya memimpin, tetapi juga menggagas upaya-upaya rekayasa baru. Memberikan panduan dan visi. 
  • Menghilangkan hambatan dengan bekerja sama dengan pihak lain untuk memenuhi kebutuhan bersama atau manfaat bagi pelanggan. Menciptakan strategi yang melibatkan antar organisasi untuk mencapai tujuan atau pengaruh bisnis yang luas. 
  • Mengantisipasi masalah atau implikasi dari ide-ide mereka terhadap orang lain, dan mengupayakan strategi yang saling menguntungkan. 
  • Menetapkan tujuan yang jelas dan menantang untuk portofolio pekerjaan, dan mengejarnya dengan antusias dan penuh semangat. Memahami tujuan bisnis dan memasukkannya ke dalam pekerjaan. Secara kritis meninjau berbagai rencana dan menyesuaikan sesuai kebutuhan. 
  • Mendorong pertumbuhan yang terukur dengan meningkatkan/membimbing tim, memengaruhi roadmap teknis secara positif, mengelola metrik utama, menciptakan penelitian dan/atau program. 
  • Bermitra dengan tim lain untuk meningkatkan efektivitas internal tooling 
  • Mengantisipasi kebutuhan orang-orang di sekitar. Bersikap respectful, menunjukkan kepedulian bahwa rekan tim dapat menghubungi atau mengetahui status mereka selama jam kerja. Mengisi dokumen proses tanpa harus diminta. 

 

 

References 

https://www.infracloud.io/blogs/infracloud-career-laddering-framework/#the-infracloud-career-ladders 

https://career-ladders.dev/engineering/ 

https://github.com/infracloudio/career-ladders