- İşi doğru yapmakla şirketin hızlı temposu çatıştığında sizin seçiminiz ne olur?
- İnançlarını koruyup uzlaşmak mı, yoksa ilkelerine uyan işi bulmak için ayrılmak mı sorusunda, mühendis Chris Krycho ikincisini seçti.
- Chris, sonunda kendi ilkeleriyle örtüşen işi sürdürmek için LinkedIn'den ayrıldı.
- Podcaste anlattıklarının derlenmiş hali.
- Onun hikâyesi, "yenilik ihtiyacı" ile "proje sağlığının önemi" arasındaki gerilimi vurguluyor.
Chris Krycho'nun LinkedIn'deki ilk günü
- Chris, 2019 Ocak ayının sonunda LinkedIn'e katıldı. Büyük şirketlerde veya sağlıklı küçük şirketlerde sık görülen çeşitli onboarding süreçlerinden geçti.
- Chris, Colorado'dan uzaktan çalışacaktı; ancak ilk iki haftasını onboarding ve ekiple vakit geçirerek geçirdi.
Milyonlarca satır kod
- Önceki şirketindeki deneyimiyle kıyaslandığında, LinkedIn'in frontend istemci uygulaması ve backend servislerinin ölçeği onu ciddi biçimde şaşırttı.
- LinkedIn'in frontend'i 2 milyon satıra ulaşıyordu; bu, önceki şirketinin tüm kodundan çok daha fazlaydı.
Altyapı ekibi
- Chris'in rolü altyapı ekibindeydi; sunucu kurmaktan çok mühendislik desteği veya geliştirici deneyimini iyileştirmeye odaklanıyordu.
- Amaç, LinkedIn'in büyük ölçekli masaüstü uygulaması üzerinde çalışmayı daha kolay hale getirmekti.
JavaScript modernizasyonu
- JavaScript class'larının kullanıma alınması yoluyla kodu modernleştirme çalışmalarına katıldı. Ember framework'ünü kullanırken ortaya çıkan sorunları çözme sürecinde çok şey öğrendi.
- Büyük bir codebase'te migration çalışmalarının mümkün olduğunca otomatikleştirilmesi gerektiğini, çünkü iş yükünün elle yönetilemeyecek kadar büyük olduğunu fark etti.
TypeScript'e geçiş
- Frontend'de ortaya çıkan hataları azaltmak için TypeScript'e geçme kararı alındı.
- TypeScript kademeli olarak devreye alınabiliyordu ve bu da LinkedIn'in ihtiyaç duyduğu ölçeklenebilirliği sağlıyordu.
Yavaş migration planı ve 'Finger Gun's Plan'
- Chris ve ekibi, Ember kodunu React'e taşımak için 3-5 yıllık bir plan önerdi; ancak başka bir ekip, kapsamlı bir yeniden değerlendirme ve yüksek hız vaat eden 'Finger Gun's Plan'ı sundu.
- Bu yaklaşım farkı, Chris ve ekibinin yaşadığı sorunlarla şirketin hızı önceleyen kültürü arasındaki çatışmayı yansıtıyordu.
Chris'in deneyimleri ve öğrendikleri
- Yetersiz alarm sorununu fark etti.
- Bellek kullanımındaki artış ve sunucu yeniden başlatmalarının zincirleme etkisi nedeniyle tüm veri merkezindeki sunucular devre dışı kaldı.
- Sistemi sıfırlayarak ve yetkileri ayarlayarak sorunu çözmeye çalıştı.
- Başarısızlık kaçınılmazdır ve yazılım mühendisliği, mühendislerin ürün çıktıları üretme sürecini destekleyen sistemleri tasarlamaktır.
- Çok katmanlı dayanıklılığa sahip sistemlerin gerekliliğini vurguladı.
Olaya karşı tepki
- Sorun çözme sürecinde, yönetimin güven eksikliğinden kaynaklanan memnuniyetsizlik ortaya çıktı.
- Kıdemli mühendislerle görüş ayrılıkları ve iletişim sorunları yaşandı.
- Sistemin yalnızca en iyi koşullarda değil, her durumda destek sağlayabilmesi gerektiğini vurguladı.
Artan baskı
- Teknik borcu azaltma ve dayanıklılığı artırma çabalarına rağmen yöneticilerin memnuniyetsizliği arttı.
- Karmaşık sorunlara basit çözümler talep eden yönetimle çatışmalar yaşandı.
Organizasyonel yeniden yapılanma
- 'Finger Guns' ekibi nedeniyle organizasyonel yeniden yapılanma ve rol değişiklikleri yaşandı.
- Farklı rollerde yeni deneyimler ve öğrenme fırsatları olduğunu fark etti.
Düşünme ve farkındalık
- Geçmiş deneyimleri ve mevcut durumu üzerinden öz değerlendirme yaptı.
- İnsan ilişkileri kurmanın ve iletişimin önemini fark etti.
- Teknik sorunlarla sosyal sorunların birbiriyle bağlantılı olduğunu anladı.
Sonuç ve çıkarımlar
- Chris, hızı en yüksek değer sayan kültüre karşı eleştirel bakışını korudu.
- Kariyeri ve kişisel değerleri üzerine düşünerek yeni fırsatlar aradı.
- Mühendislik mükemmeliyetini hedefleyen bir rol bulma yolculuğu Chris için sürüyor.
GN⁺ görüşü
- Chris Krycho'nun deneyimi, teknik ilkeler ile iş gereksinimleri arasındaki çatışmayı iyi gösteriyor.
- Onun kararı, kişisel değerlerle mesleki seçimler arasında denge kurmanın önemini vurguluyor.
- LinkedIn gibi büyük ölçekli teknoloji ortamlarında değişim yönetimi karmaşıktır ve bu, diğer şirketler için de önemli dersler sunar.
- TypeScript gibi teknolojilerin kullanıma alınması kod kalitesini artırıp hataları azaltmaya yardımcı olabilir; ancak büyük codebase'lerde kademeli bir yaklaşım gerekir.
- Bu tür teknik değişimleri ilerletirken geliştirici deneyimi ile ürün yayınlama hızı arasındaki denge dikkate alınmalıdır.
1 yorum
Hacker News görüşleri