Summary
I interviewed for an SDE Internship at MyKaarma, participating in an online assessment followed by three rigorous technical rounds covering DSA, puzzles, projects, and CS fundamentals. I successfully navigated these challenges and received an offer.
Full Experience
I started my interview journey with MyKaarma for an SDE Internship with an Online Assessment.
Online Assessment: Three Sections
- Coding: I faced 3 questions (1 easy-medium, 2 medium-hard).
- Aptitude: There were 10 questions.
- CS Fundamentals, OOPS: This section also had 10 questions.
After the online assessment, 16 students were shortlisted, and 6 were placed on the waitlist. I was among the shortlisted candidates, which led to the offline interview rounds. I had 3 technical rounds, while some other candidates had a different number of rounds.
Round 1: (Duration: 1 hour and 15 minutes)
This round began with the interviewer asking me to introduce myself, which I did with my pre-prepared answer. They then immediately jumped into DSA questions. I was presented with three DSA questions, all of medium difficulty. I successfully solved all three and explained my approaches to the interviewer. Following this, I was tasked with transcribing pseudo-code onto paper and conducting test-case-based dry runs, and the interviewer also inquired about my strategies for handling edge cases.
After the DSA segment, the interviewer gave me a puzzle to solve. Although I required a hint, I ultimately managed to crack it.
The discussion then shifted to the projects listed on my resume. The interviewer requested a brief overview of each project and posed several standard questions, such as why I chose specific features and tech stacks. One of my projects involved working with APIs, which prompted a query about my understanding of APIs.
Towards the end, I had the opportunity to ask the interviewer questions, and I inquired about the typical daily routine for a MyKaarma employee.
Round 2: (Duration: 1 hour and 15 minutes)
The second round commenced with the interviewers introducing themselves, followed by my introduction. Next, they presented two puzzles for me to tackle, both of which I successfully solved.
Following the puzzles, they posed four Data Structures and Algorithms (DSA) questions. This phase emphasized quickly understanding the problem, sharing my initial thoughts, and then writing the code. Notably, I was required to write the code on paper with a focus on proper syntax, rather than pseudo-code. I successfully solved three of these questions and explained the approach for the BST question using an inorder traversal method. However, the interviewers prompted me to discuss Morris traversal, though they did not ask for a code implementation. Unfortunately, I don’t recall the specifics of the fourth question.
Similar to the previous round, we then delved into a discussion about my first two projects, focusing on React features. They asked me to explain the concept of APIs as if we were 9th-grade students, and I used the analogy of a restaurant waiter to illustrate the idea.
The interviewers also inquired about the distinctions between a “set” and an “unordered_set,” along with the underlying principles of these data structures.
To conclude, I had the opportunity to ask my own questions. I sought clarification on a topic mentioned in an offline presentation.
Round 3: (Duration: 1 hour)
Once again, the interview began with introductions. Following this, I was presented with a puzzle about determining the number of solutions for an equation, which I attempted to discern a pattern for and successfully solved.
Subsequently, the interviewer inquired about my familiarity with sorting algorithms. I listed several algorithms I was acquainted with and was asked to explain and write the code for merge sort.
Consistent with previous rounds, I discussed my projects and their details. Furthermore, I was asked to describe the JavaScript code I used to fetch data from an API in one of my projects. While I couldn’t write the code down, I provided a verbal explanation of how the process worked.
I mentioned that my favorite data structure was graphs, which led to a series of questions about graph traversal algorithms. I explained Breadth-First Search (BFS) and Depth-First Search (DFS) to the interviewer.
Following this, I was challenged to explain the concept of backtracking without the aid of written notes. Subsequently, I was asked to write code to determine whether a given string is a palindrome.
Given my background in the physics department, the interviewer delved into some physics-related questions, asking me to define fusion and fission. Additionally, I shared my academic status, including details about my undergraduate program.
The interviewer then probed my knowledge of software engineering concepts by asking for the definition of encapsulation and requesting an example class illustrating this concept. I was able to provide satisfactory responses to both queries.
To conclude, the interviewer inquired if I had any questions, and I requested feedback on my interview performance and ways to enhance my skills.
Verdict: Selected. I received an offer along with four other students.
Interview Questions (16)
A shopkeeper sold goods worth Rs. 200 to a lady. The lady gave him a Rs. 1000 note. The shopkeeper didn't have change, so he went to a neighbor, got change for Rs. 1000, gave Rs. 800 back to the lady, and kept Rs. 200 for himself. Later, the neighbor discovered the Rs. 1000 note was fake and demanded his Rs. 1000 back. The shopkeeper returned Rs. 1000 to the neighbor. What is the total loss of the shopkeeper?
A man meets a friend. 'I have three daughters,' says the friend. 'The product of their ages is 36. The sum of their ages is the same as the number of my house.' The man rushes to the door, examines the number, and returns. 'I need more information,' he states. 'Oh,' says the friend, 'my oldest daughter has red hair.' What are the ages of the three daughters?
Given an integer array nums, return an array answer such that answer[i] is equal to the product of all the elements of nums except nums[i]. The product of any prefix or suffix of nums is guaranteed to fit in a 32-bit integer. You must write an algorithm that runs in O(n) time without using the division operator.
Determine the number of non-negative integer solutions for the equation x + y + z = n, where x, y, z, and n are integers.
Explain the Merge Sort algorithm and write its code, detailing its divide-and-conquer approach.
Describe the JavaScript code and process used to fetch data from an API, including asynchronous operations and handling responses.
Explain the Breadth-First Search (BFS) and Depth-First Search (DFS) graph traversal algorithms, including their principles, use cases, and differences.
Explain the concept of backtracking, a general algorithmic technique for solving computational problems by trying to build a solution incrementally, one piece at a time, removing those solutions that fail to satisfy the constraints of the problem at any point of time. This explanation should be given without the aid of written notes.
Write code to determine whether a given string is a palindrome (reads the same forwards and backward, ignoring case and non-alphanumeric characters usually, or in its simplest form, character by character).
Define encapsulation as an object-oriented programming concept and provide an example class illustrating how it bundles data with the methods that operate on that data, and restricts direct access to some of an object's components.
Preparation Tips
To prepare for interviews like this, I recommend a few key strategies. First, maintain a positive attitude and high energy level throughout the interview process. Second, craft a strong and engaging 'Tell me about yourself' introduction to make a good first impression. Third, be thorough with the details on your resume; only include projects you are confident about and that accurately represent your skills and experience. Fourth, stay calm and composed during the interview; if you’re stuck on a problem, taking a moment to drink water can help. Fifth, prepare for puzzles by solving problems on platforms like GeeksforGeeks. Sixth, pay close attention to code quality, use clear variable names, and aim for error-free code. Finally, when faced with a problem you’ve seen before, don’t jump to the solution immediately; demonstrate your problem-solving skills and thought processes to the interviewer.