I recently interviewed at Tekion for a Senior Software Engineer position. The complete interview process consisted of four rounds:
I was able to clear the first two rounds but was rejected after the HLD round.
Three coding problems were asked.
1. Maximum Sum of a Unique-Element Subarray
Given a non-empty array of length n containing non-negative integers, find the maximum sum of a contiguous subarray such that no element is repeated within that subarray.
This can be solved using a sliding window, a set or frequency map, and a running sum.
2. Koko Eating Bananas
This was the standard binary search on answer problem.
We need to find the minimum eating speed such that Koko can finish all the bananas within the given number of hours.
3. Number of Islands
Given an m x n matrix containing land and water, count the number of connected islands.
This can be solved using DFS or BFS by marking every connected land cell as visited.
I was able to solve all three questions and qualified for the next round.
The interviewer asked me to design a logging framework similar to Log4J.
This was a completely new LLD problem for me, but I tried to structure the solution around the following concepts:
Different log levels such as DEBUG, INFO, WARN, and ERROR
Logger abstraction
Appenders such as console and file appenders
Log formatting
Configurable logger behavior
Extensibility for adding new appenders and formatters
Thread-safety and asynchronous logging considerations
I used interfaces and composition to keep the design extensible. The interviewer appeared satisfied with the design, and I cleared this round.
The HLD problem was:
Design a car service-center booking system where customers can search for nearby service centers and book a slot for vehicle servicing.
The system needed to support:
Searching for nearby service centers
Viewing available service slots
Booking a slot
Maintaining consistency during concurrent bookings
Keeping the system highly available
I proposed a design with separate search, availability, and booking components, along with a transactional database for slot booking.
However, the interviewer did not seem satisfied with my overall approach, and I was rejected after this round.
Rejected in the third round.