- जब काम को सही तरीके से करना और कंपनी की तेज़ रफ़्तार आपस में टकराएँ, तो आपका चुनाव क्या होगा?
- अपने विश्वासों पर टिके रहकर समझौता करना है, या अपने सिद्धांतों के अनुरूप काम खोजने के लिए आगे बढ़ जाना है—इंजीनियर Chris Krycho ने दूसरा रास्ता चुना।
- Chris ने आखिरकार अपने सिद्धांतों से मेल खाने वाले काम को आगे बढ़ाने के लिए LinkedIn छोड़ दिया।
- पॉडकास्ट में कही गई बातों का संक्षेप।
- उनकी कहानी "innovation की ज़रूरत" और "project health के महत्व" के बीच के तनाव को रेखांकित करती है.
Chris Krycho का LinkedIn में पहला दिन
- Chris जनवरी 2019 के अंत में LinkedIn से जुड़े। उन्होंने बड़े संगठनों या स्वस्थ छोटे संगठनों में आम तौर पर दिखने वाली कई onboarding प्रक्रियाओं से गुज़रे।
- Chris को Colorado से remote काम करना था, लेकिन शुरुआती दो हफ्ते onboarding और टीम के साथ समय बिताने में गए।
लाखों लाइनों का कोड
- पिछली कंपनी के अनुभव की तुलना में, LinkedIn के frontend client app और backend services के पैमाने ने उन्हें बहुत चौंकाया।
- LinkedIn का frontend 20 लाख lines तक फैला हुआ था, जो उनकी पिछली कंपनी के पूरे codebase से भी कहीं बड़ा था।
इन्फ्रास्ट्रक्चर टीम
- Chris की भूमिका infrastructure team में थी, लेकिन server बनाने के बजाय engineering support या developer experience सुधारने पर ज़ोर था।
- लक्ष्य था LinkedIn के बड़े desktop app पर काम करना अधिक आसान बनाना।
JavaScript modernization
- उन्होंने JavaScript classes को अपनाकर code modernization के काम में हिस्सा लिया। Ember framework का उपयोग करते समय आने वाली समस्याओं को सुलझाने की प्रक्रिया में उन्होंने बहुत कुछ सीखा।
- उन्होंने समझा कि बड़े codebase में migration को जितना हो सके automate करना चाहिए, क्योंकि यह हाथ से करने के लिए बहुत बड़ा काम है।
TypeScript अपनाना
- frontend में होने वाली गलतियों को कम करने के लिए TypeScript की ओर बढ़ने का फैसला किया गया।
- TypeScript को धीरे-धीरे अपनाया जा सकता है, और यही वह scalability देता है जिसकी LinkedIn को ज़रूरत थी।
धीमी migration योजना बनाम 'Finger Gun's Plan'
- Chris और उनकी टीम ने Ember code को React में migrate करने के लिए 3–5 साल की योजना पेश की, लेकिन दूसरी टीम ने पूरा पुनर्विचार और तेज़ execution का वादा करने वाला 'Finger Gun's Plan' रखा।
- इस approach का अंतर, Chris और उनकी टीम द्वारा देखी जा रही समस्याओं और कंपनी की speed-first culture के बीच के टकराव को दिखाता है।
Chris के अनुभव और सीख
- अपर्याप्त alerting की समस्या को पहचाना गया।
- memory usage बढ़ने और server restart की chain reaction के कारण पूरे data center के server down हो गए।
- system reset और permissions adjustment के ज़रिए समस्या सुलझाने की कोशिश की गई।
- failure अपरिहार्य है, और software engineering दरअसल ऐसे systems design करने का काम है जो engineers को product outcomes बनाने की प्रक्रिया में support करें।
- कई स्तरों वाली resilience रखने वाले system की ज़रूरत पर ज़ोर दिया गया।
घटना पर प्रतिक्रिया
- समस्या सुलझाने की प्रक्रिया में management के trust की कमी से असंतोष पैदा हुआ।
- senior engineers के साथ मतभेद और communication problems सामने आए।
- इस बात पर ज़ोर दिया गया कि system सिर्फ़ सबसे अच्छी स्थिति में ही नहीं, बल्कि हर स्थिति में सहारा देने लायक होना चाहिए।
बढ़ता दबाव
- technical debt कम करने और resilience बढ़ाने की कोशिशों के बावजूद management की नाराज़गी बढ़ती गई।
- जटिल समस्याओं के लिए सरल समाधान मांगने वाले management के साथ टकराव हुआ।
संगठनात्मक पुनर्गठन
- 'Finger Guns team' के कारण organizational restructuring और role changes हुए।
- दूसरी भूमिकाओं में नए अनुभव और सीखने के अवसरों को पहचाना गया।
आत्मचिंतन और जागरूकता
- पिछले अनुभवों और मौजूदा स्थिति के आधार पर आत्मचिंतन किया गया।
- मानवीय संबंध बनाने और communication के महत्व को समझा गया।
- यह समझ विकसित हुई कि technical और social समस्याएँ एक-दूसरे से जुड़ी होती हैं।
निष्कर्ष और सीख
- Chris ने speed को सर्वोच्च मूल्य मानने वाली culture पर आलोचनात्मक नज़र बनाए रखी।
- अपने career और personal values पर विचार करते हुए नई opportunities की तलाश की।
- engineering excellence को आगे बढ़ाने वाली भूमिका खोजने की Chris की यात्रा जारी है।
GN⁺ की राय
- Chris Krycho का अनुभव technical principles और business demands के बीच के टकराव को अच्छी तरह दिखाता है।
- उनका फैसला इस बात पर ज़ोर देता है कि व्यक्तिगत values और professional choices के बीच संतुलन खोजना कितना महत्वपूर्ण है।
- LinkedIn जैसे बड़े तकनीकी माहौल में change management जटिल होता है, और यह दूसरी कंपनियों के लिए भी महत्वपूर्ण सीख देता है।
- TypeScript जैसी तकनीक अपनाने से code quality बेहतर हो सकती है और errors कम हो सकते हैं, लेकिन बड़े codebase में इसके लिए gradual approach ज़रूरी है।
- ऐसे technical बदलावों को आगे बढ़ाते समय developer experience और product release speed के बीच संतुलन पर विचार करना चाहिए।
1 टिप्पणियां
Hacker News राय