Interview Experience – Multiple Companies (IBM, Adobe, Siemens, Microsoft)

ibm, adobe, siemens, microsoft logo
ibm, adobe, siemens, microsoft
April 26, 2026 · 2 reads

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.

Full Experience

🔹 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 this pointer 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 vector as 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
  • When and why to use virtual keyword


🟢 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

Interview Questions (14)

1.

Reverse a Linked List

Data Structures & Algorithms

Given the head of a singly linked list, reverse the list and return the new head.

2.

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.

3.

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.

4.

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.

5.

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.

6.

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.

7.

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.

8.

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.

9.

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 this pointer 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.

📣 Found this helpful? Please share it with friends who are preparing for interviews!

Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!