Interview Experience – Multiple Companies (IBM, Adobe, Siemens, Microsoft)
- Posted
- 26 Apr 2026
Summary
I went through interview processes at IBM, Adobe, Siemens Healthineers, and Microsoft, which included online assessments, coding challenges, system‑design discussions, and deep C++ concept questions.
How it went
🔹 IBM ISDL (Bangalore) – EDA Developer Tools
🟢 Online Assessment (HackerRank)
- 2 DSA questions (Graph + DP)
- 10 MCQs
🟢 Screening Call
- Work related discussion
- Introduction and discussion on C++ and DSA
- What is
thispointer in C++? - Can we have a "virtual constructor"? If not, why?
- Can we have a "virtual destructor"? Use cases?
- When would you use "Array vs Linked List"?
🔹 Adobe (First Attempt)
🟢 Technical Interview
-
Reverse a linked list (coding)
-
Output‑based questions on:
- Virtual functions
- Inheritance
-
Constructor & Destructor behavior
-
Impact of using
vectoras an object
🔹 Adobe Noida (Second Attempt – Jan 2026)
🟢 Round 1
-
LeetCode: Insert Interval
-
Design Problem:
-
Interface to fetch "next upcoming birthday"
-
Data structure involving:
- Name
- Parents
- Birth date
-
🟢 Round 2
-
Design a "Logger system"
- Asynchronous logging
- File logging vs console logging
🟢 Round 3
-
Design a "Rate Limiter"
- Scale from small system → millions of users
- Follow‑up on optimizations and edge cases
🔹 Siemens Healthineers
🟢 Round 1 (1 hr 45 min)
"Coding + C++ Core Concepts"
-
Reverse a string Implemention using class with:
- Copy constructor
- Assignment operator
- Operator overloading
-
Demonstrate "virtual functions"
-
Find most frequent element in array
"Conceptual Questions"
-
STL:
- Difference between
set,map,multiset - Use cases of
vector
- Difference between
-
When and why to use
virtualkeyword
🟢 Round 2 (1.5 hrs)
"System + OS + Debugging"
-
Experience with OS (Windows/Linux)
-
Unit testing approach
-
Debugging production issues using crash dumps
-
IPC concepts
-
Multithreading:
- Mutex vs Critical Section vs Condition Variable
"Design & Principles"
- SOLID principles (with example)
- Knowledge of C#, .NET (basic discussion)
"Coding"
-
Find "2nd most frequent word" in a string
-
OOP implementation:
- Abstract class
- Inheritance
- Operator overloading
- File handling
🔹 Microsoft ( Feb 2026)
🟢 Round 1 (DSA)
-
Discuss a "recent bug you solved end‑to‑end"
-
Graph problem:
- Connected components
- Queries on component size
🟢 Round 2 (System Design)
-
Discussion on "current work (cache systems)"
-
Design a "Distributed Cache"
-
Cache eviction strategies:
- FIFO
- LRU
- LFU
-
Implement FIFO cache
Questions asked (14)
- 01
Reverse a Linked List
Data Structures & Algorithms
Given the head of a singly linked list, reverse the list and return the new head.
- 02
Insert Interval
Data Structures & Algorithms
You are given an array of non‑overlapping intervals sorted by start time, and a new interval. Insert the new interval into the array and merge if necessary so that the resulting array remains sorted and non‑overlapping.
- 03
Upcoming Birthday Data Structure
System Design
Design an interface that can efficiently fetch the next upcoming birthday given a collection of records, where each record contains a name, parents, and a birth date.
- 04
Logger System Design
System Design
Design a logger system that supports asynchronous logging. Discuss how you would handle file logging versus console logging, rotation, and performance considerations.
- 05
Rate Limiter Design
System Design
Design a rate‑limiting service that can be used by millions of users. Explain the core algorithm, data structures, scaling strategy, and possible optimizations or edge‑case handling.
- 06
Reverse String Class Implementation
Data Structures & Algorithms
Implement a class in C++ that stores a string and provides a method to reverse it. The class must include a copy constructor, assignment operator, and overload the appropriate operators for copying and output.
- 07
Most Frequent Element in Array
Data Structures & Algorithms
Given an array of integers, find the element that appears most frequently. If multiple elements have the same highest frequency, return any one of them.
- 08
Second Most Frequent Word
Data Structures & Algorithms
Given a string containing words separated by spaces, find the word that appears second most frequently. Ignore punctuation and case differences.
- 09
Connected Components Queries
Data Structures & Algorithms
For a given undirected graph, answer queries that ask for the size of the connected component that a particular node belongs to. The graph may be static or receive edge additions.
- 10
FIFO Cache Implementation
System Design
Implement a cache that evicts entries using a First‑In‑First‑Out (FIFO) policy. Provide methods for insertion, retrieval, and eviction when the cache reaches its capacity.
- 11
What is `this` pointer in C++?
Other
Explain the purpose of the
thispointer in C++ member functions and how it can be used. - 12
Can we have a virtual constructor?
Other
Discuss whether a virtual constructor is possible in C++ and, if not, why it cannot be implemented.
- 13
Virtual destructor use cases
Other
Explain why a virtual destructor is needed in C++ and provide scenarios where it is essential.
- 14
Array vs Linked List
Other
Compare arrays and linked lists in terms of memory usage, access time, insertion/deletion performance, and typical use cases.