Profile picture

Data Structures And Algorithms Q&A and Videos

About Data Structures And Algorithms

The computer science concept we all love to hate. However, it is vital to master them to pass tech interviews, especially those at Big Tech.

How common is leetcode/hacker rank at FAANGMULA companies and startups for initial tech screen?

Senior Software Engineer at Taro Community profile pic
Senior Software Engineer at Taro Community

How common is leetcode/hacker rank at FAANGMULA companies and startups for initial tech screen?

How common is it that there are companies that interview similar to Imbue (another YC backed company, whose technical interviewing process I posted below) and SourceGrap h where you actually instead are asked to code on the fly with your actual environment (this to me feels way more comfortable than having folks throw out random questions at me)?

Interview Process length - I've seen rounds go for 8 for some companies (for even Google non-technical a million years ago I've seen it followed a similar format without technical at least like 5 rounds. If someone can post how long their average interview rounds were (how many interviews, how many technical screens, easy to hard, and how long did it take until you got an offer / knew you were rejected - a month, 6 months etc.?). I've head so many stories ranging far and wide over the years and wonder what the average is during this market, which feels longer than a year some people, even those who were laid off at FAANGMULA companies.

Interview #1) Recruiter Reach Out, Resume Submission, and Behavioral

Interview #2) Tech Screen #1

Interview #3) Behavioral with Team Member 2 Years Your Senior / Tech Screen

Interview #4) Behavioral with Team Member that is your director/higher up manager by at least 2 levels or something / Tech Screen #2

Interview #5) Behavioral with Team Member that is your actual position (peer / Tech Screen #3)

Interview #6) Vote by Committee / Group Interview / Panel or something

Any insights into the interview process more in detail will be helpful! Thanks!

Show more
19 Views
1 Comment

[Discussion] Machine Learning Interview tips

Machine Learning Engineer at Taro Community profile pic
Machine Learning Engineer at Taro Community

I've done about 25 ML interviews in the last 3 months. Here's my tips

  1. HM interviews are super common. KNOW YOUR WORK IN DEPTH. This is the single biggest tip I can give
    1. Be able to talk for atleast 5-10 minutes about the ML models you choose. You cant just give a high level description
    2. Understand the tradeoffs with the ML model you choose
    3. I think depth is just everything. You need to understand deeply the frameworks you use, the models you choose, the evaluation methods, deployment strategy. How it works under the hood
  2. DSA is a must. It's hard to cram DSA, but you get really really far with just a bit everyday. About 30% of interviews have a DSA round onsite. Another 30% might have DSA screening (hackerrank/codesignal). I'm not saying grind leetcode 6 hrs a day but even 1-2 problems consistently everyday adds up a lot! and you dont want to be caught unprepared if u get a DSA interview, you cant push back interviews for a month right now
  3. Takehomes/timed take homes are common. Make sure you clearly document and your code is easily reproducible and no steps are missing. e.g. if you did some data preprocessing but its not documented/shown thats bad. The conversion rate on takehomes is pretty high for me so do well on them and treat them seriously. In this interview cycle I've gotten first round interviews for all 6 takehomes i submitted
  4. Interviews are 80% luck and 20% skills in this market. Sometimes you just cant help it they might want a golang developer and even if youre a 200IQ java developer they dont care. Transferrable skills are not the same in this market. Sometimes theres just not a fit and dont beat yourself up. You can do everything right and still fail interviews
  5. Lower Pay/Lower presitge != Easier Interview. They're just different interviews looking for different things. Don't think that just because an interview is for a less prestigious company it will be easier. I've passed first rounds for roles that pay 3x more and 2 levels higher than ones ive failed.
  6. Make sure to go through the JD and note the skills theyre looking for and spend 30 mins being able to insert talking points to highlight those skills

Any other tips anyone would like to add?

Show more
335 Views
3 Comments

How to Effectively Divide Time Studying Between DS&A and System Design

Mid-Level Software Engineer at Taro Community profile pic
Mid-Level Software Engineer at Taro Community

I'm currently studying for software engineering interviews, but I'm having a hard time deciding how to divide up my time between doing LC problems and going over system design concepts. It can feel overwhelming since both categories have so much to cover. I also have a family, so most of my studying gets done after my kid goes to sleep at around 7 PM. Since my team is in the west coast and I'm in the east coast, I do get some extra time in the morning to work out at the gym and go through some LC problems. I'm currently going through Neetcode's course as a refresher. For those of you who have aced your interviews, how did you divide up your time on different topics? Did you mostly spend your time on LeetCode? I'd be happy to hear any recommendations.

My main goal: I want to be interview-ready no matter what. I currently work at a big tech company and I've been there for 4 years now, but I haven't seen much growth and now I'm seeing that I could have negotiated more when I first got my offer. I was asked 2 LC-type problems, and I feel I got lucky with them because I hadn't extensively gone through all the different patterns and data structures. It was my first time getting RSUs and I wish I had known more about negotiation tactics as well. I feel that if I be ready for interviews, I can apply and definitely increase my comp by a lot. The motivation is for me to overcome the fear of DS&A problems and not stop myself from applying to positions just because I'd be asked LC-type questions. I also know that I can double my comp with the right negotiation tactics and with my years of experience.

Show more
49 Views
2 Comments

How to get internships as a Master's student with close to 2 years of experience?

Software Engineer at Taro Community profile pic
Software Engineer at Taro Community

Hello everyone,

I'm preparing for a potential career transition as I join the MS CS program at Georgia Tech this fall, while also working full-time. Given the uncertain job security at my current company, I am proactively looking to strengthen my position in the job market in the United States. Here is a brief overview of my background:

  1. Current Role: 2 years in a distributed systems role utilizing TypeScript and Rust.
  2. Education: Joining Georgia Tech for an MS in Computer Science; previous non-CS engineering degree in a tier 1 university in India.
  3. Internships: Completed two internships with local town US companies ( didn't learn much there).
  4. Publications: Co-authored an Android Dev (Kotlin) + AI/ML-based paper published in an ACM journal and presented at a conference.
  5. Research: Collaborated with professors on projects related to security, networking, and HCI.
  6. Side Projects:
    • Pet Marketplace and Grocery eCommerce Android App - Java
    • Multi-threaded mathematical solver and Sudoku helper in C/C++
    • DDQN-based AI game for an RL course project - Python
  7. Programming Proficiency: TypeScript (Node.js), Rust (p2p Networking), C/C++ (Operating Systems & DSA), Java (Android Development)

I had earlier applied to lots of companies in 2022 & 2023 when I was looking for jobs in the States. I had applied to around 300 companies each for internships and jobs. Only 10 reached out, I could only convert one then which is my current job. I had a really poor profile then with a non-CS degree outside of the United States. I had cold applied then. I do not want to end up in that same situation again. I have tried my best to improve my profile since then.

I'm seeking advice on how best to approach internship applications now with an improved profile. Specifically, I am wondering:

  • Is it more effective to reach out directly to hiring managers rather than recruiters, especially for internships?
  • What strategies can I employ to increase my visibility and chances of getting hired, beyond cold-applying and asking for referrals on LinkedIn?
  • What can I do beyond brushing up my DSA skills and Dev skills in the tech stack I am proficient in? [ My degree will also help me catch up on my basic CS foundation. ]

Any insights or advice beyond the scope of the questions would be greatly appreciated too!

Show more
49 Views
4 Comments

How to navigate career after layoffs

Mid-Level Software Engineer at Taro Community profile pic
Mid-Level Software Engineer at Taro Community

I recently got laid off working as a developer working within an agency. I currently have around 5 years of experience working in the agency setting utilizing React, Next js, Vue, Liquid, and the Shopify API to create custom eCommerce sites. During my time at these agencies, I also had the opportunity to act as a lead, interact with clients, set timelines, and cross collaborate with designers/projects managers to meet deadlines.

I have been looking for new opportunities since January and I've been able to secure a couple of interviews, technical challenges, and one onsite. Most of my interviews have been coming from agencies, but my preference is to join a tech startup or maybe more on the brand side of things within the Shopify niche. Below are a couple of questions:

  1. Will working at another agency hurt my career in the long run? My ultimate end goal is to work for a bigger tech company if possible.
  2. If an agency does want to hire me right now, should I take the job for now or just wait for one of my preferences?
  3. I notice a lot of developers within the agency space freelance after their 9-5. Does studying for interviews or future jobs provide a higher ROI instead of freelancing?
  4. Lastly, I just finished (super helpful!). It seems like the best course of action for me is to apply a lot, work on side projects instead of grinding leetcode, and study system design. Does this seem correct?

Thanks in advance!

Show more
313 Views
3 Comments

Learn About Data Structures And Algorithms

Data structures and algorithms (DSA) are fundamental concepts in computer science and software engineering. These concepts are essential for solving complex problems and are often used in technical interviews at big tech companies like Google, Meta, and Amazon.
Data structures are a way of organizing and storing data so that operations can be performed efficiently. Common data structures include arrays, linked lists, stacks, queues, trees, and graphs. Understanding data structures is crucial for designing efficient algorithms and optimizing the use of memory and compute.
Algorithms are procedures or formulas for solving problems or performing tasks. Algorithms are used to manipulate data stored in data structures, and they are essential for tasks like searching, sorting, and graph traversal. The efficiency of algorithms is measured in terms of time and space complexity, which determines how quickly an algorithm runs and how much memory it uses.
Data structures and algorithms are closely related because the choice of data structure can significantly impact the performance of an algorithm. Choosing an appropriate data structure is crucial for optimizing the efficiency of an algorithm. It’s also true that choosing the right algorithm can maximize the data structure that gets used.
Doing well in data structures and algorithms problems means you have developed the critical thinking skills required to solve technical challenges as a software engineer. As a software engineer, you encounter many challenges, and the ability to choose and implement the right data structure and algorithm is fundamental to coming up with efficient and scalable solutions.
Many companies assess their candidates based on their ability to solve algorithmic based problems during an interview. Learning how to solve these problems effectively can be the difference between getting hired and not getting hired. Make sure you work on coding exercises that let you apply your data structures and algorithms knowledge before you go into your technical interview, so you can be prepared to answer any technical question during your interview.
In summary, data structures and algorithms form the backbone of computer science and software engineering, enabling engineers to develop efficient solutions to complex problems, and they play a critical role in technical interviews for top companies.
Show more