- Ketika melakukan pekerjaan dengan benar berbenturan dengan kecepatan tinggi perusahaan, apa pilihan Anda?
- Kisah insinyur Chris Krycho yang memilih opsi kedua: tetap berpegang pada keyakinannya dan pergi mencari pekerjaan yang sesuai dengan prinsipnya, alih-alih berkompromi.
- Chris pada akhirnya meninggalkan LinkedIn untuk mengejar pekerjaan yang selaras dengan prinsip-prinsipnya.
- Ringkasan dari hal-hal yang ia ceritakan di podcast.
- Kisahnya menyoroti ketegangan antara "kebutuhan akan inovasi" dan "pentingnya kesehatan proyek".
Hari pertama Chris Krycho di LinkedIn
- Chris bergabung dengan LinkedIn pada akhir Januari 2019. Ia menjalani berbagai proses onboarding yang umum ditemui di perusahaan besar maupun perusahaan kecil yang sehat.
- Chris dijadwalkan bekerja jarak jauh dari Colorado, tetapi dua minggu pertamanya dihabiskan untuk onboarding dan bersama tim.
Jutaan baris kode
- Dibandingkan dengan pengalamannya di perusahaan sebelumnya, ia sangat terkejut dengan skala aplikasi klien frontend dan layanan backend LinkedIn.
- Frontend LinkedIn mencapai 2 juta baris kode, jauh lebih banyak daripada seluruh kode di perusahaan sebelumnya.
Tim infrastruktur
- Peran Chris ada di tim infrastruktur, tetapi fokusnya bukan membangun server, melainkan dukungan rekayasa atau peningkatan pengalaman pengembang.
- Tujuannya adalah membantu agar aplikasi desktop LinkedIn yang sangat besar lebih mudah dikerjakan.
Modernisasi JavaScript
- Ia ikut serta dalam pekerjaan modernisasi kode melalui pengenalan class JavaScript. Sambil menyelesaikan masalah yang muncul saat menggunakan framework Ember, ia belajar banyak hal.
- Ia menyadari bahwa pekerjaan migrasi pada codebase besar harus diotomatisasi semaksimal mungkin, karena volumenya terlalu besar untuk ditangani secara manual.
Penerapan TypeScript
- Mereka memutuskan beralih ke TypeScript untuk mengurangi error yang terjadi di frontend.
- TypeScript bisa diterapkan secara bertahap, dan ini memberikan skalabilitas yang dibutuhkan LinkedIn.
Rencana migrasi lambat vs 'Finger Gun's Plan'
- Chris dan timnya mengusulkan rencana 3~5 tahun untuk memigrasikan kode Ember ke React, tetapi tim lain mengajukan 'Finger Gun's Plan' yang menjanjikan perombakan menyeluruh dan kecepatan tinggi.
- Perbedaan pendekatan ini mencerminkan konflik antara masalah yang dialami Chris dan timnya dengan budaya perusahaan yang memprioritaskan kecepatan.
Pengalaman dan pelajaran Chris
- Menyadari adanya masalah notifikasi yang tidak memadai.
- Seluruh server di data center mati akibat reaksi berantai dari peningkatan penggunaan memori dan restart server.
- Mereka mencoba menyelesaikan masalah dengan mereset sistem dan menyesuaikan izin.
- Kegagalan tidak bisa dihindari, dan software engineering adalah merancang sistem yang mendukung proses para engineer dalam menghasilkan produk.
- Menekankan perlunya sistem dengan ketahanan berlapis-lapis.
Penolakan terhadap insiden
- Dalam proses pemecahan masalah, muncul ketidakpuasan akibat kurangnya kepercayaan dari pihak manajemen.
- Terjadi perbedaan pendapat dan masalah komunikasi dengan engineer senior.
- Ia menekankan bahwa sistem tidak boleh hanya bekerja saat berada dalam kondisi terbaik, tetapi harus mampu mendukung dalam semua situasi.
Tekanan yang meningkat
- Meski terus berupaya mengatasi technical debt dan meningkatkan ketahanan, ketidakpuasan dari eksekutif semakin besar.
- Terjadi konflik dengan eksekutif yang menuntut solusi sederhana untuk masalah yang kompleks.
Restrukturisasi organisasi
- Terjadi restrukturisasi organisasi dan perubahan peran akibat 'tim finger guns'.
- Ia menyadari adanya pengalaman baru dan peluang belajar di peran lain.
Refleksi dan kesadaran
- Melakukan refleksi diri melalui pengalaman masa lalu dan situasi saat ini.
- Menyadari pentingnya membangun hubungan antarmanusia dan komunikasi.
- Memahami bahwa masalah teknis dan masalah sosial saling terhubung.
Kesimpulan dan pelajaran
- Chris tetap mempertahankan pandangan kritis terhadap budaya yang menjadikan kecepatan sebagai nilai tertinggi.
- Ia mencari peluang baru melalui refleksi atas karier dan nilai-nilai pribadinya.
- Perjalanan Chris untuk menemukan peran yang mengejar keunggulan engineering terus berlanjut.
Opini GN⁺
- Pengalaman Chris Krycho menunjukkan dengan baik konflik antara prinsip teknis dan kebutuhan bisnis.
- Keputusannya menekankan pentingnya menemukan keseimbangan antara nilai pribadi dan pilihan profesional.
- Mengelola perubahan di lingkungan teknologi skala besar seperti LinkedIn itu kompleks, dan ini memberi pelajaran penting bagi perusahaan lain juga.
- Penerapan teknologi seperti TypeScript dapat membantu meningkatkan kualitas kode dan mengurangi error, tetapi pada codebase besar dibutuhkan pendekatan bertahap.
- Saat mendorong perubahan teknis seperti ini, perlu mempertimbangkan keseimbangan antara pengalaman pengembang dan kecepatan rilis produk.
1 komentar
Komentar Hacker News