Adobe Computer Scientist Interview Experience | ALL Rounds

Round 1: DSA
I was asked two questions and I was supposed to code them on an ide.
Question 1 : https://leetcode.com/problems/minimum-number-of-arrows-to-burst-balloons/description/
Question 2: https://leetcode.com/problems/rotting-oranges/

I was pretty close on my logic about the interval problem, the first one but the interviewer kept giving hints, given that I was seeing this question for the first time it was taking a little time. I asked to move to the next problem which I was able to solve quickly and explain the logic and run the test cases that were asked.

Then a lot of questions were asked about databases

  1. SQL Vs No SQL
  2. Indexing. Why is it done? Is it needed for read heavy systems or write heavy?
  3. Shadring and Partitioning. Why is sharding needed.
  4. How is concurrency handled. I mentioned locks on DB rows.
  5. More question about how is indexing done and what is the data structure that helps it?
  6. If there are two databases how will you connect your application to both of them.

I was able to answer most questions regarding, sharding and indexing.

Round 2: Technical Round (A mix of DSA, LLD, HLD)

  1. The first 10 min or so were spent in understanding my project, its use case.
  2. I was given two DSA easy questions
    • Majority Element.
    • Sort 0, 1 and 2.
    • I explained the working of the code. He was interested in all the details, like instead of using variables to store 1,2, and 0, what other data structue would be more beneficial. There was a counter question on the majority element question as well. I wanted to solve it using sorting and take the middle element, but I had to write the sorting logic too. Then I shared the approach to calculate frequency using an O(N) storage. I coded the second approach.
  3. Next couple of questions were about the tech that I has used. Some questions about Kafka, Why is it used?

Round 3: Design / HM Round
This was an HLD round.

  1. Like always started with my intro and my most recent project. I briefly explained the problem statement and my role in this project.
  2. I was given an HLD question for inventory menagement of an ecommerce website. The requirements were focused on the admin side of inventory.
    • Adding new products,
    • Remove products
    • Searching products
  3. I approach it in the following ways
    • Write down the functional Req
    • Non fucntional Red
    • Assumptions, where I kept on adding it whenever I took an assumtion throughout the interview.
    • Moved to the database, Mentioned the Entities and the attributes of each of them. How do they interact with each other.
    • I Decided to use a SQL database, due to the stratctured nature of the DB and the the realtionships that existed between the entities.
    • Then I was asked to write the apis for adding, updating, deleting and searching the products.
    • Next couple of questions were around scaling, which I answered, using caching, replicas and sharding.
    • I was asked a counter question on which key would be used to shared. I went with a simple product id approach.
    • I was asked how to handle the hot keys situations, to which I mentioned , balancing of shards.

Overall, my expereince of interviewing with Aodbe was really good.
Hope it helps!

Comments (12)