Citrix visited our campus as a part of the campus recruitment drive. The process consisted of an online coding round followed by 2 technical rounds and 1 techno-managerial round.
Round 1: The first was an online round conducted on HackerRank Platform. The test contained 42 questions overall among which there were 40 aptitude questions and 2 coding questions. There were 90 minutes of time to solve them all. The questions were from Data Structures, Algorithms, DBMS, CN and Operating Systems along with some aptitude questions. The 2 coding questions consisted of one being an array coloring (Exact specifics of this problems were pretty long to remember) question and the second an XOR-based question. The question was to based on the premise of a bitstring being shifted K times.
10101 10101 10101 ------------ 1101011
Here the number is 10101 and it shifted K times and XOR’d vertically would give the result (R) 1101011. The blank gaps could be considered to be filled with zeros. However, the questions asked was to reverse engineer to find the value of the original number given K and the XOR’d product R.
Round 2: This was a face-to-face technical round and went on for over 60 minutes. After asking me to introduce myself and elaborate some of the projects on my resume, the interviewer asked a handful of questions.
- Given an array of unsorted numbers as input to a function, return the head to a linked list of sorted numbers which were in the passed array. The range is not known and the numbers can be assumed as being of integer type.
- What happens when a computer is booted? (The answer looked for was in terms of Bootstrap being loaded from the hard disk and how the overall process took place)
- Explain port and socket. In what context are they used in networking?
- Based on some related project in my resume, I was asked to explain word-2-vec and how words could be compared in general.
- Lastly, I was asked to write a testing software for the earlier problem, i.e the unsorted array -> sorted linked list conversation. So, I ended up writing a piece of testing code to verify the correctness of the code I had already written to solve the problem.
Round 3: This round was a complete technical and coding/puzzle related round. It lasted for around an hour and 15 minutes.
- The first questions was this https://www.geeksforgeeks.org/find-smallest-range-containing-elements-from-k-lists/ and I was asked to write code for the same with the best possible data-structure implementation.
- Then I was asked a series of puzzles which were pretty fun to solve :
- I was asked to explain about microservices and was asked briefly about docker and other similar Virtualization technologies.
Round 4: The last round was a techno-managerial round and lasted for about 1 hour. I was asked about my projects and previous internships. I explained in depth about my job at previous internships and what tools and technologies I had previously worked on covered. The manager was super friendly and I was asked few technical questions on load balancing, containers and similar technologies. He was also looking at my debugging skills and was asking how I would go about debugging a bug I had discovered.
The more non-serious part of it was to talk about myself and my hobbies. The session ended with the manager explaining about the various technologies that Citrix works on.
The results were announced soon after an agonizing waiting time. Overall, It was a fabulous experience. Geeks for geeks had helped me a lot for this and here is my contribution back in hopes it helps others similarly. Thank you 😉