Summary
I interviewed for an SDE-1 role at Freecharge, which consisted of three rounds focusing on Data Structures & Algorithms and Low-Level Design. Unfortunately, I was rejected after the LLD round.
Full Experience
I recently interviewed for a Software Development Engineer-1 position at Freecharge. Although I initially sought an SDE-2 role, only SDE-1 opportunities were available at the time. The interview process comprised three distinct rounds. The first two rounds were heavily focused on Data Structures and Algorithms, with questions drawn directly from LeetCode. The third and final round was a Low-Level Design interview, where I was tasked with designing a chess game, emphasizing entities, functionalities, relationships, and design patterns. Unfortunately, I was rejected after this LLD round.
Interview Questions (3)
The third round was a Low-Level Design discussion where I had to design a chess game. The interviewer focused on my ability to identify entities, define their functionalities, establish relationships between them, and apply appropriate design patterns. I had to describe how I would structure the classes for pieces, board, player, game rules, etc.
Preparation Tips
My preparation for the DSA rounds relied on standard LeetCode practice. However, I learned firsthand that Low-Level Design requires extensive hands-on practice. After being rejected in the LLD round, I dedicated time to learning and implementing the chess game design.
Summary
I successfully cleared the first online interview round for a Senior SDE position at Freecharge, where I tackled two standard LeetCode problems and discussed various technical theory topics.
Full Experience
I recently completed the initial online interview round for a Senior SDE role at Freecharge. The round primarily focused on problem-solving, where I was presented with two well-known LeetCode challenges: LRU Cache (LeetCode 146) and Sliding Window Maximum (LeetCode 239). Additionally, the interviewer delved into my theoretical knowledge, asking questions related to AWS, Java, multithreading, and Spring Boot.
Interview Questions (2)
Design and implement a data structure for a Least Recently Used (LRU) cache. It should support the following operations: get and put. get(key): Get the value (will always be positive) of the key if the key exists in the cache, otherwise return -1. put(key, value): Set or insert the value if the key is not already present. When the cache reaches its capacity, it should invalidate the least recently used item before inserting a new item. The operations should run in O(1) average time complexity.
You are given an array of integers nums, there is a sliding window of size k which is moving from the very left of the array to the very right. You can only see the k numbers in the window. Each time the sliding window moves right by one position. Return the max sliding window. All operations should be in O(N) time complexity.