Recently, in July 2018, Citrix visited our campus as part of the campus recruitment drive for a CTC of 25 lpa for Software developer role. The interview process consisted of 1 online round, 3 technical rounds, 1 managerial round and 1 hr round. The questions were from various topics of computer science like Data structures, Algorithms, DBMS, CCN, Operating Systems, Embedded C, a few puzzles and some advanced questions on Java(since it was mentioned in my resume).
Round 1: The first was an online round conducted on HackerRank Platform. The test consisted of two parts. The first part consisted of 50 mcq questions to be solved in 60 minutes. It was based on aptitude and C++ snippets. The second part consisted of two coding questions to be solved in 30 minutes. The first one was to find the GCD of the given array of numbers. The second one was based on graph theory. Here’s the link to this question: https://www.geeksforgeeks.org/find-number-of-islands/
Round 2: This was a face-to-face round. This round went on for over 70 minutes.These are the questions i was asked:
- Given an array of strings, find the most repeated word. [I gave a hashing based solution]
- Find the largest contigious subarray sum[This is nothing but Kadane’s algorithm- https://www.geeksforgeeks.org/largest-sum-contiguous-subarray/]
- Reverse a stack using recursion[https://www.geeksforgeeks.org/reverse-a-stack-using-recursion/]
- Find the number of sub trees in a tree that add upto a given sum.[This is modified post order traversal]
- Reverse a path in a binary search tree upto a given node.[You can use queue since it is a BST]
- Given an IPv4 address, write a code to find out the class of the address.[This is based on Bit-Manipulation]
- Explain about HTTP, FTP and SMTP protocols.
- Some details about TCP.
- The interviewer then asked me to thoroughly explain my projects.
- Two rope puzzle[https://www.geeksforgeeks.org/puzzle-1-how-to-measure-45-minutes-using-two-identical-wires/]
Round 3:This was again a face-to-face round. It went on for about 30 minutes. These are the questions i was asked:
- Merge K-sorted arrays[ Based on heaps:https://www.geeksforgeeks.org/merge-k-sorted-arrays/]
- Given a stream a integers print the largest 10 numbers[ Again based on heaps]
- A question similar to “Jessie and Cookies” problem in HackerRank.[Full code was expected]
- There is a river either side of which there are a number of villages equal in number. On the left side of the river, the villages are present in sorted order. On the right side of the river, the villages are in random order. You need to connect bridges across the river between same-numbered villages( 1-t0-1, 3-to-3 etc). But, once a bridge is connected, you cannot construct another bridge that cuts across this bridge. Now, find out the maximum number of bridges that can be connected. [This is based on LIS problem. The interviewer wanted a DP solution]
- Implement LRU cache.
- Print all permutations of a string.[https://www.geeksforgeeks.org/write-a-c-program-to-print-all-permutations-of-a-given-string/]
- A few questions on virtual memory and paging.
- A few questions on Database Normalization[ Like BCNF, 3NF etc]
Round 4: This was again a face-to-face round. It went on for about 45 minutes. These are the questions i was asked:
- A few SQL queries.[I remember this- Find the 6th highest salary in the given employee database]
- The philosopher’s dining problem.[https://www.geeksforgeeks.org/dining-philosophers-solution-using-monitors/]
- About Java Data base connectivity.
- Socket Programming using Java.[I had to write code using the networking library( java.net) of Java]
- About java exception handling, Multithreading and Run-time polymorphism.
- About Java Applets and event listeners.
- A puzzle- There are ten bottles each containing 1 gram pills. But there is one defective bottle containing 1.1 gram pills. Assume There are unlimited pills in each bottle. There is a weighing machine also. Using the weighing machine only once, find out that defective bottle.
Round 5 (Managerial round): This was conducted by the manager of the company. This went on for about 20 minutes. The manager was very friendly.
- About myself and my hobbies.
- A few questions on memory management in C and Java.
- A few questions on Embedded C like handling 8051 interrupts.
- About Interrupt Service routine of 8086.
- Implement Directory using Trie Data structure.
- A few questions on storage classes in C++.
- Then, the manager explained about various technologies that Citrix is working on.
Round 6(HR round): This was the final round. This was for about 15 minutes. Only some general questions were asked in this round.
The interview process was very long. It went on late till night. The results were announced at about 11 pm and I was one of the selected candidates. Overall, it was a great experience. Various topics were covered. Geeks for Geeks helped me a lot. Thank You.