Friday, December 13, 2013

Tips For Placement

Tips for Preparation
1.      Starting now is the best time.
2.     Brush up your coding skills. Don't solve problems just in your head. Code everything, starting from "hello world" to "Toughest dynamic programming problems". ( problems on stack, queue, link-list, trees, graphs, DP, Greedy etc.) 
3.    Don't forget what you studied for GATE. (Later you will need to take out time to brush up that too.)
4.   Try to finish Karumanchi 2 months before interviews (till sepember, you won't get much time later). But it's not everything (have mistakes and doesn't have many good questions). In addition to this Geeksforgeeks (really good stuff) and "Google interview questions from CareerCup" are also necessary.
5.  Along with technical questions most of the companies ask questions of verbal and numerical aptitude. (related to boats, streams, trains, age, percentage, ratio, divisibility etc). Good aptitude is very helpful in clearing written exams. You can use R.S. Agarwal for it.
6.      Project is very important. A good project alone can give you a good job. Some companies take whole interviews only on project. Don't let it become a weakness in your Resume.
7.      For Coding, if you are a C lover, consider moving to C++ at least for the sake of using STL.

Tips For Resume Making
1.  Write only relevant things and things which you can justify well. (Eg. If you have done something in php or java a long time ago but don't have a clue about it now, avoid it).
2.      Don't exaggerate things. (may lead into trouble while interview).
3. You are confident about something even if it a little uncommon, mention it. (like i mentioned "Solving Puzzles" as a hobby, helped me in almost all the interviews).
4.    Do generate multiple CV's for different type of companies. Companies recruiting other than technical domain want to know how are you suitable for them. (How interested are you and what have you done in that field.)
5.      Mention your projects clearly and precisely. 
6.    Don't flood your resume with your technical skills, write things in which you are confident and have adequate knowledge.

Tips For Interviews
1.  Prepare your Resume: Almost half of the questions asked will be from your own resume. You need to prepare every single line of it very well.
2.    Know your Company: The first or second question you will be asked could be, "What do you know about the Company?" or in HR they may ask "Why should we select you?" or "What you can give to the company?". So spent a little time to know about the company's work area, recent project and how you can be effective for it.
3.    Communication Skills: Good communication skills give a good impression and help to boost your confidence level. If your communication skills are not adequate try to improve them and practice what to say in interview a day before. It will remove your hesitation.
4.    Tell me about yourself: An open ended ice-breaker, asked in most of the interviews weather its Technical or HR. Prepare it in advance. It should of about 1 minute until the interviewer asks you to elaborate. It's your chance to get the wheel in your hands and drive the interview your way. Tell him your educational and technical background followed by your strength and hobbies. Do mention something in which you are confident. It will give him/her a starting topic and you a good start.
5.  Be Confident and Calm: Interviews is the time when you easily get nervous and stressed which can easily ruin chances of getting selected. You need to be confident, calm and patient. Speak loud and clear, without any hurry. It shows your confidence and clarity about the topic.
6.    Be Company Specific (when its less than a month) : Every company asks different types of questions depending upon the work of the company and the job profile they are recruiting for. Know in advance what type of questions asked in previous year interviews and prepare accordingly.
7.   Do you want to ask something: At the end of the interview, interviewer usually asks this question. Ask a couple a questions about the work of the company or about your profile and work in the company, it shows your interest in the company.

Other Tips (Last but not the least)
1.   Try to maintain your CGPA above 8 but more importantly prepare well. A person with 7.5 CGPA with good preparation will have better changes then a person with 8.5 CGPA but under prepared. 
2.     Try to take lighter courses in your 3rd semester it will give you good time for preparation.
3.  Keep in touch with friends at other IIT's and NIT's at the time of written tests and interviews.
4.  Don't lose confidence seeing your friends getting placed and not yourself. Believe me you will definitely get a good job (even if your CGPA is not good).
5.    Help your friends after you get placed. Placement process is cumbersome and stressful. You may have 5-6 interviews in a day followed by written exams. Motivate your friends, never leave them alone, help them find interview venues and get necessary documents. You will be really happy seeing them placed too.

Wednesday, December 4, 2013

IIT Delhi Placement – My Experience

The Procedure:
It starts with the online Resume making. The T&P allows building of resumes online from 1st week of August and you have to complete it in next 4 weeks and generate all final resumes. After 4 weeks it freezes and you cannot make any changes. You can generate up-to 8 different resumes for 8 different types of Companies There is a master resume which is source for all final resumes. All the final resumes must not exceed 1 page.
Companies start visiting the campus in mid-September but written test starts roughly around 15th October.  T&P allows 40 applications per student. Most of the companies take written test before interview. Once you apply in a company if you get shortlisted you can give the written test (it’s mandatory to give written test if you got shortlisted for it otherwise you need to pay 1000 Rupees fine). The result of written tests comes in end of November or 1-2 day before interviews. The Interviews start from 1 December. You can get only one final job can’t sit for any other company after you get it. If many companies are coming on same day for which you have applied then the preference needs to be set the day before the interview. If you got selected in more than one company you will get the one higher in preference.

My Experience: It was a pretty high ride experience finally I got placed in flipkart on 3rd day.

The written Tests:  
I gave around 18 written tests, most of them were online tests and many of them include coding questions online (which actually matters most because of high weight-age and everything or nothing marking). I did pretty badly in most of online test with good coding questions. Most of the times my MCQs part with technical and aptitude was very good but the online coding part made the difference (MCQs can make the difference if coding questions are too easy or too hard to solve, which actually showed up for me in some cases).  Most of the online test used interview-street, where you usually can’t cheat (and if you are unlucky sometimes compiler may bust you without even cheating). Here are some details about companies and their written tests.

Amazon – MCQs + 2 coding questions (coding questions 90 minutes)

Direct-i – 2 good coding questions (90 minutes) (many people did 1, some did both)

Oracle – All MCQs with c, data structure, aptitude, database, logical, illogical (you will definitely find some), questions of small coding modules etc (every section had limited time and different weightage).

Microsoft – MCQs in 1st round and 2 easy coding questions in 2nd (MCQs repeated from previous year gate questions from

Epic – 1st round of MCQs and 2nd with 4 coding questions where there was no compiler, needed to write code with comments.

Samsung – 1 hour wait, more than 200 people and 30 minute 20 MCQs where everybody did 19-20 of them.

Dell – 60 MCQs in 70 minutes, long time taking aptitude questions, some of technical too were time taking (it needed actually at least 30 minutes more to complete) 12-13 Aptitude + rest technical (data structure, OS, database, networks etc.) some repeated form

Informatica (US) MCQs in 1st round, it was all previous year GATE questions, so almost all of the M.Tech people got selected for 2nd round. 15 questions in 2nd round where need to write small code, description or output of programs (60 minutes, not enough to do all 15)

Inmobi – MCQs + coding questions ( don’t remember details)

Strand Life Science – Paper pen written test, total 10 questions of 100 marks out of which 5 small logical questions of 5 marks and 5 coding-logical questions of 75 marks (not all of same marks)(90 minutes)

Goldman Sachs – two paper pen written(75marks + 90 marks)(70 minutes + 90 minutes).
1st paper with 3 sections with 10, 10, 5 questions(each 3 marks).  Most of them really-really good mathematics and aptitude questions, 6-7 C and OS questions too (all with negative marking of 1/3).
2nd paper with 2 sections, 1st section with 4 subjective questions 15 makes each (mathematical and aptitude). 2nd section with 10 questions (2 to 4 mark each), mostly C and OS, some aptitude.

Nutanix – 2 good coding questions ( 90 minutes maybe)

Cisco – Paper Pen test, 50 questions (20 aptitude, 15 electronics, 5-6 C, others digital) (60 minutes)(at least 10 electronics questions were totally out of reach)

Rocket-Fuel – 3 good coding questions on interview-street (3 hours, 2 questions correct means shortlisted)

Citicorp – MCQs (aptitude + technical)(c, data structure, OS etc) + 2 easy coding questions (2 hours)

SAP Labs – MCQs (aptitude + technical) + 2 coding questions (90 or 120 minutes).

Flipkart – 20 MCQs (10 good aptitude questions + 10 avg technical) + 2 good coding questions

Groupon – 2 pen-paper test (30 minutes each), 1st 16 questions ( 6 aptitude, rest c + technical), 2nd 3 avg coding questions (with comments and explanation, time was a little less in this part)

3 companies backed off after taking written, informatica didn't selected and M.Tech student.
Out of reaming 14, I cleared 6 written tests for interviews.


Goldman Sachs –
1st Round – (Technical) (12-15 minutes)
1.      What do you know about Goldman Sachs?
Let me tell you something about Goldman (went for 3-4 minutes)
2.      You have a brand new laptop, what will you do to make a search engine?
What would be the database schema?
2nd Round – (Technical +HR) (12-15 minutes)
1.      What the last guy told you about Goldman?
2.      What was his name?
Told me about what he does in company and what the domain of the company is.
3.      (Looking at my resume) your parallel programming work sound interesting, what you did in there?
4.      What is the difference between prim’s and Dijkstra’s algorithms?
5.      Why you want to join the finance domain?

Citicorp –
1st round – (Technical) (50 minutes)
1.      Tell me about yourself?
2.    There are 5 houses in a circle, the power station can give power to only 2 of them at the same time, it gives power in slot of 1 hour, what would be the approach such that
i.                    No adjacent house has power at the same time.
ii.                  No house has power loss for more than 2 hours.
3.     Also write code for it, will it work for 7 houses, 6 houses, what are the changes required to make it work ?
(Had my coding answers printed, in 1st I used bubble-sort when wasn’t able to work out merge-sort correctly in given time and a silly mistake in 2nd) .
4.      Why you used bubble?
5.    Why you used 2 loops in merge-step here? (It is necessary 1st was just to make a temporary array and initialized it with zeros and second for merging.)
6.      Why an extra loop after the 2 loops? (This was actually correct, but couldn't make him agree).
7.      What is your project?
8.      Why do you want to work in a financial company?
Ans – I have worked before on a Stock market application in my and I like to follow share market too. This field interests me a lot.
9.      How much do you follow the stock market? 
Ans – A lot before in my undergrad but not much from quite long.
(We will call you for second round if you get shortlisted, because written test still counts).

Strand Life Science – (Technical + HR) (30 minutes)

One round for everyone –
1.      Tell my about yourself that is not mentioned in your resume.
2.      (I mentioned chess in my hobbies) What do you think about the defeat of Viswanathan Anand’s defeat to Magnus Carlsen?
Ans – I think both are very good player but Carlsen have this quality of being calm and composed and he grinds out his opponent for 5-6 hours until he makes a mistake, same happened with Anand, he made a couple of mistakes in 5th and 6th game and a blunder in 9th.
3.      How would you find kth node form end in a singly linked list?
4.      Which language do you like for coding (mostly use)?
Ans – Mostly C
5.      What is the actual difference between call by value and call by reference?
Ans – In call by value, the value doesn’t change even if it changes in the called function but in call by reference the address of the identifier is passed so the actual value of the passed variable is also changes if it is changed within the function.
6.      How the primitive data-types are passed in java?
7.    You have a m+n size sorted array with m elements and n blank spaces in the end, and a n size sorted array, how would you merge them in m+n sized array without using any extra space?
Ans – We can use the last m empty cells, starting a writing pointer form (m+n)th position, and 2 reading pointer, 1st at mth position if 1st array and 2nd at last position of second array and apply the merge step form backwards. 
8.      There are 10 sets of 10 coins, all are same but one set have lighter coins my 1%, you have a very accurate weighting machine, how can you identify the faulty set by using the machine just once?
Ans – Take different number of coins form each set (1 from 1st, 2 form 2nd …. 10 from 10th) and weight them only once. We can find out the set with less weight coins by calculating the weight loss.
9.      There are 20 coins lying on the ground, 10 heads and 10 tails. You have to make 2 sets of them with equal number of heads in each set and equal number of tails in each set blindfolded.
Ans – just pick 10 and 10 coins and make two sets. Then reverse the coins in 2nd set. You got it.
10.  There are 3 child of a person( all aged<=15), an stranger is told that the multiplication of their age is 90 but the sum is some number of birds sitting on that tree which the stranger can count, but he couldn't figure out the ages correctly. What is the number of birds on the tree.
Ans – Total possible combinations
                                    1*6*15            sum = 22
                                    1*9*10            sum = 20
                                    2*3*15            sum = 20
                                    2*5*9              sum = 16
                                    3*3*10            sum = 16
                                    3*5*6              sum = 14

So possible answers are 20 and 16

Dell – (Selected)
1st round - (Technical) (45 minutes)
1.      You have mentioned a course here what was it?
Ans – Its Software System Laboratory, where we made 4 big assignments to brush up our coding skills and to learn how to make large coding modules.
2.      Tell me about one of the assignments that you did?
Ans – We made a 3D Alien-Invasion game in using open-GL where the scenario was build according to a fight among aliens and Commandoes, There was a texture which changes size according to the number of players, obstacles, game logic (how and when to fire, power boosters, special weapons, health points etc).
3.      How does texture is drawn in open-gl?
4.      You used a graph in the assignment, write code to represent graph?
5.      Tell me about your Project? (explained it for around 10 minutes)
6.      Can you tell me how the prim's algorithm works? (mentioned in CV)
Ans – It’s an algorithm to find minimum spanning tree which stars from a vertex and each time we choose a minimum outgoing edge from all the outgoing edges of the partial tree. Finally we have a minimum spanning tree.

2nd round – (Technical + HR) (30 minutes)
1.      Walk me through your CV.
Ans – Except normal introduction mentioned that I am good at team work.
2.      Why do you think that you are good at team work?
Ans – I am a RA in a collaborative indo-US project named end-to-end mobile health care. We are a team of 8-9 people here at IIT Delhi who are working on different modules and need to collaborate with each other to make one final component. We have successfully developed health monitoring sensors and transferred the data to the mobile device and used it for classification, all part done by different persons and combined into one.
3.    You mentioned sequential addressing to avoid memory bank conflict (mentioned in CV), how does sequential addressing helps avoiding memory conflict?
4.      What can we do if we don’t want any conflict with memory?
5.       Why do you want to join Dell?
Ans – Dell is an organization which works in almost every field related to Computers so a huge diversity of fields to choose from. It supports innovation and positive thinking. So I would like to join Dell and explore my abilities to the full capacity.
      6.      What kind of work would you like to do in Dell?
      Ans – I would like to work in the area of cache optimization and making faster access to memory.
7.     How can you efficiently use cache if one core with local cache is suffering with a lots of page fault and other is not using its on full capacity?
Ans – We can use shared cache with variable size allocation to each core so every core can use cache according to its requirement.
8.      What would you choose from android and cache optimization?
Ans – I have worked in android a bit, I would like to explore a new area of cache optimization which is really very interesting.
9.      Do you have other interviews today?
Ans – I have Flipkart and and Oracle scheduled today.
10.     What preference have you given to dell?
Ans – It is the 1st preference that’s why I came here before others.

3rd round – (HR) (10 minutes)
1.      Tell me about yourself?
2.      What are the other companies you have interviewed before?
Ans – I gave interviews of Goldman Sachs, Citicorp, and Strand Life Science before.
3.      You are aware that the job location is Banglore. Are you OK with it?
Ans – Yes, I know, it’s totally fine.
4.      Do you want to ask something?
Ans – Yes, What kind of work I would do at dell?

Flipkart - (Selected/Final choice)

1st Round – (Technical) (60-65 minutes)
(In the written there was a coding question the question was –
There are m stations and n houses, (x,y) coordinates of each station and house are given, output nearest station for each house.
I used brute force which gives O(mn) performance.)

1.      Walk me through your resume.
2.      In 2nd coding question what approach you used?
What could be the better approach?
Further optimize it.
3.      There is a binary tree given to you. You need to find its clockwise boundary traversal.
Code the whole thing.
How can you further optimize it so that you have to traverse the tree less times and you can use the previous information?
4.      There are k n sized arrays which are sorted. You need to merge them, what approach you will use? What is the time complexity? What Is the minimum space complexity?
What can you do to reduce the time complexity if the arrays may be already partially or fully sorted or fully sorted? (Just need to shuffle the whole arrays not  elements)
What is the total time complexity in that case?
Code the whole thing.
5.      Leave the code, you said you are good with puzzles (me - yes I am).
There are 1000 wine bottles, 1 is poisonous. Anybody who drink the poisonous wine dies just in 1 hour, you have many slaves which you can kill to find the poisonous wine bottle, There is a grand party of king after 1 hour. You need to use minimum number of slaves and find out which bottle is poisonous before the party.
Ans – Simple answer would be to use 1000 slaves,
          But we need to mix the wines to make it better anyhow and need to make sure that we can finally find out the exact bottle.
            I would take couple to more minutes to solve it (Him - Oh you have all the time)
We can use 10 binary digits to represent each wine bottle, and can make 10 different mixtures of wine by mixing all nth digits (1 to 10th) where there is a 1. Now according to which slave dies we can mark that digit as 1 and form a final binary number, which tells the poisonous bottle using only 10 slaves.
6.      Do you have any questions?? (yes what kind of work I will be assigned) (Whatever it is, you will enjoy it).

2nd round – (Technical) (55-60 minutes)

1.      Tell me about your Project?
2.    There is a system where Lakhs of large files are coming, and they are coming continuously, you need to keep track of k=2000 files with maximum size, which data structure would you use?
Why you choose heap? Why not Binary Search Tree?
What other potential advantage does heap give over binary search tree?
What if the number k is varied over time to time?
What if k is a AP like 10, 20, 30….?
3.    There is a stream of strings coming like a -> b, c -> d, d -> b, b -> f any-order, in a -> b it means a is parent of b. what data structure would you use to
i.                    To find all nodes without any parent
ii.                  To find if there is a cycle in the forming graph
iii.                How DFS can be modified to find a cycle in a graph
4.      How to find a cycle in a linked list?
5.      How to find maximum contagious sum in an array?
6.      How to find maximum contagious product in an array with
i.                    One negative number
ii.                  More than one negative number
iii.                Without any zeros
iv.                With zeros
7.      Would you like to ask anything from me? (What kind of work flipkart do ?) (He told me a lot of things most of which I forgot the same day).

3rd round – (HR) (20-25 minutes)

1.      Tell me about yourself?
2.      What was your responsibility in your minor/major projects and how did you accomplish it?
3.     You told me that you are good with puzzles so tell me how can you make 6 from roman 9 (IX) without modifying its current form.
Ans - (Thought for 1-2 minutes, then I just smiled and answered …. and said a good one.)
4.      What would be the reason if you leave the company after 1 year?
Ans – If I fell that I not liking the work, or that my interest lies somewhere else and I am not able to do my currently assigned work in the best possible manner and it is pulling my moral down. I can lose anything but self-confidence, money is not that big an issue, the kind of work that I am doing matters more, the sense of achievement at the end of the day is necessary. 
5.   What if I transfer you from a project which you actually like to some other project after 6 months?
Ans – It will feel bad in the beginning surely but I you are much senior to me and knows the things much better than me, so maybe that project needs me more or I am more suitable to that project and I will come to know about it after spending some time on it, so it’s okay until I feel that there is some biasness involved.
6.      What would you prefer
i.                    Hard work
ii.                  Intelligence
iii.                Excellence
Ans – I would prefer Intelligence but with excellence, because it’s good to something in an intelligent manner but it is necessary to do it and do it properly, Intelligence is of no use until you use it to achieve something meaningful. 
7.    What would you choose if you have choice between job location of Delhi and Banglore and why?
Ans – I would choose Banglore, yeah Delhi is close to my Home town and I am used to it but this is the age and time for me to explore the places and to get to know the new people and cultures, so I think Banglore would be a good starting point for it.
8.  Do you want to ask something to me? (No I have already cleared my doubts in previous interviews)