Adobe Interview Experience | Computer Scientist (5 yr Experience)

Round 1: F2F Technical.(1 hr)

Discussion Regarding Previous Projects in C++.

Design a Dictionary. The APIs you would support and Data structure to store all the data. : I proposed a Trie Data Structure.  I was asked to implement the data structure and data fields on a Notepad. He was looking for production quality code . Things to consider : mutiple definition of words, Error codes design using enums, Class structures etc.



Then I was asked to implement add and delete api for the trie structure on Notepad, handling all the corner cases.

Round 2: F2F Technical (1 hr)

This round I found at the tougher side. Below are the things he asked me.

C++ 11 features : Lambda Functions, unique pointers and 1-2 more features which I dont remember exactly.

Then came Inheritance : Virtual Functions,, How derived class functions can be accessed by pointer to base class.

Memory map of Derived Class when it is compiled : I gave vPointer and vTable explanation. He discussed in detail what all things get stored in vTable. Accessing Base Class functions .

He asked about Incomplete Types in C++. When to use those and how they can be used properly. Discussed compiler actions in case of incomplete type.

He asked Forward Declarations in C++, how they are useful . Discussed in detail Pimpl Pattern and Incomplete Type. Gave me code for Pimpl Pattern to check and fix error.

Then came Smart Pointers, He asked about shared pointer, how are they implemented. Memory map of shared pointer object on compilation.

How is reference count shared between shared pointers ? What happens when copy constructor of shared pointer called.


Then came Mutex, Sempahores and Condtion Variables. Wait and Notify purpose. When to use Condition variables.

Spurious wake up in case of wait() : This I did not know. He explained the term and its consequences, and why condition wait is in while loop rather than if check.

He asked about std::promise() and std::future(). Write code for set() of promise and get() of future and synchronize between them using lock and condition variables.

In the above discussion he also asked about RAII concept and stack unwinding in case of crash when mutex is locked.

 

Round 3: F2F Technical

He asked about current projects. Asked me to explain the architecture of the current project which I had done in C++.

Then He asked me to design an SDK which can handle concurrent calls from application : I proposed mutithreaded design for handling concurrent calls to the sdk. He asked me to draw class structures LLD . I explained design of ThreadPool factory class and how would you manage thread creation and destruction and other classes as well. But couldn’t meet his expectation. Not sure what he was looking for. I found the guy very weak in communication, considering him being at one of the higher positions in Adobe.

Write your Interview Experience or mail it to contribute@geeksforgeeks.org



My Personal Notes arrow_drop_up

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.