digikala(digicloud)

Status

📜📞🔧📝⚖️❌

Python Engineer (Digicloud)

Interview process

flowchart LR
    sr(Send resume) --> hr(HR Call) --> ti1(Technical Interview) --> t(Task) --> ti2(Task Review) -- rejected --x hri(HR Interview) -.-> o(Offer)

Apply Way

jobinja & site

Interview Date

  • Sent Resume
    1402.08.02

  • HR Call
    1402.08.09

  • Technical Interview
    1402.08.15 AT 4 PM

  • Task
    They sent 1402.08.23
    I sent 1402.08.29

  • Task Review
    1402.09.08 AT 1 PM

  • Rejection Letter
    1402.09.28

Interview Duration

  • Technical Interview
    1 hour

  • Task
    1 week

  • Task Review
    30 minutes

Interview Platform

Skype

Technical Interview

مصاحبه با دو نفر بود که هر دو فنی بودن. یکی‌شون خیلی سوالای کمی پرسید و دیگری حضور پررنگ‌تری داشت. قبل مصاحبه، hr که پروسه رو توضیح داد، از لایوکد هم حرف زد امّا خبری از لایوکد و الگوریتم نبود. مصاحبه‌کننده بسیار خوش‌برخورد، مودب و باحوصله بود. خوب گوش می‌کرد، استرس نمی‌داد و باعث می‌شد ریلکس باشی. ذهنش هم خیلی مرتب و منسجم بود. سوالات درهم و میکسی از هر شاخه نمی‌پرسید. مثلا در مورد پایتون می‌پرسید بعد می‌گفت خب دیگه سوالام از این بخش تموم شد بریم در مورد دیتابیس حرف بزنیم بعد سوالای دیتابیس رو مطرح می‌کرد بعد می‌گفت به نظرم کافیه بریم در مورد معماری و میکروسرویس صحبت کنیم. این خیلی برام جالب بود که ذهن منظمی داره و step by step جلو می‌ره. ممکن بود یه سوالایی بپرسه که فراتر باشه بعدش می‌گفت نگران نباش اگه خیلی باهاش آشنا نیستی انتظار نمی‌ره که بدونی و جزو مصاحبه نبود صرفا خواستم ببینم باهاش آشنایی داری یا نه. در کل حال کردم با مصاحبه چون یادگیری داشت توش و تقریبا هر چی که می‌تونستن، پرسیدن.

  • Tell us about yourself.

  • What is SOLID?

  • What is DI?

  • What is MVC?

  • Which part of MVT that we working with data?

  • What is abc?

  • How can create private methods?

  • Can we have multiple inheritance in Python? What is the algorithm behind it?

  • What is a design pattern, and which design patterns have you used?

  • What is singleton?

  • What is object pool?

  • What is microservice? Are you familliar with that?

  • How did you implement microservice architecture in your past company?

  • How should we design a database in microservice architecture?

  • How can we solve latency between our services in a microservices architecture? How can we protect against data loss?

  • Do you know saga roll-back mechanism? (this is not about interview question just asking)

  • What is RPC?

  • What is decorator?

  • What feature of python that help decorator functionallity?

  • What is concurrency and parallelism?

  • Have you ever written async project? Which problem you solved with that?

  • Which function of async in python can run tasks in background? For example we have 4 request and we want send all of it in one time.

  • What is list comprehension?

  • Suppose we have a social media platform, and we want to retrieve all comments of a post. I am using a for statement for this scenario. Is this approach correct? How would you solve this?

          Answer : We use JOIN with tables

این سوال با کلمه for آدمو به اشتباه میندازه. خودشونم گفتن همه این سوالو اشتباه جواب دادن و گمراه شدن در صورتی که ساده‌ست.

  • If some service failed in microservice or some database broken, which approach can solve that?

  • How much do you work for DevOps stuffs?

  • What is ACID?

  • Can you example about consistancy issue in work?

  • Which SQL engines support ACID?

  • What was your Git workflow in the last company?

  • If you think something is correct and your tech-lead thinks not, how you deal with it?

  • If you had a problem with someone in work, how you solve that?

  • If you had a problem with your tech-lead, how you solve that?

  • Think your problem with your tech-lead is very extreme and worst case. What's your approach?

  • Any questions?

          My answer:

فرض کنید همه چی خوب پیش رفت و من رو اکسپت کردین و اومدم تو تیم‌تون. چی باعث می‌شه که بعد یه سال فکر کنید انتخاب‌تون خوب بوده؟

          They response:

به نظرم پیگیر بودن و تلاش برای یادگیری و نظم خیلی مهمه و ارتباط داشتن. اینا چیزاییه که می‌تونه باعث پیشرفت فردی و حتی تیمی بشه.

  • Can you share feedback about the interview that would help us improve?

Task

من خیلی وقت نداشتم برای انجام تسک حتی می‌خواستم کلا نزنم دیدم حسش نیس زیاده وقت بذارم ممکنه کلا ریجکت شه ولی گفتم دیجی‌کالاس یهو دیدی اوکی شد. خلاصه سعی کردم از اون‌جاهایی که بلدم شروع کنم و سه روزه زدم. همه چی داشت تسک‌شون. مهم‌ترین بخش، قسمت async و back-offاش بود که خوب نزدم ولی بقیه قسمتا رو خیلی تمیز زدم هدفم این بود کد مرتبی باشه و خب مثل این که همون دو قسمت براشون مهم بود. بعد از فرستادن تسک، hr فکر کرده بود وقتش گذشته و اگه پیگیری نمی‌کردم، مثل این که کلا زنگ نمی‌زدن بهشون توضیح دادم تاریخ ایمیلا هست تو همون بازه ددلاین فرستادم. موقع زنگ زدن البته عذرخواهی کرد برای اشتباه پیش آمده.
تسک و جواب من.

Task Review

اولش گفت یه بار بیار بالا و همه قسمت‌ها رو از اول تست کن. مثل register, login و اضافه کردن rssها و بقیه apiهایی که بود. مهم‌ترین نکته‌ای که بود، همون قسمت back-off و asyncاش بود. که گفت خب اینجوری که زدی می‌دونی چه مشکلی ایجاد می‌شه؟ و فهمیدم که اون قسمت امضای آفر بود. بعد گفت راه‌حلی داری واسش؟ و یه سری سوال هم کرد که فرض کن یه عالمه لینک خراب داشته باشیم چجوری خیلی سریع و بدون خون‌ریزی می‌تونیم اون خراب‌ها رو تشخصی بدیم و دیگه fetch نکنیم. در مورد دیزاین دیتابیسم یه سری نکات گفته شد که یه جا foreign key استفاده کرده بودم که نیاز نبود. و خب بعد از همه اینا گفت که تمیز کد زدی و معماریت عالیه و تست هم نوشتی اینم خیلی خوبه اما اون قسمتم می‌زدی تموم بود. ازم فیدبک خواست. گفت به نظرت چجوریه؟ ما همه چیو واضح توضیح داده بودیم؟ نظرت راجع به تسک چی بود؟ حس می‌کنم با توجه به مصاحبه‌هایی که می‌ریم خیلی خوب نمی‌زنن این تسکو. در طول مصاحبه هم بسیار مودب و محترمانه برخورد کرد. یه جا وب‌کم رو قطع کرده بود و در مورد کد نظر می‌داد و وب‌کمو روشن کرد گفت من نظرمو می‌گما حس نکنی دارم می‌گم کدی که زدی خوب نیس نترسی یه وقت؟ :)

Score

9/10

تجربه حرفه‌ای و خوبی بود.