फुल स्टैक डेवलपर इंटरव्यू सवाल

ऐसा notification सिस्टम डिज़ाइन कीजिए जो emails भेजे और in app feed भी चलाए।

इंटरव्यूअर असल में क्या परख रहा है, अपना जवाब कैसे स्ट्रक्चर करें, और एक बोला हुआ उदाहरण जिसे आप अपना सकते हैं।

छोटा जवाब

notification को सत्य के स्रोत के तौर पर एक table में लिखिए, फिर हर channel के लिए एक delivery job कतार में डालिए ताकि फेल होता email provider in app feed को कभी न रोके। jobs को idempotent बनाइए और exponential backoff के साथ retry करके dead letter queue तक ले जाइए। feed उसी table से परोसिए, अपडेट socket पर भेजिए या focus पर poll कीजिए। हर यूज़र की पसंद और digesting जोड़िए ताकि किसी को घंटे में बीस emails न मिलें।

इंटरव्यूअर यह क्यों पूछते हैं

यह डिज़ाइन का ऐसा सवाल है जो एक साथ डेटा मॉडलिंग, queues, तीसरे पक्ष की नाकामी और प्रोडक्ट की समझ छूता है, और यही फुल स्टैक की सतह है। इंटरव्यूअर देखना चाहता है कि आप रिकॉर्ड को delivery से अलग करते हैं, आंशिक नाकामी संभालते हैं, और मात्रा के यूज़र अनुभव पर सोचते हैं। पसंद और digesting का ज़िक्र दिखाता है कि आप सिर्फ पाइप नहीं, प्रोडक्ट भी देखते हैं।

अपना जवाब कैसे स्ट्रक्चर करें

  • notification के रिकॉर्ड को channel की delivery से अलग करें।
  • queue, retries और नाकामी संभालना बताएं।
  • समझाएं कि in app feed कैसे पढ़ता और अपडेट होता है।
  • पसंद, batching और unsubscribes कवर करें।

उदाहरण जवाब

बोला हुआ उदाहरण, पहले व्यक्ति में

मैं एक notifications table बनाऊंगा जो user से keyed हो और जिसमें type, payload, बनने का timestamp और पढ़े जाने का timestamp हो, और उसी row को सत्य मानूंगा। notification बनाना एक write और हर channel के लिए एक delivery job कतार में डालना है, तो email provider बैठा हो तो भी in app feed चलता रहता है और email बाद में retry होता है। हर job notification id और channel से बनी एक स्थिर idempotency key लेकर चलता है, तो retry दोबारा नहीं भेज सकता। retries exponential backoff से होती हैं और कुछ कोशिशों के बाद dead letter queue में जाती हैं, साथ में alert, क्योंकि चुपचाप फेल होता email वही bug है जिसका पता ग्राहक से चलता है। feed खुद उसी table पर एक सादा paginated read है जिसमें unread की गिनती cached रहती है, और नई चीज़ें मैं server sent events पर भेजता हूं या tab के दोबारा focus में आने पर फिर से ले आता हूं। प्रोडक्ट की तरफ, पसंदें हर यूज़र और हर type के हिसाब से रहती हैं, ज़्यादा मात्रा वाले types रोज़ाना एक सारांश में जोड़ दिए जाते हैं, और हर email में एक click वाला unsubscribe होता है जो सच में उन्हीं पसंदों में लिख देता है।

जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।

देखें यह कैसे काम करता है

फॉलो-अप सवाल जिनकी उम्मीद रखें

  • एक मिनट में आए दस एक जैसे events को कैसे हटाएंगे?
  • unsubscribe हर जगह माना जाए, यह कैसे पक्का करते हैं?
  • queue के लिए आप क्या इस्तेमाल करेंगे और क्यों?

फुल स्टैक डेवलपर के और सवाल

आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।

मेरे सवाल प्रेडिक्ट करें

मुश्किल सवाल पूछे जाने से पहले उनकी रिहर्सल कीजिए

एक लाइव कोपायलट के साथ प्रैक्टिस कीजिए, फिर तैयार होकर अंदर जाइए। $29 Session Pass आपको इंटरव्यू पार करा देता है, न कोई सब्सक्रिप्शन, न कोई लॉक-इन।

GhostPilot पाएं