Profile picture

Data Structures And Algorithms Q&A and Videos

About Data Structures And Algorithms

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
Posted a year ago
72 Views
4 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
Posted a year ago
65 Views
2 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