שחזורי ראיונות עבודה -> שחזור ריאיון עבודה בחברת אימפרבה
  • שחזור ריאיון עבודה בחברת אימפרבה
  • ע"י: לימור_1992
    היי, נגשתי לריאיון במשרה של counter breach איזשהו מוצר אבטחתי באימפרבה. נתקלתי בראשת צוות מאוד לא נחמדה (לא אפרט את שמה כי אין צורך בשיימינג). היא לא ממש טרחה להתעניין בי וישר נתנה לי מבחן טכני לעשות.. אותו עברתי והתקדמתי לשלב ב' - מבחן הבית. אבל לפני זה, מה היה במבחן הכתב? כל השאלות המכשילות בג'אווה שכבר למדתי לדלג מעל המלכודות שלהן בריאיונות קודמים: 1. כשעושים איטרציה בצורת foreach האם אפשר להסיר איברים מהרשימה? התשובה, לא. זה זורק exception 2. האם בתוך פונקציה ואנו מעבירים לה פרמטר ועושים לו new האיבר ישתנה אחרי היציאה מהפונקציה? לא, כי ג'אווה מעבירה פוינטר. 3. תנו דייז'ן פאטרן שהוא לא סינגלטון ולא פאקטורי (נתתי את הבילדר). קצת SQL בסיסי. אחרי המבחן ראשת הצוות באה וראתה שעניתי נכון והתחילה לנסות להכשיל אותי (כנראה היא אוהבת את זה). עברתי את השלב הזה. לאחריו קיבלתי למייל מבחן בית אותו אני מצרפת במלואו פה. לאחר 3 שבועות ללא תשובה החלטתי לשאול מה קורה (כבר הבנתי שלא עברתי אבל בכל זאת..) וראשת הצוות אמרה לי "כן, לא ממשיכים איתך כי הרמה שהפגנת במבחן בית לא הייתה טובה מספיק בשביל הסטנדרטים שלנו". איזה טאקט. איזה יופי שלא "זכיתי" להיות תחתיה. מציעה לא ללכת להתראיין שם. חוויה שלילית. אבל בכל זאת, למי שרוצה, הנה המבחן בית. You have a system that needs to send SMS messages to clients. This is a large-scale system that should be able to send high number of messages. It receives SMS messages, tries to send them, and if it fails it needs to retry sending. Here’s how the flow should go: 1. A message is received in the system, and it tries to send it immediately. • If it succeeds we are done. • If it fails it tries to send it after 0.5 a second (from the moment the message arrived). • If it fails again it tries to send it after 2 seconds (from the moment the message arrived) • If it fails again it tries after 4 seconds (from the moment the message arrived) then after 8 seconds, then after 16 seconds and that’s it. • If it fails again the message is thrown away. 2. You need to implement two methods: • void newMessage (Message message) – this method is called whenever a new message arrives in the system • void wakeup() – this method is called every 0.5 second. 3. You are given a method: boolean send(Message message) Use it in order to send a message to its destination. The method returns true if the message was sent successfully and false if it failed. The scope of this exercise is only to implement the methods newMessage(Message message) and wakeup(). You do not need to implement anything else. You can assume: 1. someone else implemented the send(Message message) method and simply use it. 2. the newMessage() method is called whenever a new message arrives in the system 3. wakeup() method is runs every 0.5 seconds Please focus on: • Performance • Good design[/quote]
  • ע"י: 1_אורח_כללי
    תודה רבה, שחזור מעולה עזר לי מאוד לראיון בחברה אחרת
  • ע"י: 1_אורח_כללי
    תודה רבה, שחזור מעולה עזר לי מאוד לראיון בחברה אחרת היי דורון האם תוכל לשתף אותנו בפתרון שלך?
  • ע"י: 1_אורח_כללי
    תודה על השחזור !!! מנסה לפתור את זה ולא בטוחה שהבנתי איך להתייחס לזמנים, אשמח לעזרה איך אני שולחת אחרי 0.5 ואחרי 2 ואחרי 4 שניות וכו' ? שמרתם בצד COUNTER שאומר אם זה הניסיון 1,2,3 והלאה ? תודה