नई software developer नौकरी ढूंढना
(henrikwarne.com)- 2023 के अंत में layoff झेलने वाले एक software developer ने नई नौकरी खोजते हुए 30 कंपनियों से संपर्क किया, और 8 जगह rejection, 6 जगह कोई जवाब नहीं, तथा 3 offers के जरिए पाया कि market उम्मीद से अधिक tight है
- Job search channels मुख्य रूप से LinkedIn का Open to work, पहले से रुचि वाली कंपनियों की सूची, और Demando जैसी developer matching sites रहीं; remote search और पुराने job posts भरोसेमंद नहीं लगे
- सामान्य hiring process recruiter, manager, technical interview, assignment, CTO/founder interview तक 4–5 चरणों में लंबा था, और assignment-based coding tests में कंपनियों के बताए समय से कहीं अधिक समय लगा
- Behavioral questions के लिए STAR answers, Python और Go code snippets, Leetcode, GoLand, ChatGPT, GitHub Copilot आदि की तैयारी की, लेकिन live coding में घबराहट के कारण सोचने की क्षमता सामान्य से कम हो गई
- कठिन हो चुके market में भाषा-विशेष experience requirements, धीमे responses, salary range की पुष्टि, और कई processes की scheduling coordination offer negotiation और अंतिम selection को प्रभावित करते हैं
Layoff के तुरंत बाद की स्थिति और तैयारी का रवैया
- पिछले साल अक्टूबर के अंत में कंपनी में 17 लोगों को निकाला गया, जिनमें 8 developers शामिल थे
- CEO के साथ Zoom call के कुछ मिनट बाद ही कंपनी resources की सारी access बंद हो गई
- जिन कई changes पर काम चल रहा था, उन्हें push नहीं कर सके
- सहकर्मियों से ठीक से अलविदा कहना मुश्किल हो गया
- कई सहकर्मियों ने LinkedIn पर संपर्क किया, और कुछ ने Zoom calls तय करके स्थिति पर बात करने और विदा कहने का मौका दिया
- पहले job changes अधिकतर नौकरी में रहते हुए, अपनी इच्छा से किए गए थे; Sweden के standard notice period 3 महीने में काम समेटकर नई कंपनी में जाने का तरीका था
- Access तुरंत बंद हो जाने के कारण salary मिलते रहने के दौरान पूरा समय तुरंत job search में लगाया जा सका
- कभी भी नई नौकरी खोज सकने की जरूरत को ध्यान में रखते हुए काम करने लायक कंपनियों की सूची बनाए रखी थी, और पहले संपर्क किए recruiters के साथ भी अच्छे संबंध बनाए रखे थे
नौकरी खोजने के channels
-
LinkedIn का इस्तेमाल
- LinkedIn पर Open to work status को पहले के “Flexible, I am casually looking” से बदलकर “Immediately, I’m actively applying” किया
- Visibility सभी LinkedIn members के बजाय recruiters तक सीमित रखी, और हरे रंग का #OpenToWork photo frame इस्तेमाल नहीं किया
- Status बदलने के बाद पहले हफ्ते के आसपास रोज़ करीब 5 recruiters से संपर्क आया
- Roles की quality सामान्य जैसी ही थी, लेकिन संपर्क की frequency बहुत बढ़ गई
- रुचि वाली कंपनियों की सूची देखते हुए LinkedIn company pages के Jobs tab और हर कंपनी के careers page को साथ-साथ देखा
- LinkedIn सुविधाजनक था क्योंकि applicant count, job post कब डाला गया, कंपनी में कोई परिचित है या नहीं, और post करने वाले को देखा जा सकता था
- “Golang Stockholm” जैसे keyword searches, “Recommended for you”, और Premium का “Jobs where you’d be a top applicant” भी कुछ ठीक posts दिखाते थे
- LinkedIn की fully remote search पर भरोसा करना मुश्किल था
- UK के भीतर ही remote roles जैसे results भी मिल जाते थे
- लगा कि Sweden के भीतर fully remote, EU के भीतर fully remote, और worldwide fully remote जैसे scopes में search कर पाना बेहतर होगा
- केवल नए posts देखना मुश्किल था, इसलिए पहले देखे हुए posts बार-बार skip करने पड़ते थे
- बाद में Google में time range को पिछले हफ्ते पर सेट करके
golang fully remote site:linkedin.com/jobsजैसे search करने का तरीका मिला - पहले LinkedIn पर संपर्क कर चुके करीब 15 recruiters से दोबारा संपर्क किया, लेकिन कोई नतीजा नहीं निकला
- Hiring managers को InMail भेजने के मामले भी थे, लेकिन कोई response नहीं मिला
-
अन्य sites और search methods
- Sweden की developer-employer matching site Demando इस्तेमाल की
- Skills और minimum expected salary के साथ profile activate की, और इसी site से संपर्क करने वाली एक कंपनी से बाद में offer मिला
- Demando पर LinkedIn में न दिखे दूसरे company posts भी मिले और apply किया; उस कंपनी से भी offer मिला
- RemoteOK भी थोड़ी देर देखा, लेकिन apply करने लायक posts नहीं मिले, और कुल मिलाकर posts की quality LinkedIn से कम लगी
- Efinancialcareers पर fully remote roles बहुत कम थे और search भी मुश्किल था
- Hacker News की monthly Who’s hiring thread भी देखी, लेकिन relevant entries ढूंढना मुश्किल था
- मिलती-जुलती कंपनियां खोजने के लिए Google में “competitor to” या “alternative to” के साथ कंपनी नाम जोड़कर search करने का तरीका भी मिला
Applications manage करना और response experience
- सभी recruiters ने LinkedIn profile जैसी जानकारी मौजूद होने के बावजूद CV मांगा
- कंपनियों में directly apply करते समय भी अधिकतर ने CV मांगा, और कई कंपनियों ने cover letter भी मांगा
- लिखे हुए cover letters को save रखा, और नए application में सबसे मिलते-जुलते पुराने text को copy करके edit किया
- Applications track करने के लिए Excel sheet बनाई और company name, application date, recruiter या contact person, और general notes लिखे
- कुल 30 entries थीं, लेकिन सभी formal applications में नहीं बदलीं
- Apply की गई कंपनियों में से 6 ने बिल्कुल जवाब नहीं दिया
- कुछ posts एक महीने से अधिक पुराने थे
- लगा कि अगर post valid नहीं है तो उसे हटा देना चाहिए
- अगर कंपनी के किसी व्यक्ति से संपर्क नहीं हुआ था तो no response को बड़ा मुद्दा नहीं माना, लेकिन interview के बाद no response से कंपनी के बारे में धारणा खराब होती है
- एक कंपनी ने recruiter initial interview के बाद manager interview schedule करने की बात कही, लेकिन फिर संपर्क टूट गया
- 2 हफ्ते बाद email भेजा, पर जवाब नहीं आया; फिर 2 हफ्ते बाद interest नहीं होने की बात भेजने के बाद ही हल्की-सी apology मिली
Paid tools और preparation material
- LinkedIn Premium एक महीने के लिए लिया, लेकिन उम्मीद से कम उपयोगी रहा
- Profile viewers ज्यादा देख पाए या नहीं, यह स्पष्ट नहीं था, और job search में इसकी value सीमित रही
- कुछ InMail भी भेजे, लेकिन ज्यादा मदद नहीं मिली
- “Jobs where you’d be a top applicant” भी निर्णायक value वाला नहीं था
- एक महीने बाद cancel किया, और cancellation से पहले 1 महीने की कीमत में 2 महीने extension का option मिला
- Go jobs खोज रहे थे, इसलिए familiar environment में practice करने के लिए GoLand license दो महीने के लिए लिया
- GitHub Copilot भी इस्तेमाल किया, लेकिन interviews में यह स्पष्ट रहे कि coding खुद की है, इसलिए ज्यादा इस्तेमाल नहीं किया
- मौजूदा ChatGPT subscription कई assignment-based tests में desired task का basic framework जल्दी बनाने में उपयोगी रहा
- Leetcode paid version explanations देखने की सुविधा के कारण interview preparation के लिए काम का रहा
- एक कंपनी ने Alva Labs का IQ test इस्तेमाल किया, इसलिए 12minprep का Alva Logic Cram Course खरीदा और practice की
- पहले से practice की वजह से test काफी बेहतर गया, ऐसा लगा
ज्यादा tight हुआ market और language experience requirements
- पिछले 10 साल की तुलना में developer hiring market निश्चित रूप से ज्यादा कठिन लगा
- Apply करने लायक posts अब भी बहुत थे, लेकिन हर role पर applicants की संख्या पहले से अधिक दिखी
- LinkedIn पर जिन posts में applicant count दिखता था, उनमें कई posts 100 से अधिक applicants दिखाते थे
- जिन roles को suitable माना था उनमें भी कई कंपनियों से जवाब न मिलना market के कठिन होने का एक और संकेत लगा
- किसी specific language के experience की मांग बढ़ी
- पहले Python या Golang experience के बिना भी उन languages में development roles शुरू किए थे और जल्दी productive हो गए थे
- कई imperative languages आपस में मिलती-जुलती होती हैं, इसलिए language adaptation संभव माना
- लेकिन कई recruiters hiring company की hard requirement के रूप में specific language में 2–3 साल experience बताते थे
Interview process और preparation method
-
Process और scheduling burden
- सामान्य hiring process 4–5 interviews से बना था
- Recruiter initial interview
- Hiring manager interview
- 1–2 technical interviews
- Assignment-based test या live coding
- कुछ मामलों में product manager, CTO, founder interview
- Remote roles Zoom, Meet, Teams पर होते थे
- Stockholm local roles में अधिकतर face-to-face interview चाहते थे
- Commute time के कारण एक in-person interview आधा दिन ले लेता था
- वहीं remote interviews एक दिन में कई भी किए जा सकते थे
- In-person interviews का फायदा था कि सामने वाले और office atmosphere को बेहतर समझा जा सकता था
- सामान्य hiring process 4–5 interviews से बना था
-
Behavioral questions और technical preparation
- पहले से maintain किए जा रहे Word document Interview Tips में interview से पहले देखने वाली बातें organized कीं
- इस बार Behavioral Questions section जोड़ा, ताकि “ऐसे समय के बारे में बताइए जब आपकी किसी सहकर्मी से राय अलग थी” जैसे सवालों की तैयारी हो सके
- STAR framework—Situation, Task, Action, Result, Reflection—के अनुसार answers तैयार किए
- Leetcode की Rock the Behavioral Interview question list देखकर इस्तेमाल करने लायक examples organize किए
- इस बार behavioral questions की वजह से कोई interview fail नहीं हुआ
- Python और Go के छोटे code snippets भी document में लिखे
- मकसद common patterns और idioms जल्दी याद कर पाना था
- सभी snippets run करके error-free होने की पुष्टि की और related output भी शामिल किया
- Gergely Orosz का Confessions from a Big Tech Hiring Manager: Tips for Software Engineering Interviews video भी देखा
- Technical interviews में curious और collaborative रहना तथा सवाल पूछना महत्वपूर्ण माना
Interviews और coding tests का experience
-
General interviews
- Initial interviews में बताया कि पिछले employer से cost-cutting के कारण layoff हुआ था
- यह बताना नुकसानदेह लगा नहीं
- Recruiter या manager के साथ बातचीत में, क्या काम चाहिए और अपनी strengths स्पष्ट थीं, इसलिए घबराहट नहीं हुई
- Non-coding technical interviews में familiar technologies पर घबराहट नहीं हुई, और केवल एक बार fail हुआ
- Database connection timeout कितना रखना चाहिए, इस सवाल पर बहुत बड़ा number बताया, और वही answer rejection की वजह बना
-
Assignment-based tests
- कुछ साल पहले last interview की तुलना में assignment-based tests बढ़ गए थे
- Assignment-based tests live coding से कम stressful होते हैं, लेकिन उनमें समय बहुत अधिक लगता है
- कंपनी कुछ भी कहे, हर assignment में कम से कम 6 घंटे लगे, ऐसा माना
- कंपनी के लिए शुरुआती चरण में assignment मांगने की cost कम होती है, लेकिन job seeker के लिए uncertain outcome के साथ बड़ा time investment है
- कुल 5 assignment-based tests किए
- Java 2
- Python 2
- Go 1
- करीब डेढ़ को fail माना
- Go assignment में working solution दिया, लेकिन tests शामिल नहीं किए
- Explicit requirement नहीं थी, लेकिन लगा कि tests जोड़ने चाहिए थे
- यह स्पष्ट नहीं लगा कि इसे बार-बार run किया जाएगा या नहीं, लेकिन caching न जोड़ने से speed improvement न होना भी failure reason बना
- दूसरे assignment में existing tests pass हुए, लेकिन hidden tests में empty input से जुड़े 2 errors सामने आए
- Real work में होता तो खुद additional tests लिखता, ऐसा माना
- आखिरकार उस कंपनी से offer मिला, इसलिए इसे आधी failure गिना
-
Live coding
- Live coding में घबराहट के कारण लगा कि दिमाग सामान्य का करीब 50% ही काम करता है
- इस बार live coding में 3 pass हुए और 2 fail हुए
- पहला failure case सीमित chess program लिखने का assignment था
- केवल 2 तरह के pieces support करने थे, लेकिन project structure, data model, valid moves, tests की जरूरत थी
- 2 घंटे में submit करना था और समय बहुत tight था
- अधिकतर हिस्सा काम कर रहा था, लेकिन पूरा feature complete नहीं हुआ और move code में bug था
- दूसरे failure case में कंपनी द्वारा तैयार initial code repository के tests काम नहीं कर रहे थे, और environment setup में भी समय लगा
- Logic कैसे काम करना चाहिए, इस पर कई सवाल पूछने पड़े, और अंत में बहुत समय लग गया
- सभी live coding tests में अपने computer का IDE इस्तेमाल किया और Zoom पर screen share की
Salary negotiation और selection
- शुरुआत में बहुत ज्यादा salary number बताने के कारण कुछ बार interviews cancel हुए
- बाद में पिछले 4 साल की salaries बताकर expected level indirect तरीके से communicate करने का तरीका अपनाया
- अगर कंपनी कहती कि वह इतना नहीं दे सकती, तो जवाब दिया कि अभी बेरोजगार होने के कारण कोई absolute minimum salary नहीं है और यह offer पर निर्भर करेगा
- इस तरीके से process जारी रख सका, और बाद में बेहतर offer तक पहुंचने के chances भी बने
- पहला offer मिलने के बाद negotiation आसान हो गई
- Role की salary range पूछने पर surprisingly अक्सर जवाब मिला
- स्वीकार्य level से कम वाली कंपनियों को early no कहना संभव होने से यह उपयोगी था
- एक कंपनी पसंद आई इसलिए salary पहले से confirm नहीं की, और कई interviews व assignment के बाद बहुत low offer मिला
- लगा कि पहले confirm न करने से समय बर्बाद हुआ
- Stockholm developers की salary समझ भी बेहतर हुई
- Sweden में monthly salary के आधार पर सोचते हैं
- Pension contribution शामिल है या नहीं, यह भी देखना पड़ता है; अधिकतर included होता है और अतिरिक्त 10–15% implicit रूप से शामिल हो सकता है
- बहुत average developer salary महीने की 55K–65K SEK range में है
- महीने की 80K SEK से अधिक salary कठिन है, लेकिन tight market में भी असंभव नहीं
- Salary के अलावा options, equity, bonus देने वाली कंपनियां भी हैं
- Final selection में product और company की दिलचस्पी, इस्तेमाल की जाने वाली language, सीखने की चीजें, और colleagues को भी साथ में consider करना चाहिए
Final result और सीखी गई बातें
- एक कंपनी में process बहुत positive चल रहा था और 2 references मांगे, लेकिन अगले दिन दूसरे candidate को चुना
- 2 references का समय खर्च करवाना निराशाजनक लगा
- Job search आखिरकार काफी हद तक numbers game है
- कई interviews में fail होने पर भी, अगर एक कंपनी सफल हो जाए तो नई नौकरी मिल सकती है
- अंत में 3.5 offers options के रूप में मिले
- एक कंपनी से formal offer नहीं मिला था, लेकिन लगता था कि वह पहले मिले दो offers से कम होगा, इसलिए उसे आधा गिना
- कई companies के processes लगभग एक ही समय पर खत्म हों, इसके लिए कुछ को slow किया और कुछ को तेजी से आगे बढ़ाया
- Interviews postpone करने या जितनी जल्दी हो सके schedule करने जैसे तरीकों से coordination किया
- कई offers होने से negotiation position बहुत बेहतर हो गई, और अंत में interesting work और अच्छी salary दोनों वाले Swissblock के senior developer role में नौकरी मिली
- नई नौकरी ढूंढना बहुत अधिक काम है, और weekends में भी तैयारी बाकी रहती है, इसलिए आराम करना मुश्किल होता है
- 4–5 stage interviews, assignments, company research, schedule coordination, और rejections जोड़ दें तो इसमें कई महीने लग सकते हैं
- Interview results का खुद अनुमान लगाना मुश्किल है, और rejection होने पर अक्सर surprise हुआ
- Job search process पर चर्चा करने के लिए पूर्व सहकर्मी बहुत मददगार रहे
- तेजी से response देने वाले recruiters कंपनी पर भरोसा बनाने में महत्वपूर्ण हैं
- जब किसी colleague का layoff हो, तो LinkedIn आदि पर संपर्क करके goodbye कहना उस व्यक्ति के लिए बहुत मायने रखता है
1 टिप्पणियां
Hacker News की राय
FAANG में ML इंजीनियर के तौर पर पिछले छह महीनों से निष्क्रिय रूप से नौकरी बदलने के विकल्प देख रहा था, लेकिन यह आम धारणा बिल्कुल सही नहीं निकली कि कंपनियां पैसों की बोरियां लेकर टूट पड़ेंगी
प्रोफाइल की वजह से recruiter messages तो बहुत आते हैं, लेकिन आधे से ज़्यादा लोग प्रक्रिया के बीच में ही गायब हो गए, और recruiter की दिलचस्पी अगर offer में नहीं बदलती तो वह self-esteem के लिए vanity metric से ज़्यादा कुछ नहीं
मांग बहुत है, लेकिन hiring bar भी बहुत ऊंचा है; कंपनियां ठीक वही tech stack experience मांगती हैं जो वे खुद इस्तेमाल करती हैं। कुछ major ML frameworks हैं, लेकिन उनमें से सिर्फ एक में familiar होने के कारण कई positions बाहर हो गईं, और एक कंपनी ने यह कहकर reject कर दिया कि किसी specific technology में मेरा experience 6 साल है, जो minimum 8 years requirement से कम है
अब तक नतीजा सिर्फ 1 rejection और senior level के लिए 2 downlevel offers रहा है, जबकि लक्ष्य Staff+ था। Compensation भी ज़्यादातर जगह मौजूदा total compensation के लगभग आधे पर cap हो जाता था, और इससे ज़्यादा दे सकने वाली कंपनियां गिनी-चुनी थीं
कुल मिलाकर ML engineer market software engineer market से बेहतर है, लेकिन 2020–2022 के overheated market जैसा बिल्कुल नहीं
Google engineers को अब भी आम तौर पर high-end talent माना जाता है, और Apple engineers की भी reputation अच्छी है, लेकिन वे market में कम ही आते हैं। Facebook/Meta engineers अक्सर average से बेहतर होते हैं, लेकिन उनकी image aggressive internal promotion competitors जैसी है
अगर job search मुश्किल हो रही है, तो Amazon होने की संभावना दिमाग में आती है। Amazon की aggressive hiring के बाद PIP pipeline ने, कम से कम मेरे अनुभव में, उसकी reputation खराब कर दी है, और पिछले कुछ वर्षों में जिन ex-Amazon engineers के साथ मैंने काम किया, वे अक्सर average से कम skill वाले थे
अब “FAANG” कहकर सबको एक साथ रखना बहुत meaningful नहीं है, और हर कंपनी से आए engineers के लिए expectations काफी अलग हैं। ऊपर से, ये सभी कुछ साल पहले जितना ध्यान नहीं खींचते, और pure engineering capability की बजाय large company में survive करने की क्षमता मांगने की तरफ शिफ्ट हो गए हैं
Golden handcuffs असली हैं और जानबूझकर हैं, और बहुत कम कंपनियों के पास ऐसी बड़ी समस्याएं हैं जिनके लिए FAANG-level compensation को ROI के आधार पर justify किया जा सके
साथ ही FAANG internal stacks में ऐसे बेहतरीन in-house tools बहुत हैं जो बाहर नहीं मिलते, इसलिए शक पैदा होता है कि “क्या यह व्यक्ति expert है, या Google internal stack को अच्छी तरह इस्तेमाल करने वाला expert है?” सवाल यह भी है कि वह तुरंत productive होगा या पहले उन tools को फिर से बनाना पड़ेगा
हर कोई CEO या investors से कहना चाहता है कि उन्होंने FAANG talent poach किया है, लेकिन असल में bidding war करने लायक wallet या सही situation बहुत कम कंपनियों के पास होती है
2020 में hiring manager के तौर पर ML engineer hire करते समय भी यह समस्या थी, और mid-sized companies में “ML engineer को आखिर इस्तेमाल किस काम में करें?” वाली समस्या भी अक्सर होती है। अगर वह data scientist या general-purpose software engineer नहीं है, तो बीच की भूमिका बनाना मुश्किल होता है, और अगर data team engineering workflows और tools से familiar नहीं है, तो ML engineer version-controlled और साफ-सुथरा system बना भी दे, तो KPI न होने के कारण उसे आसानी से ignore कर दिया जाता है
अगर आप किसी दूसरी कंपनी में बिल्कुल वही काम नहीं करना चाहते, तो interview में उन technologies को भी expert की तरह दिखाने की तैयारी करनी होगी जिनसे आप असल में join करने के बाद familiar होना चाहते हैं। कुछ मामलों में experience को थोड़ा बढ़ा-चढ़ाकर बताना भी पड़ सकता है
Expertise अंततः ज्ञात facts से ज़्यादा सोचने के तरीके में होनी चाहिए, लेकिन hiring market इसे ऐसे नहीं देखता; इसलिए अच्छे से पेश करने और बाद में रातों में पढ़ाई करके उसे back up करने के लिए तैयार रहना होगा
साथ ही level हर environment में सीधे map नहीं होता। अपने लिए सही काम मिल जाए तो आप ऊपर जा सकते हैं, और level या compensation पर बहुत ज़्यादा अटकने से options उलटे कम हो सकते हैं
experience और जिम्मेदारियों की तुलना में खुद को काफी undervalued महसूस करने के बावजूद, हाल की postings में compensation और benefits बेहद खराब स्तर के हैं
EU में आम तौर पर कही जाने वाली बातों के विपरीत, कई postings “hybrid” और “flexible” कहती हैं, लेकिन interview के आखिरी चरणों में जाकर बताती हैं कि हफ्ते में 3–4 दिन office आना जरूरी है और “collaboration” के कारण in-person meetings पसंद की जाती हैं
Inflation adjustment की बात करते हुए भी wages घट रहे हैं, और ऐसा लगता है कि EU, US-style overheating और instability को तो follow कर रहा है, लेकिन wage levels तक नहीं पहुंच पा रहा
उदाहरण के लिए, ज़्यादा chips हासिल करना मुश्किल होगा, और जहां compute resources पहले से tight हैं, वहां experiments कम चलाने और throughput घटने की संभावना बड़ी है
मुझे लगता है कि अमेरिका में मौजूदा hiring difficulty सिर्फ कंपनियों के picky हो जाने से ज़्यादा malicious पहलू रखती है
पहला, US companies कम लागत पर overseas teams hire करना सीख रही हैं। हर हफ्ते South America या India teams को कम rates पर उपलब्ध कराने की कई emails मिलती हैं, और पिछली कंपनी में भी मैंने सिर्फ cost savings के लिए US/North America headcount को बड़े पैमाने पर घटाकर India team से replace होते खुद देखा
दूसरा, ऐसा भी लगता है कि US companies, COVID के दौरान workers के पास गई control वापस लेना चाहती हैं
मैंने अभी job search शुरू ही किया है और पहले से ही frustration है—ghosting, no response, और “requirements की तुलना में years of experience कम हैं” जैसी चीजें झेल रहा हूं। जैसे .NET 6 में 3 साल का experience mandatory होना
आज major competitors को देखा तो एक ने Mexico में programming jobs की भरमार खोल रखी थी, और दूसरा mainly India में hire कर रहा था
American engineering jobs ChatGPT नहीं ले जाएगा, बल्कि दूसरे देशों के सस्ते developers ले जाएंगे। उनमें से काफी लोगों की English और programming skills पर्याप्त हैं, और मैं उनके साथ काम करके जानता हूं
अगर काम remotely किया जा सकता है, तो दुनिया में कोई और भी वही काम पांचवें हिस्से की cost पर कर सकता है
“जॉब-हंटिंग microsite के मुख्य तत्वों” में professional profile photo डालने की सलाह नहीं मानी
photographer के तौर पर काम करके समझ आया कि कैमरे के पीछे बटन दबाने वाला पक्ष कहीं बेहतर है, और अमेरिकी hiring में photo नहीं होना चाहिए
भेदभाव के लंबे इतिहास और अभी भी मौजूद bias के कारण, संभव हो तो नाम भी हटाना बेहतर है, क्योंकि वह gender, race/ethnicity, caste और socioeconomic background का संकेत बन सकता है
photo को hiring process से हटाना आसान था और सच में अमेरिका में यह गायब हो गया था, लेकिन LinkedIn जैसी “social media” शैली की sites ने resume में profile photo फिर से ला दिया
अजीब लग सकता है, लेकिन कई European देशों में resume में profile photo काफी prominently होता है। EU office hiring शुरू की तो मुझे झटका लगा था, लेकिन local तौर पर यही तरीका है
मैंने बहुत सुना था कि discrimination के मामलों में Europe अमेरिका से आगे है, इसलिए और भी हैरानी हुई, क्योंकि असली resumes में profile photo ही नहीं, marital status तक लिखा था। जब local recruiter से ऐसी जानकारी हटाने को कहा तो मुझे ही अजीब समझा गया
कुछ लोग resume में “single” या “married” भी लिखते हैं, हालांकि सुना है कि आजकल यह कम हो रहा है
साफ-सुथरा और professional look दिखाना employer के लिए सच में फर्क पैदा करता है, और company ऐसे standards न रखने के कारण कानूनी रूप से किसी को निकाल सकती है या hire न करने का फैसला कर सकती है
लेखक जैसे बहुत experienced developer को भी मेहनत करनी पड़ती है, इसमें शक नहीं, लेकिन 30 applications पर 3 offers तो सपने जैसा result है
शुरुआती career वालों में ज्यादातर शायद 100 से ज्यादा applications देकर कुछ interviews और किस्मत अच्छी हो तो एक offer पाने की स्थिति में होते हैं
अमेरिकी developer average की तुलना में expectations काफी modest थीं
6 जगह apply किया, 4 interviews मिले और 2 offers आए; असल में junior था, लेकिन mid-level positions के लिए apply किया था
मैं मानना चाहता हूं कि interviews कम होने से मैं उन interviews में passion और focus लगा पाया, लेकिन यह survivor bias भी हो सकता है
उसके बाद 3 interviews में 2 अच्छे offers मिले, और compensation अमेरिकी software engineering roles के हिसाब से 50th percentile से ऊपर था। मुझे नहीं लगता कि मैं कोई असाधारण बुद्धिमत्ता से सब पर भारी पड़ा
मेरे पास numbers game वाली application strategy की energy नहीं है, interview खुद पसंद नहीं हैं, और live coding में दिमाग रुक जाता है। इसलिए सिर्फ उन जगहों पर apply करता हूं जहां सच में काम करना चाहता हूं, और जहां company भी सहयोग अच्छी तरह करने वाले सामान्य developer का स्वागत कर सकती है
सामान्य कामों में भी सच में interest महसूस कर सकता हूं, और strong opinions रखता हूं लेकिन उन्हें आसानी से बदल भी सकता हूं। शायद यही दो बातें मेरा राज हैं
बाकी 5 को या तो मैंने reject किया या process खत्म करने का समय नहीं था। आज का market उस समय से job search के लिए कहीं ज्यादा खराब है
कभी proper job application या interview किया ही नहीं, और लगता है एक दिन यही मेरे लिए समस्या बनेगा
सिर्फ दो तरह की moves support करने वाला limited chess program 2 घंटे में लिखने का task आसान नहीं है
मैंने खुद chess program लिखा है, लेकिन 2 घंटे में project structure, data model, legal moves और tests तक बना पाऊंगा या नहीं, इसमें शक है; बना भी लिया तो code bugs से भरा होगा
फिर भी लगभग 2.5 घंटे लगे
काफी mechanical और straightforward implementation जैसा सुनाई देता है
आम भर्ती प्रक्रिया में recruiter की पहली screening, hiring manager interview, एक-दो technical interviews, और कभी-कभी product manager या CTO/founder interview तक—कुल मिलाकर चार-पांच rounds होना अब नया नहीं है, लेकिन फिर भी यह काफी पागलपन है
फिर भी कई हफ्तों में फैली अतिरिक्त interview प्रक्रिया से उन्हें जबरन गुजरना पड़ा, और यह सिर्फ पागलपन नहीं बल्कि समय और संसाधनों की बर्बादी है
पहला, phone screening तक पहुंचने पर offer मिलने की संभावना लगभग पक्की रहती है, इसलिए असल time cost उतनी ज्यादा नहीं होती जितनी लगती है। phone screening न हो तो मौजूदा स्थिति से कोई फर्क नहीं, और screening हो तो interview batch की delay बहुत लंबी है या नहीं यह देखकर, ज्यादा लंबी हो तो शुरुआत में ही हट सकते हैं। एक दिन के 8 घंटे ठीक हैं, लेकिन 2 महीनों में फैले 8 घंटे job search को जटिल बना देते हैं
दूसरा, competing offers होने पर time cost खटकती है। salary में 40% बढ़ोतरी सामने हो तो एक दिन का interview ठीक है, लेकिन job search में पूरे 5 दिन लगाना, जब छुट्टियां सीमित हों, भारी पड़ता है। हालांकि लगता है कि लगभग आधे employers competing offer का proof सच में नहीं मांगते, और अगर desired compensation XYZ बताकर कहा जाए कि match कर दें तो तुरंत sign कर दूंगा, तो वे हैरानी की बात है कि match करने की कोशिश करते हैं
तीसरा, औसत technical interview में 10–20 मिनट technical problem solving होती है और 30–50 मिनट यह जानने में जाते हैं कि candidate कंपनी और team के बारे में क्या जानता है। नई कंपनी जोखिम भरी होती है और खराब संकेतों को बाहर से छिपाने की कोशिश करती है, इसलिए management background check के अलावा कई team members का मौजूदा perspective सुनना problematic situations को शुरुआत में टालने में मदद करता है
अगर interview किए गए candidates में से सिर्फ 1% को offer देने के बाद भी probation period में 30% fail हो जाते हैं, तो hiring सभी के लिए जबरदस्त time sink है। अच्छे लोग ढूंढना मुश्किल है और अच्छी jobs पाना भी मुश्किल है
पुराने onsite interviews में आने-जाने का एक घंटा, कुल छह घंटे के interviews, lunch तक होता था, और high-demand कंपनियां ऐसे कई rounds करवाती थीं। दूसरे शहर से flight लेकर आने के मामले भी थे
मेरा एक दोस्त Google interview देने गया था और East Coast snowstorm की वजह से SF में 3 हफ्ते फंस गया; नतीजतन उसे Accenture से निकाल दिया गया
इसकी तुलना में अपनी सुविधा के समय पर रखे गए 4–6 घंटे के interviews, भले ही कई दिनों में बांटे जाएं, कहीं बेहतर लगते हैं
software engineer market भी अच्छा नहीं है, लेकिन engineering manager, product manager, designer, developer relations जैसे support roles कहीं ज्यादा खराब दिखते हैं
मेरे आसपास ऐसे लोग खास तौर पर job ढूंढने में संघर्ष कर रहे हैं, और developers, भले ही speed धीमी और perks खराब हो गए हों, job ढूंढ ही लेते हैं। पता नहीं यह सिर्फ मेरे आसपास ही है या नहीं
कुल मिलाकर management बहुत ज्यादा हो गया है—यह management fad फैला हुआ है, और Instagram ने जैसे पूरा Technical Program Manager role ही खत्म कर दिया, वैसा चल रहा है
पहली job में layoffs का करीब 50% “management” side में था। हमारी team में अब product manager नहीं है, और हमें कहा गया कि जब तक बहुत जरूरी न हो design की चिंता न करें। दोनों roles व्यावहारिक रूप से team lead में समा गए हैं, और अब वही mockups और product decisions संभालता है
दूसरी job में layoffs का 70% management side में था। एक manager, जो 5 लोगों की एक team संभालता था, अब कुल 25 लोगों वाली चार teams संभालने लगा, और हमने designer और product owner भी खो दिए। अब ऐसे decisions बचे हुए product owner या technical team lead लेते हैं
हमारी कंपनी भी hiring कर रही है, और मेरा inbox recruiting firms से भरा है। यह product engineering और leadership roles के हिसाब से है
market ठंडा juniors के लिए है, और यह कब और कैसे बदलेगा, साफ नहीं है
reference के लिए, यह Silicon Valley के हिसाब से है, और मैं pandemic के दौरान relocate नहीं हुआ था। मुझे हमेशा शक था कि आखिर में ऐसा हो सकता है
आजकल software developer के रूप में जीना लगातार बकवास संभालने जैसा महसूस होता है
सोचता हूं बाकी सब ठीक हैं या नहीं, और सच कहूं तो मैं बहुत थक गया हूं। job search आत्मा को घिस देने वाली activity है, applications भेजना सिर्फ समय खाता है और बेवजह झंझट भरा है, Sisyphus जैसी दोहराई जाने वाली कवायद लगता है, और जिंदगी बर्बाद करने जैसा महसूस होता है। न कोई उपयोगी चीज सीखते हैं, न practical कुछ बनाते हैं, न जीवन के किसी हिस्से में सुधार होता है, और कोई proven automation तरीका भी दिखता नहीं
समझ नहीं आता कि developers को इतना क्यों थकना पड़े। Java, JavaScript, Python, Go, SQL dialects, bash और awk जैसी scripting, ansible, chef, terraform, दर्जनों AWS services, कई databases और implementations, common vulnerability types, DNS, TCP-IP, HTTP, WebSocket जैसे protocols तक जानने पड़ते हैं, और लगता है जैसे zero gravity में binary tree invert भी करना पड़ेगा
GitHub activity graph Amazon rainforest की aerial photo जैसा होना चाहिए, blog maintain करना, conferences में बोलना, और कभी-कभी paper जैसी posts भी लिखनी चाहिए। फिर भी काफी नहीं होता, और algorithms और data structures, language-specific, framework-specific, pair programming, system design, product, company/industry knowledge, assignments, technical presentation, behavioral interview तक कई interviews में शानदार होना पड़ता है
बड़ी कंपनी में जाकर “succeed” करने जैसा लगे तब भी पता नहीं क्यों safe महसूस नहीं कर सकते। बस आह निकलती है कि कुछ बनाने और ठीक करने के बजाय लगातार job-search mode में क्यों जीना पड़ता है
जानना चाहता हूं कि क्या यह तरीका सिर्फ software developers के लिए ही अलग है
सभी recruiters LinkedIn पर मौजूद जानकारी जैसी ही चीज होने के बावजूद resume मांगते हैं, तो यह employer को आगे भेज सकने वाला consent token जैसा दिखता है
कुछ वैसा एहसास, जैसे किसी विदेशी culture में गए हों और किसी ने अनजान कप में चाय पेश की, आपने एक घूंट पी लिया, और बाद में कोई दूसरा बताए कि अभी-अभी आपकी शादी हो गई है
काफी recruiters third-party होते हैं, और अक्सर उनका काम सिर्फ candidate resume लेकर forward करना होता है, इसलिए cold application से खास बेहतर नहीं—बस एक और बेवकूफी भरी layer
recruiter जो posting लाता है, वह अक्सर उसी site पर दूसरी third-party companies ने job description का एक अक्षर भी बदले बिना repost की होती है
कुछ recruiters contact information हटाकर अपना logo आसानी से लगाने के लिए MS Word document भी मांगते हैं
यह दिलचस्प है कि किसी कंपनी ने IQ टेस्ट इस्तेमाल किया
अभी तक मैंने ऐसा अनुभव नहीं किया है, लेकिन पिछले हफ्ते मैंने एक आवेदन फॉर्म देखा जिसमें “personality” टेस्ट के तहत पूछा गया था कि आप वामपंथी रुझान वाले उम्मीदवार को वोट देते हैं या दक्षिणपंथी रुझान वाले उम्मीदवार को। वह healthcare क्षेत्र की कंपनी थी
GitHub ने भी पूछा कि क्या वह मेरे resume को AI से review कर सकता है, तो मैं एक पल के लिए रुक गया। मैंने अनुमति नहीं दी, और मुझे साफ लगा कि इससे मैं दूसरे applicants की तुलना में नुकसान में पड़ गया
और मुझे लगता है कि personality test सामान्य तौर पर भी गैरकानूनी कर दिए जाने चाहिए
वही टेस्ट जो INFJ, INFP जैसे personality types पूछता है। coding job के लिए ऐसी मांग करना वाकई अजीब था, और मुझे लगा था कि बस LeetCode पढ़ना काफी होगा