Software Engineer || PR1 || Cimpress
Anonymous User
1571

My Interview Experience at Cimpress.

Background:

  • College: NIT-B
  • Current Company/Role: Infosys/SP L1
  • Years of Experience: 3.1 (2.3 at Infosys) got 3% hike in 2023 Dec, no appraisal/promitions till now.
  • On notice period without any offer.
  • Current CTC: 10 LPA (including 1.5 LPA variable pay)
  • Expected CTC: 15 LPA

I applied for a role at Cimpress and initially requested 15 LPA. The recruiter stated they could offer a 30-35% hike on my current CTC or I could proceed with a DSA round. I opted for the DSA round.

Round 1: DSA (Two Interviewers)

  • Problem 1: Add two numbers represented as linked lists. I solved this quickly.
  • Problem 2: Given an array of 0s and 1s, find the minimum number of iterations to convert all 0s to 1s. A 0 can be replaced with a 1 in an iteration if it has a 1 on either adjacent side (without considering changes in the current iteration). I discussed a solution covering all edge cases, which the interviewers were satisfied with.
  • The interviewers also asked questions about my resume and current projects.

Within 10 minutes, the HR contacted me with positive feedback and scheduled a design round for four days later. Surprisingly, she explicitly mentioned the design question would be a Low-Level Design (LLD) of a shopping cart. I found this unusual but prepared for various LLD problems nonetheless.

Round 2: Design (Two Interviewers)

  • The interviewers presented a scenario similar to OYO.
  • High-Level Design (HLD): I was asked to provide an HLD & LLD for the application, including the screens, their interactions with the backend, and the backend's HLD.
    • While drawing the high-level components, the interviewers interrupted and asked me to focus on entities instead.
    • I jumpeed on LLD then.
    • I began defining attributes for each class, planning to refine them as I progressed.
    • I generalized "User" into "Customer" and "Receptionist" classes. The interviewers questioned this, suggesting a single "User" class with a "userType" attribute. We discussed the trade-offs of both approaches.
    • They then shifted the focus to the required database tables.
    • Given a scenario, they asked about the fields needed to store a "Hotel," including "location." They then asked about the appropriate database type for storing location data. I explained that while longitude and latitude could be stored in a NoSQL database for better location-based queries, I would consider a simpler approach for the interview context.
    • This led to a discussion about database technologies, focusing on read/write operations, latency, the CAP theorem, and data storage strategies like columnar storage for ETL. This discussion consumed a significant amount of time.
    • They then asked me to write a function to list available hotels in a specific location.
    • Due to time constraints, they presented another scenario: given existing bookings for a single room, determine if a new booking is possible based on dates. I provided a solution involving sorting check-in dates and checking for overlaps.
    • At the end, I asked for feedback. The interviewers stated that HR would share it.

I felt the design round was rushed and didn't go as well as I had hoped. I felt I was interrupted and redirected frequently, preventing me from fully articulating my design.

I attempted to contact HR for feedback regarding the explicit mention of the shopping cart LLD, but received no response. I felt this practice was unprofessional.

An hour later, I received a rejection email without any specific feedback from the interviewers. I emailed HR requesting feedback but received no reply.

Key Learnings for Design Rounds:

  • Time management is crucial.
  • Adopting a top-down approach and maintaining a consistent flow, even when interrupted, is important.
  • It's questionable whether 1.5 hours is sufficient to thoroughly discuss HLD, LLD, and all screens for a complex application like OYO, especially given the interview was scheduled for only 1 hour.
  • Consistent practice of various design problems, from high-level to detailed implementation and technology choices, is essential.

This revised version is more concise, professional, and focuses on the facts of the interview experience. It removes the emotional commentary while still highlighting the key issues and learnings.

Keep striving and anticipate the best!

Comments (2)