
Imaging IQ Interview Experience
Imaging IQ Interview Experience for Experienced Fullstack Developer, Jan 2026
Fullstack Developer
Experienced
1 Month
No criteria, (Salary Package - 13 LPA)
Computer Science Engineering
2 Rounds
Application Experience
I applied for this role through LinkedIn, and three days later, I received a call informing me that my profile had been shortlisted for the interview.
Preparation
Topics Prepared: Data Structure, JavaScript, NodeJS, MongoDB, System Design
Preparation Tips
Tip 1: Practice problem-solving regularly and learn to approach questions step by step, especially in coding and system design scenarios. Tip 2: Strengthen core fundamentals in JavaScript and React, and focus on explaining concepts clearly using real project examples.
Resume Tips
Tip 1: Focus on highlighting relevant skills and projects, and clearly mention your role, responsibilities, and impact in each project. Tip 2: Keep the resume concise and well-structured, using bullet points and quantifiable achievements to enhance readability.
Interview Rounds (2)
Detailed breakdown of each evaluation round, questions asked, and candidate approaches.
Round 1 — Video Call
Timing: The interview was conducted during normal working hours, not late at night. Environment: The environment was calm, professional, and well-organized, making it comfortable to communicate. Other activities: The interview mainly focused on technical discussion and problem-solving, with no additional activities beyond the interview process. Interviewer: The interviewer was professional, polite, and supportive, allowing sufficient time to think and explain answers.
Problems & Questions Asked (2)
Two Sum
Sam want to read exactly ‘TARGET’ number of pages. He has an array ‘BOOK’ containing the number of pages for ‘N’ books. Return YES/NO, if it is possible for him to read any 2 books and he can meet his ‘TARGET’ number of pages. Example: Input: ‘N’ = 5, ‘TARGET’ = 5 ‘BOOK’ = [4, 1, 2, 3, 1] Output: YES Explanation: Sam can buy 4 pages book and 1 page book. Input Format: The first line of the input contains two integers, ‘N’ and ‘TARGET’, representing the number of books and target pages. The next line of each test case contains ‘N’ space-separated integers representing the number of pages. Output format: Return a string YES/NO, if it is possible for sam to read any 2 books and he can meet his ‘TARGET’ number of pages.
First, I sorted the array in ascending order to apply the two-pointer technique efficiently. I initialized two variables (pointers): one at the start of the array (left) and one at the end of the array (right). I calculated the sum of the values at both pointers. If the sum was equal to the target, I returned true. If the sum was smaller than the target, I moved the left pointer to the right to increase the sum. If the sum was greater than the target, I moved the right pointer to the left to decrease the sum. I repeated this process until the pointers crossed. If no matching pair was found, I returned false.
Trapping Rain Water
You have been given a long type array/list 'arr’ of size 'n’ . It represents an elevation map wherein 'arr[i]’ denotes the elevation of the 'ith' bar. Print the total amount of rainwater that can be trapped in these elevations. Note : The width of each bar is the same and is equal to 1. Example: Input: ‘n’ = 6, ‘arr’ = [3, 0, 0, 2, 0, 4]. Output: 10 Explanation: Refer to the image for better comprehension: Note : You don't need to print anything. It has already been taken care of. Just implement the given function. Input format : The first line of each test case contains an integer 'n' representing the size of the array/list. The second line contains 'n' single space-separated integers representing the elevation of the bars. Output Format : Return an integer denoting the amount of water that can be trapped.
First, I understood that the water trapped at any position depends on the maximum height on its left and right sides. I initialized two pointers: one at the start of the array (left) and one at the end (right). I also maintained two variables to track the maximum height seen so far from the left and from the right. I compared the heights at both pointers, as the smaller height determines how much water can be trapped at that position. If the left height was smaller, I moved the left pointer forward and updated the left maximum. If the current height was less than the left maximum, the difference contributed to the trapped water; otherwise, I updated the maximum height. I followed the same logic on the right side when the right height was smaller.
Round 2 — Video Call
The second round focused mainly on in-depth technical discussions. It involved explaining project architecture, system design concepts, and questions related to microservices. The interviewer evaluated my understanding of design decisions, scalability, and the interactions between different components in a real-world application. This round required greater clarity in architectural thinking and communication compared to the first round.
Problems & Questions Asked (3)
System Design
In my project, I needed to manage real-time chat functionality, allowing users to send and receive messages instantly. The main challenge was ensuring low latency, reliable message delivery, and proper synchronization between users. This involved handling real-time connections, broadcasting messages, and maintaining consistency across clients while keeping the system scalable and responsive.
Tip 1: Break the problem into smaller components, such as connection handling, message delivery, and data storage, before designing the solution. Tip 2: Use real-time communication mechanisms like WebSockets or SignalR to ensure instant message exchange. Tip 3: Consider scalability early by planning how messages will be handled when multiple users are online simultaneously. Tip 4: Focus on reliability by addressing edge cases, such as connection drops and message ordering.
System Design
Payment system design involves gateway integration, transaction validation, retry mechanisms, failure handling, and ensuring consistency across services.
Tip 1:Clearly define the payment flow from initiation to confirmation and handle each step as an independent, well-validated process. Tip 2: Design the system to be idempotent to avoid duplicate transactions in case of retries or network failures. Tip 3: Handle failure scenarios gracefully by implementing retries, timeouts, and proper rollback or compensation mechanisms.
Selection Perspective
I was rejected in the second round because I was unable to clearly explain the project architecture and did not meet expectations on some system design questions related to microservices.
Key Preparation Tips
Prepare DSA thoroughly.
Practice aptitude and puzzle-based questions.
Have at least two good projects on your resume.
Be prepared to explain your projects clearly.
Practice coding problems involving Arrays, Binary Search, DP and Recursion.
Prepare common HR questions such as Tell me about yourself and Who is your role model?
More Interview Experiences

Unthinkable
Software Engineer
Unthinkable Interview Experience for Software Engineer

Schrodinger
Backend Developer
Schrodinger Interview Experience for Experienced Backend Developer, Mar 2026

Emergent
SDE - 1