PlaceKode with Shashwat Gupta placed at ConcertAI
Uthaan, the Journalism and Recreational Club of ABV-Indian Institute of Information Technology and Management Gwalior, is here with a new edition of PlaceKode. With us, we have Shashwat Gupta who is an upcoming SDE Intern at ConcertAI. He will be sharing his working experience at various research internships, and advise on machine learning, development and problem solving.
First of all, congratulations on getting placed at the fastest-growing AI-powered SaaS data company in healthcare. After all the grind, How does it feel to become a part of ConcertAI?
Yeah, definitely. It feels great, right? Every college student has a desire to get placed in a decent company. It was an extreme desire of mine to get placed on campus only. That was one of the motives for my getting into this college and my goal throughout college life. And then, it was successful. I got placed in December 2023. I remember it was December 7, 2023, the night before my MTP II presentation, I got placed. So, definitely, it’s a beautiful feeling — a feeling of contentment and achievement.
Can you please walk us through your interview process? How many rounds were present in the selection process, and what advice would you like to give for the campus placement process specific to IIITM?
The first round was an online assessment which included four DSA questions and 20 multiple choice questions covering aptitude and computer fundamentals similar to the level of the GATE exam. After passing the online assessment, there were two technical interview rounds. The first round focused on DSA and I had to solve two coding questions of LeetCode Medium-Hard difficulty in an hour. The second round was with an engineering manager who thoroughly reviewed my resume, projects, and experience, including my internship. Additionally, I was asked to solve a database query. The HR round took place around 9:00 p.m. and it was a final discussion round for the shortlisted candidates. One of the best things about the company’s process was that it only took two days from start to finish; there was no need to wait for results for days like with other companies. The entire process was relatively quick — the online assessment was on the first day, and all the interviews and results were concluded on the second day.
“One piece of advice I would like to give, specific to our college, is to set a minimum bar for yourself.”
I set my bar at not applying to companies offering below 12 LPA. Everyone needs to set that bar for themselves. In our college, the order of company visits is not fixed. For example, a company with a low salary package could come before a company with a higher package. If you settle for the lower package company, you may miss out on the chance for a better opportunity later. Another piece of advice is to aim to secure a job in the 7th or 9th semester, preferably before December. After that, in the final semester, our placement cell is not as active, and very few companies offering salaries of above 10 LPA come for recruitment. It’s important to have a strong foundation in core computer science fundamentals. Proficiency in four common subjects — Operating Systems, Computer Networks, Object Oriented Programming, and Database Management Systems — is crucial.
What company-specific things do you do before the interview? What are some learnings from the failed interviews of yours? How many applications and interviews happened before you finally landed at ConcertAI?
It’s crucial to pay attention to company-specific details, as they can make a big difference in interviews. I’ll share two examples to illustrate this. In one interview, I watched the company’s presentation and tailored my preparation to match their needs as outlined in the presentation. For instance, Meesho, an e-commerce company, emphasized scalability, so I developed a system design concept related to scaling and incorporated scaling techniques into my answers. This impressed the interviewer and helped me advance to the next round. In another interview with ConcertAI, the company I was ultimately selected for, I noticed their focus on knowledge graphs in the presentation material. During the engineering manager round, I made sure to highlight my experience with knowledge graphs, which aligned with their requirements. These examples demonstrate the importance of paying attention to company-specific details. It’s essential to review presentation materials carefully and take note of things that set you apart from other candidates.
What are some notable experiences of yours during different interviews that you would like to share with the readers? Also, what is your advice for the students during the entire placement season?
During my interview with Nutanix, which took place offline at our campus, I encountered a graph coding question. Unfortunately, I made a rookie mistake by not asking for the constraints or limits of the Data Structures and Algorithms (DSA) question beforehand. As a result, the interviewer questioned me about the time complexity of my code and whether it would be optimal for extreme cases. If I had asked for the constraints beforehand, I could have defended my answer more effectively.
This experience taught me the importance of setting boundaries for the question before starting. Interviewers often ask open-ended questions, so it’s crucial to seek additional information, such as whether the solution should be in O(n) complexity or if O(log n) would suffice. By understanding the constraints, you can tailor your solution more accurately to the problem at hand and demonstrate a better grasp of efficient coding practices. This is an important piece of advice for anyone preparing for technical interviews. Always clarify the limits and constraints before diving into the solution to ensure your approach aligns with the interviewer’s expectations.
Some general advice includes ensuring your resume is optimised for Applicant Tracking Systems (ATS), being thoroughly familiar with its content, and avoiding any claims you can’t substantiate. It’s important to stay confident and determined in your goal to get selected; this mindset significantly enhances your chances of success. I have friends who are still unplaced and feeling quite discouraged, while a few continue to apply with some remaining motivation. It’s a tough period when you’re not getting placed on campus or advancing in selection rounds. Therefore, it’s essential to stay positive and focused on securing a position as soon as possible. Keeping your spirits up during these crucial days is key to achieving your goal.
How did you manage to get accepted into a prestigious university like the University of South Carolina for a research role, did your CG impact the selection process? Could you give us a walkthrough of the application process? How was your experience working as a research intern?
My journey searching for a research intern began in my second year of college, and it was an exhilarating experience. The idea of securing a fully funded research internship abroad captivated me. During the lockdown, I poured my heart and soul into this goal. I created a detailed list of 40 to 50 research internships that caught my eye and carefully noted all the requirements, such as a compelling Statement of Purpose (SOP), strong letters of recommendation, a standout resume, and, of course, meeting the CGPA criteria.
As the end of my second year approached, my excitement grew, and my focus was laser-sharp on these research opportunities. The application process was an adventure in itself. I spent hours, sometimes days, meticulously customising my CV for each specific position. With around 30 to 40 projects listed on various websites, I dove into each one, eager to understand how I could make a meaningful contribution over the summer. I strategically extracted keywords from the project descriptions and wove them into my SOP and CV. For instance, when I discovered the Santa Fe Institute’s work in agent-based modelling, I was inspired to develop my own agent-based modelling project within just two to three days. I eagerly added it to my resume and applied to the institute, feeling a surge of excitement with every step.
This journey was a thrilling and transformative experience, one that taught me the power of dedication, customisation, and genuine enthusiasm.
I maintained an entire folder dedicated to my internship applications, and I can share it with you all. It includes the CVs I used, the mentors I applied to, and my statements of purpose. These were my efforts during my second and third semesters.
Despite my meticulous preparations, I faced a significant hurdle: my CGPA was in the eight-point-something range, while most universities required a 9+ CGPA, which our college rarely provides. In fact, no one in our batch had a 9+ CGPA. However, I refused to lose hope. When I saw an opening on LinkedIn for a research internship at the University of South Carolina, I jumped at the chance. It was an assignment-based internship, so I completed the assignment, submitted it to the professor, and emailed my resume. To my delight, I received a positive response and embarked on this exciting journey.
The internship was in the natural language processing (NLP) domain, specifically focusing on advanced NLP and knowledge graphs. Knowledge graphs are fascinating tools used in search engines. For example, when you search “What is the capital of India?” and get “New Delhi” as the response, New Delhi and India are linked with an edge representing the relationship “is the capital of.” These graph search queries and related technologies are all powered by knowledge graphs, which became my research focus.
During the internship, I collaborated with a research scholar who guided me through my projects and later supported me during my colloquium phase. This experience was incredibly enriching and provided me with valuable insights into the field of NLP and knowledge graphs. My journey was filled with challenges, but it was also a thrilling adventure that taught me perseverance and the value of seizing opportunities.
What made you choose a research internship over a SWE/SDE intern role?
Most people typically aim for a Software Engineering (SWE) or Software Development (SDE) internship. However, the allure of a research internship abroad truly fascinated me. Like many students at our college, I was the type to experiment and explore different fields. I didn’t know where my true interests lay, so I tried my hand at as many areas as possible.
Another aspect to consider is that when opportunities are scarce, you adapt. If you’re not securing a software development internship, you take whatever you can get — like a research internship — to have something valuable on your resume that you can leverage in interviews. This adaptability and willingness to explore different avenues are crucial. So, even if you don’t land a software development role, a research internship can be an excellent way to gain experience and build your resume.
What would your recommendation be for the juniors? What’s better: a SDE/SWE Internship or a Research Internship? Or does it simply just depend on the person?
If I were to guide a first or second-year student, I’d consider the popular domains people usually pursue. The majority dive into Data Structures and Algorithms (DSA) and development, with data science being the second most popular choice. The research domain, however, is the least pursued, as it largely depends on the number of available openings. Everything hinges on the demand for specific skills. Even if you’re highly skilled in a particular area, if there’s no demand, your growth opportunities will be limited.
If you have a specific interest, that’s fantastic! But if you’re still exploring, I would definitely recommend focusing on DSA along with some development. When you’re starting out, development internships are generally easier to secure compared to research internships, which often have a high bar, typically requiring a 9+ CGPA. Internships are essential stepping stones towards landing your final job. Gaining practical experience and tangible achievements during internships is crucial for building a robust resume. Aim for internships that allow you to develop and showcase your skills effectively. A duration of two months can be sufficient to gain valuable insights and make meaningful contributions.
Would you value the presence of certain NLP-oriented projects on the CV as compared to normal projects when one’s applying for research internships?
Sure, as I mentioned, the requirements of the company you’re applying to, as well as those of the specific project listed on the application website, are really important. Your skills should match these requirements, and you can demonstrate this with relevant projects. While it might not be feasible to create a customized CV for every role you’re applying for, you should still emphasize the things that are relevant to the specific role. It’s always best to have relevant projects, so do as much as you can to showcase your skills.
Sub-question: If a person is interested in machine learning or data science, what recommendations do you have for building projects in this domain?
The learning curve in machine learning and data science is quite steep. One starts with the basics and goes into great depth because the industry demands extensive knowledge in this field. As a result, very few students (in single digits) pursue this, often off-campus. Most on-campus roles are for software development rather than data science. My interest began after attending a session by a senior, Haritha Nair, and reading the book “Elements of Statistical Learning.” This highly recommended book is the Bible of Machine Learning and helps understand data science and even high-frequency trading. I remember borrowing it from the institute library. Later, you can decide which area to focus on, such as deep learning or Natural Language Processing (NLP). Why did I choose NLP? Our institute’s professors are not well-versed in NLP, so they won’t be very behind you during your BTP or MTP. So, it can sometimes be advantageous to explore areas outside of their expertise.
Regarding NLP, it’s quite a niche field. What interested you in it initially? Were you interested in NLP before the research internship or was it just because of the research internship?
Yeah, it’s a pretty specialised field; Natural Language Processing (NLP) is the third layer in the data science field, following machine learning and deep learning. I specialised in knowledge graphs, which are even more niche. During my research internship, I focused on knowledge graph embedding, which involves predicting missing information in incomplete graphs. I didn’t have a specific interest in NLP at first; my main interest was in research in general. I seized the opportunities that came my way, whether in NLP or machine learning, and that has shaped my future days.
Sub-question: Is there anything else you would like to add about machine learning?
“If you have a genuine interest, pursue it. The field is vast, and you may not see immediate outcomes. If you’re unsure, development might be a safer bet. In my experience and surroundings, I’ve seen more people succeeding in development than in data science. Development is definitely a safer bet than data science. However, if someone is truly interested, I have seen people achieve great success in data science.”
How did your experience as the co-founder of the IIITians Network and as a coordinator at Aurora shape your personality and improve your job prospects?
During my second semester, I noticed a lack of participation in our Aurora event at IIIT. To address this, I co-founded a community with my peers initially named “I am a IIITian,” later renamed to IIITians Network. Our main goal was to increase participation in IIIT events. We created a platform where all IIITs could come together and promote their events to boost participation. Our community gained significant traction, amassing 5,000 to 8,000 followers within a year. This led to improved student engagement and a significant increase in event participation.
In the beginning, three people founded it: Anand from IIIT Kota, me from IIIT Gwalior, and Prashant from IIIT Guwahati. We handed it over to our juniors, primarily from IIIT Kota, who were enthusiastic about the initiative. They created a comprehensive ecosystem and now, IIIT Kota manages the page, but we have students connected from every IIIT.
Sub-question: What strategies did you use to boost the growth, and did your digital marketing courses help?
The specialisation course from the University of Illinois on Coursera was helpful for our digital marketing campaigns. One of our successful strategies involved organising events under our page name, which helped us gain more followers. Creating relatable content for IIIT students and maintaining consistency also contributed to the growth of our page. Additionally, we focused on promoting IIIT colleges and engaging with students from different IIITs. Our community experienced both highs and lows, but during my time, it reached its peak. The success of our community largely depended on the amount of time we could devote to it.
How do you approach solving complex problems on LeetCode? Can you describe your approach for tackling new and unfamiliar problems?
I’ve solved approximately 750+ problems on LeetCode. My advice is to have a friend join you on the journey. Don’t do it alone because it’s a long process, and you might lose motivation. I had a close friend named Shashwat Anand, who currently works at Nutanix. We started this journey a year before placements, found a DSA sheet, and solved questions together. We fixed a time to discuss our approaches and explain them to each other, which ultimately helped us boost our performance during interviews. Initially, you might struggle with even simple problems, but with practice, you get better. If you are stuck, apply a timer, for example, to solve the problem in 20 or 30 minutes. If you can’t solve it, look at the solution and return to it a few weeks later. It’s a long journey of grinding Leetcode problems; eventually, your hands will automatically move to write code. If you want to ace interviews of hard-level difficulties, like CodeNation and Uber, etc., then you must do competitive programming on Codeforces. However, if you want to ace a decent-level interview on campus, doing 500+ DSA problems is more than enough.
Sub-question: Any particular example of a challenging question you’ve recently solved
Let me tell you the beauty of DSA through this problem. So you can see that is an easy problem, right?
It’s a simple two-sum problem based on a binary search tree. Everyone can solve this problem if they know the two-sum problem. It’s a basic question. What makes this question different or what the interviewer expects from you is the space optimisation that you can do. So, everyone can do space optimisation up to O(N). However, in this particular question, you can use the concept of BST iterator. So, with that help, you can optimise it up to O(height of this tree), which is a big space optimisation. That was a very big eye-opening learning for me, and despite being an easy question, if someone had just solved it and moved on to the next question, he would not have known the hidden intricacies of this beautiful question. My general advice is that just don’t solve the question for the sake of solving it. Try to learn patterns from it, which you can use in other questions. So, that’s the level of depth you should do while preparing for your coding rounds.
I can share another resource with you. I maintained this GitHub repository while preparing for DSA interview rounds. It includes the questions I felt were important, along with any relevant sources linked with information associated with the question.
Additionally, while DSA questions are not straightforward, one knows how to prepare for them. Other than that, how would you prep for system design and database scaling questions?
When answering system design-specific questions, it’s important to remember that there are two main aspects to consider: low-level design and high-level design. The high-level design covers fundamental concepts such as caching and partitioning, while the low-level design involves creating design patterns for specific scenarios, like designing a parking lot, a ride-sharing app like Uber, or a dating app. So, how would you design? What are the classes you would write?
If you don’t have time, you need to learn one design pattern and apply it to all of the design patterns. A very good resource is this article about Uber’s System Design. I used it to prepare for my interviews at Meesho and ConcertAI. It’s important to understand that during interviews, the interviewer doesn’t expect you to know everything about system design, especially for an SDE-1 level position, but he should have an impression that you know things. If you’re given to design a system, you should be able to outline the major steps. Some resources on YouTube, like the Gaurav Sen System Design playlist(I have personally studied from here), Concept & Coding channel and System Design Primer are a few famous ones for studying system design.
Again, you should always know the basics, like scaling, traffic estimation, database design, schema design, partitioning, and operating system concepts like caching and scheduling. You can always say you don’t know anything about that topic, and the interviewer will skip that question, which is fine. He’ll understand you’re not well-versed in the particular domain and ask you another topic question, which is always better than wasting your and the interviewer’s time. Also, I would say even if the interviewer is not asking you about system design, try including these system design concepts while answering any question because then he will feel that you are more knowledgeable as you are also considering other aspects of your solution and how it will actually be implemented.
For freshers applying to interns/jobs, projects play a big role in making a good resume. How can we make good projects or which projects will benefit us in job applications?
The why of a project is very important, and the reason behind your project is crucial.
“The backstory of the project is very important. Why did you make that project?”
During the lockdown, we participated in a hackathon and created a platform for booking maids on an hourly or monthly basis. We made our project unique by addressing a specific problem and demonstrating thoughtful consideration. It’s important to clearly communicate the purpose of your project, particularly in interviews. When explaining your project, be ready to defend its concept and implementation. While technically impressive projects are valuable, using the STAR (situation — task — action — result) approach can effectively showcase any project. Your project doesn’t have to be technically complex to be impressive; those that solve real-world problems often have the most impact in interviews.
When you’re starting out, it’s natural to want to build up your resume. In such cases, including a maximum of one “normie” project is perfectly fine. However, if you choose to include one, personalise it by adding your unique spin and a backstory that makes the project truly yours. On the other hand, if you’re aiming for a more competitive position, it’s crucial to showcase substantial projects that can impress the interviewer. Having impactful projects under your belt will significantly strengthen your candidacy.
That will be all be from my side. Thanks a lot for this great session guys!
Interviewed by Nilanjan Mitra, Arihant Yadav, Monisha Badugu and Akshita Sure
Co-ordinated by Shreyansh Pagariya