Skip to content

Latest commit

 

History

History

internships-and-fulltime

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

Internships & Full-Time Opportunities

General Advice

Preparation Advice

  • Pick any programming language - C++/Java/Python/JavaScript etc. and master it.
  • Brush up your Algorithms & Data Structures.
  • Enter leetcode.
  • Neetcode.io has an excellent compilation of problems for interview preparation. If you're already good at DSA, go for Blind 75. If you're relatively a novice, go for NeetCode 150
  • These 75 or 150 problems teach you the most common patterns of questions asked in tech interviews. The goal is not to remember solutions but to be able to recognize a pattern from a new problem and be able to solve it.
  • Start working on problems for each pattern you practice. There's always a compilation of problems grouped by patterns. For example, this post.
  • After you're confident about your depth and breadth of theory and problems, start applying to companies.
  • Now, start targeted practice. Every company has its way of assessing candidates. Leetcode provides a compilation of the most frequently asked interview questions, grouped by companies.
  • If you're targeting SDE2 / SE2 / Senior SDE - a strong grip on System Design is necessary.
  • Start System Design preparation with this post and then this book.
  • Most of the interview questions focus on - Trees, Graphs, Arrays, Strings, Recursion, Binary Search, Linked Lists & Back Tracking.

Machine-Learning specific advice

  • Compared to software engineering, machine-learning interviews have fewer resources.
  • Before preparing for an ML role, it is imperative to know the actual requirements. For example, does it require building pipelines/ or deploying ML models/or is it more research-focused?
  • A good way to revise fundamentals is to do ML courses in your degree.
  • The popularity of ML has led to an explosion of roles across various domains like LLMs, Generative AI, etc. Some roles have an explicit MS or PhD requirement (mostly research-oriented), but many have relaxed requirements. Don't apply to a role if you don't meet these basic requirements.
  • In my opinion, the best way to improve the chances of callbacks is to do relevant projects in the domain. For example, if the role specifically mentions LLMs, and you haven't worked on it, the chances of a callback is minimal.
  • Most ML interviews comprise of these 5 rounds:
Type of Round Resources
Coding Similar to the software-engineer role. If you are a beginner, consider https://www.educative.io/courses/grokking-coding-interview-patterns-java. Practicing all the patterns is the key.
ML coding Code ML algorithms from scratch like Logistic Regression, Linear Regression, etc. A good list is found here: https://github.com/alirezadir/Machine-Learning-Interviews/blob/main/src/MLC/ml-coding.md
ML system design It is similar to the system design round in the software engineering interview. Some recommended resources are https://www.amazon.com/Machine-Learning-System-Design-Interview/dp/1736049127
ML Breadth Testing of basic ML fundamentals like gradient descent, linear regression, etc. Check Chapter 7 of https://huyenchip.com/ml-interviews-book/contents/7.1-basics.html.
ML depth It is more specific to your projects in the resume. For example, if you have worked primarily with NLP, expect questions on BERT, Transformer model. Know the ins and outs of every project mentioned in your resume.
Behavioural These questions gauge your personality and how you overcame challenges. Follow the STAR formula to answer questions as noted here: https://gist.github.com/katiestutts/7aef5063ba93616a594ac3f3764f8788. Another good resource is: https://www.interviewkickstart.com/career-advice/situational-scenario-based-interview-questions-answers.
  • Some companies might focus more on MLE and hence focus more on ML coding and ML System design rounds. More research-oriented roles will focus on ML depth. There is no hard and fast rule.

Resources