My Arcesium SSE Interview Experience
Senior Software EngineerArcesium | Principal Engg | Bangalore | Oct 2024 | Reject
Principal EnggSDE Interview experiences so far
Principal EngineerArcesium | Lead Software Engineer | Hyderabad | May 2024
Lead Software EngineerSummary
I recently interviewed for a Senior Software Engineer position at Arcesium. Despite not clearing the final Hiring Manager round due to a need for more clarity in theoretical concept explanations, I gained valuable insights into their interview process which focused heavily on core CS fundamentals.
Full Experience
My interview journey for the Senior Software Engineer role at Arcesium began with a HackerRank online test, primarily focusing on Data Structures & Algorithms and general problem-solving. This initial screening round set the stage for the subsequent technical discussions.
Round 2: Technical Interview
The second round was a technical interview where I tackled the Koko Eating Bananas problem, which I solved using a binary search approach. Beyond the coding, we had a deep dive into my resume projects, discussing their architecture and my contributions. There was also a significant discussion around Kafka fundamentals and its real-world applications, testing my knowledge of distributed systems concepts.
Round 3: Low Level Design (LLD)
In the LLD round, I was challenged to design an Uber-like system. I approached this by breaking it down into core entities such as User, Driver, Ride, Payment, Location, and Vehicle. A strong emphasis was placed on database normalization and ensuring the system's scalability, which required me to think critically about schema design and architectural considerations.
Round 4: Hiring Manager Round
The final round was with the Hiring Manager, which turned out to be quite theory-heavy. We extensively discussed database indexing, specifically differentiating between Clustered and Non-Clustered Indexes, and I had to illustrate my points with diagrams. Design Patterns also came up, with a focus on the Factory Pattern – I had to explain its purpose, when to use it, and provide sample code. Finally, we delved into SOLID Principles, particularly the Open/Closed Principle, discussing potential failure cases and resolution strategies in the context of the Factory Pattern.
Outcome
Unfortunately, I was rejected after the HM round. The feedback I received indicated that my theoretical concepts needed to be explained with more clarity, depth, and concrete examples.
Interview Questions (5)
The problem involves finding the minimum eating speed 'k' such that Koko can eat all bananas within 'H' hours. This typically requires a binary search approach on the possible speed values.
Design an Uber-like ride-sharing system, focusing on core entities like User, Driver, Ride, Payment, Location, and Vehicle. Emphasis was placed on database normalization and scalability considerations.
Explain the differences between Clustered and Non-Clustered Indexes, including their internal workings and when to use each. Diagrams were expected to illustrate the concepts.
Explain the Factory Pattern, including its purpose, when to apply it, and provide sample code demonstrating its implementation.
Discuss the Open/Closed Principle from SOLID, including its application and potential failure cases, specifically within the context of the Factory Pattern and resolution strategies for these failures.
Preparation Tips
Based on my experience, I would advise future candidates to focus heavily on core Computer Science fundamentals, not just coding. For Low-Level Design, a robust understanding of database design and normalization is crucial. It's essential to be prepared to articulate theoretical concepts with diagrams, write concise code snippets, and explain design trade-offs, especially in theory-heavy rounds. Strong foundations in DBMS, Design Patterns, and SOLID principles are as important as pure problem-solving skills for Arcesium.
Summary
My interview experience with Arcesium for a Principal Engineer role in Bangalore concluded with a rejection, which I received via a generic HR email after completing all technical rounds.
Full Experience
Overall, my experience with Arcesium was positive, but I was disappointed not to receive specific feedback regarding the rejection. It felt akin to a company withdrawing at the last moment without sharing a reason.
The process began with an Initial Phone Round with a Recruiter, where we discussed the job description and the overall interview process in detail.
Next was the Coding Round. I was tasked with implementing a blocking queue that included get(), put(), and multiput() methods. The key challenge was to correctly use locks and conditions to handle concurrency effectively.
Following that, I had a System Design Round where I needed to design a distributed job scheduler and executor, covering aspects of architecture, scalability, and reliability.
The final technical round was a Database Design Round. Here, I explored the use of both SQL and NoSQL databases before designing a comprehensive data model for an e-commerce platform, with a particular focus on the payment service's requirements and considerations.
After successfully completing all these technical rounds, I received a generic rejection email from HR. From my perspective, it seemed they might have been looking for specific domain knowledge that perhaps I didn't demonstrate sufficiently for the role.
Interview Questions (3)
Implement a blocking queue with get(), put(), and multiput() methods. The solution should leverage locks and conditions to ensure proper handling of concurrency and thread safety.
Design a distributed system that can effectively schedule and execute various jobs. The design should cover aspects such as job submission, task distribution across multiple nodes, fault tolerance mechanisms, and methods for monitoring job status and progress.
Explore the use cases and differences between SQL and NoSQL databases. Based on this understanding, design a detailed data model for an e-commerce platform, with a specific focus on the requirements and architecture of the payment service. Consider tables/collections, relationships, and data consistency for transactions.
Summary
I interviewed for a Principal Engineer position at Arcesium, facing challenging rounds including coding, system design, and database design. Despite my best efforts and the interviewers' positive reactions, I ultimately received a rejection.
Full Experience
My interview journey for the Principal Engineer role at Arcesium in Bangalore, India, involved several intensive rounds. The first was a Coding Round where I was tasked with implementing a blocking queue. Following that, I tackled a System Design round where I had to design a distributed job scheduler capable of handling immediate and scheduled tasks. The final technical round focused on DB Design, covering conceptual questions about databases, SQL, NoSQL, indexing, and locking, along with a practical exercise to design a data model for an E-Commerce website.
I genuinely felt I performed well in all rounds, and the interviewers seemed quite convinced and happy with my answers throughout the process. It was a rigorous experience, but I was confident about my performance.
Interview Questions (3)
Implement a blocking queue with get(), put(), and multiput() methods, utilizing ReentrantLock and Condition for synchronization.
Design a distributed job scheduler that accepts jobs which can be executed immediately or scheduled for a future time.
Design the data model for an E-Commerce website.
Summary
I interviewed for a Lead Software Engineer position at Arcesium in Hyderabad in May 2024. The process included a Hackerrank test, problem-solving, high-level design, database design, and a hiring manager round. Despite my confident performance across all stages, I received a generic rejection email, which was a disappointing conclusion.
Full Experience
My interview journey for the Lead Software Engineer role at Arcesium began with a Hackerrank test. This round involved a single problem: I had to fetch data from a given endpoint, parse the JSON response, and then use the parsed data to answer a set of queries. The very next day, HR contacted me to confirm I had cleared the test and scheduled the first interview round.
The Problem Solving Round was quite quick. The interviewer asked me a basic question about reversing a linked list, and we also briefly discussed my past work experience. Surprisingly, within just five minutes of this round, HR called again to schedule my next round for the following day.
The High-Level Design (HLD) and API Design round involved a detailed discussion about a complex scenario. The challenge was to design a system where data originating from various sources and tenants needed to be standardized into a single format before being stored in a downstream service. The conversation was very engaging, covering different aspects of system architecture and API considerations.
Following this, HR scheduled two more rounds for the same day. The first was a Database Design round. Here, I was tasked with designing the database entities for an inventory management system, similar to DMart. The system had to accommodate diverse conditions like different locations and varying prices. Crucially, it needed to support searches by size, item name, and even highly specific queries like "a Maggie packet containing 4 pieces." I proposed a generic solution utilizing tags, which helped address most of the use cases, even though covering the entire spectrum of requirements within the allotted hour proved challenging.
Finally, I had the Hiring Manager (HM) Round. This was a deep dive into one of my previous projects, where we discussed its architecture, challenges, and my contributions in detail. The discussion felt thorough and productive.
After completing all rounds, I felt quite confident about my performance. However, HR became unresponsive, and I eventually received a generic rejection email. It was truly disappointing not to receive any specific feedback. While I understand the difficulties in providing feedback to every candidate, for those who complete all interview rounds and are eager to learn and improve, specific insights would be incredibly valuable. The lack of communication, especially ignoring calls, definitely created a poor candidate experience.
Interview Questions (4)
The task involved fetching data from a given endpoint, parsing the JSON response, and then using the parsed data to answer a set of queries.
I was asked a basic question about reversing a linked list.
I discussed a high-level design scenario for standardizing data that originates from different sources and tenants into a single format before being persisted in a downstream service. This also included API design considerations for such a system.
I was tasked with designing the database entities for an inventory management system, akin to DMart. The design needed to account for various conditions like different locations and prices. Key search functionalities required were by size, item name, and specific product details, such as 'a Maggie packet containing 4 pieces'.