Saturday, 29 December 2012

Goldman Sachs Test

Goldman Sachs test for "Quant Strategist" position was one of the lengthiest test I have given till date.

400+ students appeared for the test out of which around 25 students were shortlisted for final rounds of interviews.

Test was for a total of 3.5 hours. I don't remember many questions, but here are a few :

Section 1 : (Probability + Linear Algebra, Subjective)

1) Two points are chosen randomly in a unit square. What is the probability that the circle formed using the diameter of the 2 points contains the square's center ?

2) Choose any 9 points on or within a unit square. Prove that there always exists 3 points such that triangle formed by them has area 1/3.

3) Find Eigen values of a matrix which has all entries equal to 1, except the diagonal entries.

4) Prove : Summation(k * p(n,k)) = n! over k=1 to n, where p(n,k) is the number of permutations of {1,2, .. n} which have exactly k fixed points.

Section 2 : (Algorithms + Probability, Subjective)

1) Given 2 integers a, b. Calculate probability that a^2 + b^2 is divisible by 10.

2) Given a number N, find the smallest palindrome number greater than N in O(lgN)

3) Check whether we can form N/2 pairs from an array of length N, such that each pair's sum is divisible by k.

Section 3 : (Computer Science Concepts, Subjective + Objective)

The 3rd paper tested our knowledge on core cs concepts. It mainly consisted of questions on Networks.

Sunday, 16 December 2012

CSE-IITB Placement Statistics

Placements at IIT-Bombay started on 1st December, 2012. This year's placements proved to be the best till date for BTech CSE batch.

I will be highlighting some important figures of the placements of BTech, CSE IIT-Bombay 2013 batch. More than 90% of the batch has already been placed since placements began.

Job locations offered

As compared with last year, a significantly higher number of software companies visited for campus placements, many of them for the first time ever. There were a lot of opportunities for overseas locations like USA, Japan, Middle-East etc. Following is the distribution of the students according to job locations offered:

Distribution of job locations

As compared with last year's placements a substantially more number of students have been placed in firms offering job locations in USA. One thing that I observed was that the number of Day1 companies for CSE were too many and all of them had shortlisted from a fixed set of students. That is the same set of students were present in most of the shortlists. Due to this, many students ended up with multiple job offers from different companies. Many companies offering lucrative packages had to walk-away empty handed due to this anomaly.

Job profiles offered

Distribution of job profiles

As we see in the above chart, very few students opted for finance-based Quant Profiles. A huge number of students were placed in software engineer profiles. This is because of the numerous US-based companies arriving for placements this year. This resulted in many people opting for US-based software engineer profiles against India-based Quant Finance profiles. None of the students opted for other kind of profiles like Management Consultant, Financial Analyst etc.

Packages offered

Gross salary offered to BTech CSE students averaged out to be around 14.4 lpa (lakhs per annum) for India-based jobs. For US-based jobs, the average is around 100,000$ per annum.

For India-based software engineering jobs, the average is around 11.6 lpa. For India-based Quant profiles the average is around 26 lpa.

Pre-Placement offers

Around 15% of the batch had received and accepted pre-placement offers from companies where they interned. This proved to be a boon for rest of students in the batch because the PPO'ed people weren't allowed to apply at all the companies arriving for campus placements, thus reducing competition.

Top Recruiting Firms at IIT-Bombay
  • Software Engineering: Google, Microsoft, Facebook, Samsung, Twitter, LinkedIn, Rocketfuel, Mylikes, Epic Systems, Sony
  • Quantitative Finance: Tower Research, Morgan Stanley, Goldman Sachs, WorldQuant
  • General Finance: Optiver, Deutsche Bank, Citi, Credit Suisse, BlackStone, Jump Trading
  • Management Consulting: Mckinsey, BCG, Booz & Co., Bain & Co., A.T.Kearney

From what I have experienced during placements, it seems that having a CPI (cumulative performance index) above 8.5 is very good and preferably puts you into the set of students who have a chance to get shortlisted at most companies. You also need to have at least one good summer internship. Thus, my advise to juniors is to increase their CPI whilst they can. Higher the CPI, the better are the chances you get a "good" placement.

Best of Luck! :)

Note : The above statistics hold true only for the BTech CSE, IIT-Bombay and should not be used to predict a generalized trend for other departments and programmes. I have tried to calculate the figures as accurately as possible however I do not guarantee it to be exact.

Sunday, 9 December 2012

Flipkart Test

Flipkart conducted its test on Interviewstreet. There were 20 objective questions and 2 programming questions. Test was for 2 hours.

Here are the 2 programming questions :

1) You are given an array of integers. You need to find the minimum number of swaps necessary to make the array sorted.

Eg. [3,2,1] -> 3 swaps needed
      [1,2,3] -> 0 swaps needed

2) Snakes and ladders game. Find the smallest number of jumps (ie optimal no of dice throws) needed to win a snakes and ladders game. Assume you are given a board with all the necessary inputs like start/end positions of all ladders and snakes. (Hint: Think about the problem in terms of a graph)

Directi Test

Directi conducted a programming test at IIT-B for placements. The platform we used was CodeChef.
I personally found the interface on to be very non-intuitive as compared with InterviewStreet. Make sure you practice on codechef before appearing for the test, so as to not get stuck up on some trivial issues during the test. The total duration of the test was about 1.5 hours.

Here are the questions asked :

1) The question boiled down to this : Find the shortest path from source node S to destination node T in an un-directed graph where all the edges have equal weight. (Hint : Think BFS)

2) This one was non-trivial. I don't remember the question exactly but the idea was to enumerate all the cycles in some given permutation of {0,1,...,n-1}.

Eg: If p[] = {0,1,2} there are 3 cycles 0->0, 1->1, 2->2
      If p[] = {2,0,1} there is only 1 cycle, 2->1->0->2

Saturday, 8 December 2012

Optiver Tests: Some Tips

Optiver is a market-making firm. Market-maker is basically a financial institution which quotes both a buy-price and a sell-price for different financial instruments. Thus, they are an important source of liquidity in the market and they make profit by the price differences in sell and buy quotes.

Optiver has been hiring a good number of students from IIT-Bombay for the last 2 years. It has become one of the most craved firms here at IIT-B, purely because of the job location, the lucrative package it offers, and also the kind of work it does. It has primarily hired for it's headquarters in Amsterdam, but it might hire for it's offices in Chicago and Sydney too.

Optiver has a very rigorous testing and interviewing process. It takes 3 written tests, and after every test it scalps approximately 50% of the students.

Shortlisting for the test is based on your Resume and CPI. Around 50% students are shortlisted for the test out of the total students who applied.

Test #1 : Speed Arithmetic (80 questions, 8 minutes, MCQ)

This is a pen-and-paper 8 minute arithmetic test! Yes you heard it right, it's only for 8 minutes. That's the beauty of it, in 8 minutes, it gets decided whether you are eligible for Optiver or not. It's a arithmetic speed-test and contains 80 simple arithmetic questions and you need to get around 60 right to clear this round. I recommend TraderTest for improving your chances.

1) The questions are very easy and based on + - * / only. Mostly integers.
2) Time taking questions are the ones involving fractions and mixed fractions
3) Since it's a pen and paper test, some time gets wasted on searching for the correct option and then  marking the option on the OMR sheet, so effectively you have less than 8 minutes.
4) Also, sometimes the options are not in their most simplified form eg. if the answer is 1/2, then you need to look for 3/6 or 6/12.
5) You get +1 for every correct answer and -2 for incorrect. You get -2 for skipping a question, Oops!
6) Cut-off score is around 60/80.

Test #2 : Sequences and Progression (25 questions, 30 minutes, MCQ)

After the 8-minute test around 50% of the students qualify for the 2nd test. For every question, you are given 6-7 numbers and then you have to recognize the next number in the sequence, you are given options to select from. The cut-off for this test is around 22/25, and there is no negative marking. Around 50% students clear this round.

You can practice from TraderTest, but it's not comprehensive. So you should also look at other resources on the web and in CAT study material.

Test #3 : Analytical Puzzles (Around 10 questions, 1 hour, Subjective)

The puzzles are math and number oriented. Practice a lot of puzzles from the web, some puzzles might get repeated. You need to write down the  correct approach to get full marks. Even if you don't know the right answer, writing some logical steps (although incomplete) might fetch you some marks.

Approximately half the students are eliminated after each round, so eventually only 1/8 of the total number of students make it to the final shortlist. At our time, around 35 students made it to the final shortlist out of 300 students who appeared for the test.

I have tried to give information as accurately as possible, but if you find any of the above incorrect, please bring it to my notice. I hope the above post helps you in your preparation :]

Friday, 7 December 2012

Epic Systems Test

Epic Systems is a US based company that makes software for healthcare industry. It offers an attractive  compensation and is a good company to start with, if you don't have much options are targeting a job in USA.

There were 2 rounds of testing, 1st one was a very simple aptitude/personality based assessment. Almost all the people who gave the first round got shortlisted for the second round.

Second round consisted of coding questions for which we had to write code in any language of our choice. Total duration of the test was 2 hours.

Here are the questions from the Coding round:

1) You are given a number n, write a function that prints next 10 terms of the 'Look and Say' sequence.
     Eg. If n = 1, then first term is 1, next term is 11, this is because "1 occurs 1 times",
           next term of 11 is 12 because "1 occurs 2 times",
           next term of 12 is 1121 because "1 occurs 1 times, 2 occurs 1 times"
           next term of 1112 is 1321 because "1 occurs 3 times, 2 occurs 1 times"
           next term of 1321 is 11312111 because "1 occurs 1 times, 3 occurs 1 times, 2 occurs 1 times, 1 occurs 1 times" and so on.

2) Find max sum contiguous subsequence in an array of integers. (Hint : Kadane's Algorithm)

3) You are given a 2D grid of integers. You have to find the longest path in the grid such that adjacent terms in the path have a difference of +1/-1. Print all paths of max length. Constraint : you can move only down and right.

4) You are given 2 strings, say A and B. Convert a string A to string B using adjacent swaps of characters in A. Give the intermediate series of strings produced. Display an error if the A can't be converted to B.

    Eg. A = "DUM", B = "MUD", DUM -> DMU -> MDU -> MUD

Final Interview shortlist of Epic consisted of 20 odd people from over a 150 people who initially sat for the tests. From my observation, you had to do at least 3 questions out of the above 4 correctly to be in the final shortlist.

Thursday, 6 December 2012

Informatica Test - Subjective Round

This year Informatica participated in the placement process at IIT-B. They invited applications for India as well as their US Office for software engineering profiles!

Their process for shortlisting for final rounds of interviews consisted of two Rounds of testing.

First round had very simple objective questions on Data structures, Algorithms, Operating Systems, Database Queries and some other questions on basic CS concepts.

Out of the 60-70 people who sat for the first round, 30 made it to the shortlist for the second round, which was subjective. The duration of subjective round was 1 hour and it had the following questions :-

1) You are given an array of integers, say a. Find i, j, k in the array such that a[i] < a[j] < a[k]. Expected time complexity is O(n), and space complexity is O(1).

2) You are given a pointer to a node in a graph. You have to create a copy of the graph. The node structure is as follows.

class Node {
      int id;
      vector<Node*> neighbors;

3) Write a program to compute fibonacci numbers. Improve its efficiency.

4) You have a set of jobs j1, j2, ..., jN. There are some restrictions on the way the jobs can be executed, eg. j1 has to be executed before j2, j3 has to be executed before j1 etc. Give an algorithm to to schedule the   jobs given the constraints.

5) Design a 2-way HashTable

6) Given 2 very large arrays A and B. Find the common elements given that you have
                                          a) Unlimited Space
                                          b) Limited Space

7) In a store there are a million distinct items. You have to list the k most sold items at the end of day. Give the data structure/algorithm you will use for the following cases
                  a) You have to list the items in sorted order of number items sold,
                  b) Sorted order is not necessary, so just print the items in any order

8) How many times will "hello" be printed on executing the following program.

int main() {
      int tmp;      
      for (int i=0; i<7; i++) {
           tmp = fork();
           if (tmp > 0) break;
           cout << "hello" << endl;

9) I don't remember this one exactly, but you are given a program with several declarations/definitions of variables. You have to say where will the memory be allocated for all the declarations, eg. Heap, Stack, Text Segment, etc.

Out of the 30 people who appeared for the subjective round, only 15 odd people were able to clear it, and shortlisting for final interviews was purely based on your performance in the test.

Tuesday, 4 December 2012

Google Interview Experience

I was shortlisted by Google for final rounds of interviews. Here are the questions asked to me during my face-to-face interviews. Each interview was for about 45 minutes.


The interviewer started by asking me about myself and then about my projects. He asked questions like "Why Google", "Why not some other company like Eg. Microsoft", "How would you design a Self-controlling car", which I had to answer within 30 seconds.

1) Write code to multiply 2 matrices, check for corner cases, erroneous inputs etc.

2) Given a matrix M, check whether 2 rows are exactly equal in the matrix. Optimize time complexity.

Eg. M  =     1 2 3, then rows 1 and 3 are same.
                3 4 5
                1 2 3


1) Given a N*N grid of characters, find all the words that can be made using by traversing in the eight possible directions in the grid. (similar to Boggle)

2) Find some local minima in an array of integers, assume that all the integers are distinct.

Local minima definition :
Given an array a[1], a[2], ... , a[n-1]

 if a[0] < a[1], then a[0] is a local minima
 if a[n-1] < a[n-2], then a[n-1] is a local minima
 if a[i] > a[i-1] && a[i] < a[i+1], then a[i] is a local minima

Google Test

Google's test conducted at IIT-Bombay consisted of 20 objective questions, which were of moderate difficulty level. It also had a subjective question which goes as follows.

You are given a number of dices n, each with a number of faces m. You roll all the n dices and note the sum of all the throws you get from rolling each dice. If you get a sum >= x, you win, otherwise you lose. Find the probability that you win.

Google's shortlist for final rounds of interviews consisted of only those people who had done relatively well on the test, and fortunately I was one of them. So now you know how important it is to do well on the test.

Monday, 3 December 2012

First Post!

Now that 2012's placements at IIT-Bombay are over, I have decided that I will post about my overall placement experience on this blog.

This blog is meant to be useful to all those people who will be sitting for placements for CS, Quant Finance and Analytics companies in near future. This blog will contain selection and interview procedures for various companies that appeared at IIT-B's Placements, 2012. I will also post some tips for preparing for specific companies and all the stuff you need to do to crack the company, starting from the company tests right till the last interview round!

Do keep checking for the next post :)

Thanks a ton,