Open In App

Unbxd Interview Experience for Software Engineer (On-Campus) 2023

This article is about my interview experience at a company called Unbxd. Check out the latest technologies used by Unbxd here: https://unbxd.com/

So Unbxd came to my campus during the month of August 2022 for software engineer, data analyst, and custom service manager roles. The placement process for the software engineer role at Unbxd is as follows:



Online MCQ test: This round consisted of around 30 MCQs with topics covering data structures and algorithms, machine learning (basic), and many aptitude questions. The round lasted for 60 minutes.

I would recommend that everyone appearing for placement has solved many aptitude questions. These are the most important criteria to move to the next round.



Online Coding Test: Based on the performance of the previous test, a certain number of students will go to the next round. I was able to move mostly because I was able to solve aptitude questions correctly. The next round is a coding test. It consisted of 3 programming questions(1 easy, 1 medium, and 1 hard question) for a time limit of 75 minutes. Here is a description of the questions and an approach to solving them.

Easy question: Give a list of logs where each log consists of 151 characters consisting of the start date, start time, end date, end time, and some more information, each separated by a colon. Given a start date, start time, end date, and end time, you need to find the number of logs that are between the start and end date and time.

An Approach to the Solution

Medium question: You have an electric vehicle. There are n cities where each city has an electric charging station. You are given a list of pairs of cities with the distance between them. 1 unit of charge is required to travel 1 unit of distance. Suppose you live in City 1 and want to go to City n. Find the minimum charge you require for your vehicle at each city you travel through to reach city n. It is also given that you always have a path from city 1 to city n.

Cities with distance

Based on the figure, we see the distance between cities 1 to 2 is 3,2 to 3 is 3,1 to 3 is 5

So we need to find the minimum amount of charge that needs to be done at each city for moving from city 1 to city 3. If we move from city 1 to city 3 directly, we would need a charge of 5 units, but if we go from city 1 to 2 and then 2 to 3, the minimum charge is 3 units of charge. Hence, the answer is 3.

An Approach to the Solution: It is the same as finding the minimum distance between two cities(Dijkstra Algorithm) but with a slight modification. In Dijkstra, we store the distance from city 1 to the current city we are travelling to, but for this problem, we just store the distance between the previous city and the current city we are visiting. This is because we want the minimum distance between the previous and current city that we are travelling to, not the entire distance.

Here is the solution in python: 




import heapq
 
 
def minCharge(dist_betweencities, N):
    adj_list_cities = {i: [] for i in range(N+1)}
    for src, dest, dist in dist_betweencities:
        adj_list_cities[src].append([dest, dist])
        adj_list_cities[dest].append([src, dist])
    res = 0
    queue, visit = [(0, 1)], set()
    while queue:
        dist, prev = heapq.heappop(queue)
        visit.add(prev)
        res = max(res, dist)
        if prev == N:
            return res
        else:
            for cur, cur_prev_dist in adj_list_cities[prev]:
                if cur not in visit:
                    heapq.heappush(queue, [cur_prev_dist, cur])
 
 
if __name__ == "__main__":
    n = 3
    arr = [[1, 2, 3], [2, 3, 3], [3, 1, 5]]
    print(minCharge(arr, n))

Hard Question: Implement a least frequently used cache(LFU cache).

The question and solution approach can be seen in the given link: https://www.geeksforgeeks.org/least-frequently-used-lfu-cache-implementation/amp/

I wasn’t able to solve the last question as it requires a good knowledge of linked list and how the lfu is implemented. Due to time constraints, I wasn’t able to come up with a solution.

A few pointers I learned from the test:

3. Interview Round 1 (Technical round ): Based on my performance in the previous round, I was selected for the interview, which was held on the same day as the online coding test. As it was on campus, the interview was offline.

Here are a few questions asked during my interview.

Based on my performance in the interview, he told me I was selected for the next interview.

Interview Round 2 (System Design Round): This round started four hours after the first round due to a lot of interviews going on, and I was the first guy to be interviewed for the first round.

But later, at the end of the day, I got the mail that I had been selected for the software engineer role at Unbxd. Yipee…..

A few pointers learned from the interview.

Lastly, I thank geeks for geeks for helping me share my interview experience with all the students who are trying for placements and internships. All the best to all the readers trying to get placed at a good company.

“Hope for the best, prepare for the worst.”


Article Tags :