Summary
Applied for SDE-1 position at Cloudsek. Interview process included three rounds with a mix of coding, system design, and Python concepts. Despite thorough preparation, the candidate was rejected.
Full Experience
Interviewed for the SDE-1 Data Acquisition role at Cloudsek. With 2 years of experience, I went through three rounds of interviews. In the first round, I was asked to rate my Python and SQL skills, followed by a coding question on Roman to Integer. I also discussed Python concepts like *args, **kwargs, decorators, and SQL topics such as query optimization, indexes, and execution flow. In the second round, I tackled two Python problems: extracting patterns between URLs and converting unstructured data into a structured format. The third round focused on system design, including crawling a website and managing concurrent requests. Despite the challenges, I was rejected.
Interview Questions (4)
Given two URLs, extract the common base URL. For example, from the URLs http://www.openrce.org/forums/topics/22/12/11 and http://www.openrce.org/forums/topics/22/13/11, the expected output is http://www.openrce.org/forums/topics/22/.
Summary
I had a rather chaotic and unexpected SDE-1 interview experience with CloudSEK, where I was primarily asked irrelevant and advanced questions by a Security Engineer, despite applying for a fresher role. This misalignment, coupled with poor interviewer conduct, ultimately led to my rejection.
Full Experience
Introduction
I recently interviewed with CloudSEK for a Software Engineer role targeting freshers (0+ years of experience), as I'm a 2023 graduate currently working as an SDE - Infrastructure. After a phone screening and a successful first technical round with an SDE-2, things took a turn.
Technical Round 2 - The Chaos Begins
This round was supposed to focus on my work experience, DSA, and core CS concepts, but to my surprise, the interviewer was a Security Engineer. He joined the meeting 15 minutes late and didn't even ask for an introduction, which set an odd tone.
These are some of the questions he asked, in addition to other irrelevant ones:
Q: "What do you know about APIs, any practical experience?"
I explained that while I hadn't directly implemented APIs, I understood the concepts well. Without acknowledging my response, he immediately asked me to open a code editor and posed this problem:
Q: "You are given a list of URLs. You need to make requests to these URLs, retrieve the metadata, and store it in a JSON file. Also, how can you make the process faster?"
I was baffled, as this felt more like a use-case-specific problem than a typical DSA question. I politely offered to discuss the approach and write pseudocode. His response was a humiliating, "But you said you know the basics of APIs." He quickly diverted to multithreading, concurrency, and asynchronous I/O, topics I hadn't worked on, and wanted me to code instances of async I/O.
Q: "Let’s say you have 2 million records, and the read is slow. What would you do to improve it?"
I suggested implementing indexing on the relevant column. Instead of acknowledging, he pushed further:
Q: "Let’s say you have two indexed columns, A and B, and a compound index on A+B. From where would the fetching be faster?"
I had never heard the term 'compound indexing' before, but I answered his questions about indexing confidently.
Q: "Where exactly is the index created? Could you show diagrammatically where an index resides in a DB?"
Fortunately, I was able to answer these well. But then came another unexpected turn:
Q: "What do you know about GO? Talk to me about the low level working of GO"?
I honestly stated I hadn't worked with GO, yet he proceeded to give me a GO-related problem. I did my best to discuss it by relating concepts to Python and C++.
Next, an irrelevant question:
Q: "You have different sharded machines (machine A, B, C, etc.) with sharded DBs, and you're unable to retrieve data from machine B. What would you do to ensure data is retrievable from machine B?"
I explained my troubleshooting approach, but again, his reaction was neutral. The interview ended with a random question about Kubernetes and no chance for me to ask questions. He simply said, "HR will reach out to you."
Conclusion
The interview lasted 90 minutes. I was constantly bombarded with questions irrelevant to the role and my experience, often taunted with "What have you worked on then?" My resume was largely ignored. Apart from brief discussions on Kubernetes, Docker, and Networking, the conversation felt completely off-track, more suited for a senior role. I later learned from HR that I didn't pass, which she found surprising. Despite her assurance of updates, I never heard back, suggesting they might have realized the interview was flawed but didn't want to admit it.
Interview Questions (7)
What do you know about APIs, any practical experience?
You are given a list of URLs. You need to make requests to these URLs, retrieve the metadata, and store it in a JSON file. Also, how can you make the process faster?
Let’s say you have 2 million records, and the read is slow. What would you do to improve it?
Let’s say you have two indexed columns, A and B, and a compound index on A+B. From where would the fetching be faster?
Where exactly is the index created? Could you show diagrammatically where an index resides in a DB?
What do you know about GO? Talk to me about the low level working of GO?
You have different sharded machines (machine A, B, C, etc.) with sharded DBs, and you're unable to retrieve data from machine B. What would you do to ensure data is retrievable from machine B?
Summary
I interviewed for an SDE Intern Frontend role at Cloudsek in Bangalore and was unfortunately rejected in the second technical round. My performance was impacted by difficulties in implementing a fetch retry function and an undo-redo feature in React.
Full Experience
I applied for the SDE Intern Frontend role at Cloudsek through LinkedIn and, after a couple of weeks, received a call from HR for resume shortlisting. I am a fresher from a Tier-3 college with about 6 months of prior internship experience. The offer was for a 6-month internship with a PPO opportunity, targeting a 20L CTC for the full-time role.
Round-1: Resume Shortlisting
This was the initial screening stage after my LinkedIn application, leading to an HR contact.Round-2: Technical Round-I
This round was conducted by an SDE-2 with 4 years of experience. We began with an in-depth discussion about my resume, specifically focusing on the skills and previous experiences I had listed. Following this, the interviewer delved into JavaScript fundamentals, covering topics like `var`, `let`, `const`, closures, hoisting, the event loop, and Promises, asking for basic differences and use cases. I was also given several output-based questions related to advanced hoisting scenarios, closures, the event loop, `setTimeout`, and scenarios involving multiple invocations of functions from different instances. A significant part of this round included explaining the differences between Debouncing and Throttling, and then implementing them from scratch. I was also asked to implement `map` and `filter` using `reduce`, discuss and implement Currying and Infinite Currying, and provide a polyfill for `reduce`. I felt confident about my performance in this round.Round-3: Technical Round-II
This round was with an Engineering Manager who had 12 years of experience. The discussion again started with my resume, but the interviewer was very meticulous. He would pick up on specific terms I used and immediately pose detailed questions on them. We discussed the differences between React and Next.js, particularly their architectural distinctions. When I mentioned serverless functions in Next.js, he focused on that topic for a while. Questions then moved to React Query, how its caching mechanisms operate, and what kind of data structures are used internally. I was also asked about the differences between various Promise methods and then tasked with writing a polyfill for `Promise.race`. Another coding challenge was to implement a custom function to retry a fetch call 'n' times using Promises. Finally, I was asked to code an undo-redo functionality in a React application, involving an input field and two buttons to control the state. I faced significant challenges with the fetch retry function and got quite stuck on the undo-redo implementation.Round-4: HR Round
Unfortunately, I did not make it to the HR round.Verdict: Rejected
I was rejected after the Technical Round-II. My main difficulties were with coding the fetch retry function and implementing the undo-redo functionality.Interview Questions (7)
Explain the conceptual differences between debouncing and throttling, and then proceed to implement both functionalities from scratch using JavaScript.
Implement custom versions of the Array.prototype.map and Array.prototype.filter methods by leveraging the Array.prototype.reduce method.
Explain the concept of currying in JavaScript and provide implementations for both standard currying and infinite currying functions.
Write a polyfill for the Array.prototype.reduce method, ensuring it behaves consistently with the native implementation across various use cases.
Discuss the differences and use cases of various Promise methods (e.g., Promise.all, Promise.race, Promise.any, Promise.allSettled) and then write a polyfill for Promise.race.
Implement a custom JavaScript function that retries a fetch API call a specified number of 'n' times. The function should utilize Promises to manage asynchronous retries and handle potential failures.
Code an undo-redo functionality within a React component. This feature should include an input field where users can type, along with separate 'Undo' and 'Redo' buttons to manage the history of changes to the input's state.