Interviews, Interviews, Interviews!!

The grind -

I was doing an internship with Intel, Ireland and it was about to complete in December 2020. I already had a good understanding of Data Structures and Algorithms(DSA) but I was out of daily practice. I started the daily grind on LeetCode(LC) in early July.

Interviewing phase -

I started my interview season by bombing the first interview with ByteDance. (Well, to be honest, it was until date one of the toughest codepair rounds I have been through). I knew I had to improve so I started practicing random problems just to be in sync with my understanding of DSA.

  • Data Structures and Algorithms — Analyze time complexities for different stub codes, whiteboard algorithms for 0/1 knapsack and fractional knapsack, explain tail-recursive call in depth.
  • Lots of C++(runtime polymorphism[vtable and vptr in-depth], volatile, threading, STL implementations [list vs vector, unordered_maps vs maps], garbage collection, move semantics, unique_ptr, pointers, references)
  • Operating Systems(virtual memory, segmentation, page faults, caching[L1 vs L2 vs L3], memory management algorithms)
  • Web development & JS(Async calls, what is hoisting in regards to JS keywords, alternatives to REST API’s, couple of questions on NodeJS event loop internals, what is event-driven architecture, sessions vs cookies vs JWT in regards to security, basic cipher questions)
  • Walkthrough on the CV and my experience. Questions about my speaking engagements at different PyCon’s(Python Conferences globally)
  • Lots of Python interview questions. A few questions tailored to my understanding of Python features and their internal implementations like (GIL, Asyncio, Multithreading, Subinterpreters). [PS — I had done a lot of research on core C code that powers Python which helped me get through these questions]
  • Brief System design question — Design a rate limiter. [The interviewer wasn’t interested in knowing much in-depth. He had given me a situation and I had to fabricate the rate limiter according to conditions.]
  • Many questions on Pub-sub architectures, Microservices, Kafka & Redis caching because I had an experience working with them.
  • Few questions on Load balancers & Reverse proxies. Also continuing discussion on Nginx and Varnish.
  • HTTP 2 vs HTTP 1.1 and major changes.
  • Two brief questions on testing my design patterns knowledge. (On what design patterns are chat applications like WhatsApp and Telegram based. Explain factory vs abstract factory design pattern in regards to the real-world applications?)
  • Why Apple
  • Mainly behavioral round with standard STAR technique questions.

Resources -

  1. Data Structures and Algorithms
  • List of Youtubers who teach DSA.
  • Aditya Verma’s youtube channel. He is the best when it comes to teaching DP!
  • Geeksforgeeks
  • CTCI
  • EPI (I have completed it page by page and it's one of the best books for cracking the interview.)

Final thoughts -

  • Interviews are not just about LeetCode and Data Structures. They test your core Software Engineering skills. Learn about them instead of just focusing on LC grinding.
  • Give yourself 6 months and you will sail through the SE interviews at most of the companies. (The interview system at most of the companies is completely broken!)
  • Don’t prepare for company-specific questions or mugging up solutions to the questions. You will fail most of your interviews by doing that.
  • Selection email for a role/offer letter is not equal to job confirmation [I have had terrible experiences in the last few months]
  • Relax, go out for a walk(instead of Netflix), cook something, take a break for a day or two. Divert your mind for some time. You need some time out of work to concentrate well on your work.
  • Be confident and most important be yourself. Express what you know and say a no to that you don’t.
And the feeling in the end :p

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store