Tags: , | Posted by Admin on 6/27/2012 9:55 AM | Comments (0)
When you are preparing for an interview, you think about what you'll wear, the people you'll meet, and what they'll expect of you when you arrive. As an ambitious student trying to get that "dream job" out of college, I was faced with these questions. IT is competitive for the job seeker, and for someone who is fresh out of school with little experience, the job search process was daunting. My previous interview experience was non-existent, and prior to this, I had worked at my father's small business accounting firm which, fortunately for me, never required an interview. So here I was, a week before my senior year of college, getting ready for my first real interview ever. What made this experience even scarier was that I was interviewing with one of the most sought-after tech companies in the business -- Google. I had found the job online while perusing Google's careers page. I never expected a response. I mean come on now, Google? They must get hundreds of thousands of applications a year. I was a needle in the haystack. After a few follow-up emails and a technical phone screen, I was given the opportunity to fly out to its Mountain View campus for an interview. I really had no idea what to expect, or how to prepare. I was so overwhelmed at the time that it was pretty much a blur. My day consisted of three interviews with Google's famous free, on-campus lunch in between the last two. While I won't go into any of the specifics of what I was asked, I can say that from the moment I walked into the room I was grilled about everything -- from nitty-gritty technical whiteboard drawings to logical problem solving. I did my best to keep up, but half the time, I didn't even know whether my answers were correct. I constantly dug through my head, hoping that my education up to that point was sufficient. I walked away feeling somewhat skeptical about my performance. Did they like my problem solving and rationalization skills? More importantly, had my education prepared me enough for this? Granted, at the time I still had another year left of school, but it was still something to consider. A few weeks later, I got the call informing me that I didn't get the job. Was I disappointed? Yes, but it was certainly an unforgettable learning experience. Over the course of the next few months, I had the opportunity to interview with other companies. I was provided with a list of jobs that matched my degree via my school's online career site, making it easy for me to apply. This, along with my own research, helped me gather as much information as I could about the types of jobs that were available for new graduates -- from small, high-tech financial trading firms to Fortune 500 IT shops -- and I tailored my skill set to become more comfortable in the interview room. When it came time to interview with Microsoft, I was more prepared and knew what to expect. Unlike Google, however, I had an initial interview on campus prior to being selected to fly out to Redmond. In similar fashion, I was given questions of varying degrees of difficulty. The position I was applying for required an analytical thinking style with a stronger emphasis on the business aspect of IT. For example, I was asked to explain what cloud computing is to someone with limited knowledge in technology. Communication skills are critical to the consulting trade. Rather than being doused with technical questioning, the interviewers looked to see how well I could communicate complex topics. Overall, I felt much more relaxed and in my element. One of the unique aspects of my time in Redmond was the interview environment. In between interviews, I was in a room filled with music, video games, and movies. While it may sound unheard of, it actually worked in my favor helping to keep my mind off things for a bit. Not to mention that it was an awesome way to spend a day of interviewing! That same day, I was offered the position as an Associate Consultant. The first and probably most challenging leg of my journey had been complete -- nailing the interview. I want to reflect on all of this for a moment. Expectations play a mind-consuming role in the process. During each interview, I couldn't help but think about what the person in front of me expected of my performance. Despite the intensive coursework that comes with a degree, I found that it's just as important to anticipate a whole new learning experience. Interviewing taught me just that. Regardless of whether or not my answers were right, I learned that what matters most to Microsoft will be the experiences I encounter on the job itself. You won't know everything when you graduate, nor are you expected to. Besides, if you think you do, you're going to have a tough time getting a job. In fact, this is what the "real world" is all about. The best part about technology is how quickly it changes. No matter what role you hold in IT, you will find cool things you didn't know before. This is why I can't wait to start my job -- every day will be a new adventure!
Tags: , , , | Posted by Admin on 4/9/2009 1:14 AM | Comments (0)
Google telephonic Interview 1. Asked about my project. Prepare well to answer any type of questions that may arise in your project.They will just ask to explain about any one of the projects listed in your resume. 2. In a plane, n points are given i.e. the input is (x1,y1), (x2,y2)… (xn,yn). Now given these n points.Find the maximum number of collinear points. Solution: The duality algorithm would work. Find the point of intersection with maximum no of lines incident on it in the dual plane. It works in O(n^2). 3. Write the code for finding the min of n number. for(i=0;i{ if( a[i] { min = a[i] —- eq(i) } } Given that n numbers are from random sampling how many times (probability) does the line (i) be executed Solution: min=a[0]; for(i=1;i{ if( a[i]{ min = a[i]; ——-eq(i) } } Once the variable min is initialized,the probability of a[i] =k) { count+=n/k; k*=5; } return count; } this count is the number of o’s in n!. Google Interview Round 3 : 1. Write C++ class for the game Connect Four. [Connect Four (also known as Plot Four, Four In A Row, and Four In A Line) is a two-player board game in which the players take turns in dropping discs into a seven column grid with the objective of getting four of one's own discs in a line.] 2. Given a stack and an input string of 1234.At any point you can do anyone of the follow i. take the next input symbol and Enque. ii. you can pop as many as you can. When ever you pop an element it will be printed (you cannot pop from an empty stack) How many such permutations are possible on an input of size N? Solution: It is Nth catalan number.For a detailed solution look at question5 of Stacks and Queues 3. Give an example of one permutation that this data structure cannot generate. For Example: 1234 is input. First push all 1,2,3,4 on to stack and pop all. output will be 4321. It means that this data structure can generate 4321. Solution: 3124 for a detailed solution please look at question7 of the post Stacks and Queues 4. Question 2 was pretty easy right? Now do again the same question but the data structure this time around is a Deque. Input: 12345 Data Structure: Deque ( Doubly Que ) Note: Deque is a data structure into which you can do enque and deque from both sides.Some thing like this __________________________________ enque —> <—-enque dequeue dequeue __________________________________ Solution: It is N!. Guess why?(no constraints).Convince yourself by proving that every permutation can be generated by a set of valid operations.This prove can be using the principle of strong mathematical induction.So for this specific input the answer is 120. 5. Classic Egg Puzzle Problem You are given 2 eggs.You have access to a 100-store building. Eggs can be very hard or very fragile means it may break if dropped from the first floor or may not even break if dropped from 100 th floor.Both eggs are identical.You need to figure out the highest floor of a 100-store building an egg can be dropped without breaking. Now the question is how many drops you need to make. You are allowed to break 2 eggs in the process. Solution: Let “d” be the number of drops required to find out the max floor.we need to get the value of d. let’s say if we drop from height d then if it breaks then we have d-1 floors to check for the second egg . so max of “d” drops, so first we will drop it from height “d” if it doesn’t break at a height “d” then we are left with “d-1″ drops,so lets drop it from d + ‘d-2′ + 1 height suppose if it break there then you are left with ‘d-2′ drops. and so on until that sum is less than 100, it’s like a linear search, in equations, (1+(d-1))+ (1+(d-2)) + …. >= 100 here we need to find out d from the above equation d(d + 1)/2 >= 100 from above d is 14 Google Interview Round 4 : 1. Given n non overlapping intervals and an element. Find the interval into which this element falls. Solution: we can extend binary search to intervals.(Assuming the intervals are sorted) consider interval [a,b]. if (a-x)(b-x) a element can be present only in the intervals to its right. so select the middle interval among them to it’s right and repeat the procedure. else element can be present only in the intervals to its left. so select the middle interval among them to it’s left and repeat the procedure. The complexity of this problem is log(N) where N is the number of sorted non-overlapping intervals. 2. Worst case is take all intervals one at a time and see whether the element lies in the interval or not.It will take O(n). So please give a solution that will do better than O(n). 3. Now given that the n intervals are overlapping then how do you solve? The interviewer was concentrating more on the complexities (running, memory ..) Solution: If the above intervals are overlapping ,then they can be merged in O(N) and then the exact intervals can be resolved later.Otherwise ,we can identify one correct interval and then linear search on its left and right neighbourhood to find the other solutions. 4. Write code for Random Sort? Algorithm is explained: Given an input array of size n. Random sort is sampling a new array from the given array and check whether the sampled array is sorted or not. If sorted return else sample again. The stress was on the code. Google Interview Round 5: This is Manager Round 1. Tell me an achievement that you have done in your non academics 2. Tell me about one of your project 3. Take a feature of C++ and tell me how you have implemented it in one of your project 4. By taking one of your project as example tell me how you have taken care of software engineering where you would have handled more data 5. There is a routine already written to find the subtraction of two sets ( set A - set B) . Write test cases for testing it.Tell me how do you test the test cases you have written? 6. There is a printed book. The page numbers are not printed. Now the printing of page numbers is being done separately. If the total number of digits printed is 1095 then how many pages does the book have? Solution: Well people,this is too simple a question ..so do give it a try..(no malice,too simple).Any queries then do shoot a comment.
Tags: , , , , | Posted by Admin on 11/24/2008 9:44 AM | Comments (20)
A little more than two weeks ago I had an on-site interview at Google in Mountain View, California! The job interview with Google was an interesting experience and I want to tell you about it. (I got the green light from Google to publish this article). The position I was interviewing for was a Google SRE. SRE stands for Site Reliability Engineering. Site reliability engineers (SREs) are both software engineers and systems administrators, responsible for Google’s production services from end-to-end. There were eight separate interviews total. The first three were over the phone (phone interviews) and the remaining five were on-site. The first interview was with the recruiter and was not very technical but the other seven were very technical. All interviews went very well but I just got to know that I did not get hired! Oh well… I personally think that I did really well. I answered all the questions but it seems they were not satisfied! The recruiter told me that I did not have enough experience to work in a mission critical team and that I should get more experience and try again. Here is how it all happened. Shortly after I published the “Code Reuse in Google Chrome” post I was contacted by a recruiter at Google. The email said: I recruit top notch Software Engineering talent at Google. I recently came across your name as a possible world class Engineer and am intrigued to know more about you. I promise to exchange some detailed info about us as well. Interested to hear more? Want to be an impact player at Google? Then please respond with a current (English) copy of your resume and I’ll be happy to call you and discuss. At first I thought I would be applying for a software developer position, but after we went through my skillset, the recruiter concluded that I would better fit as an SRE. I agreed with him. This seemed like a perfect position for me. I love systems administration as much as I love programming. First Interview (phone) The first interview was on the 10th of September with the recruiter. He explained the Google recruitment process to me and we went through my skill set. I had to rank myself from 0 - 10 in a bunch of areas such as C programming, C++ programming, Python programming, networking, algorithms and data structures, distributed systems, Linux systems administration, and others. As I said, based on my answers we concluded that SRE was the best position for me. An SRE basically has to know everything: algorithms, data structures, programming, networking, distributed systems, scalable architecture, troubleshooting. It’s a great hacker position! After these questions he asked me where I would like to work - Google office in Ireland, Zurich, Mountain View or Australia. I said Mountain View as it’s the Googleplex! He explained that if the interviews went OK, I’d have to get an H-1B visa that allows non-US citizens to work in the US. The second half of the interview had some basic technical questions, just to make sure I knew something. The questions were about Linux systems administration, algorithms, computer architecture and C programming. I can’t go into any details because I signed a non-disclosure agreement and my recruiter kindly asked me not to post the questions! I made some factual mistakes but he was satisfied and we scheduled the next phone interview. He warned me that it will be very technical and I should do really good preps. I asked him to give me a plenty of time for the preparation and we scheduled the next interview on 22nd of September. He also told me that each phone interview is going to be 45 minutes to 1 hour long. I started preparing like crazy. I found three presentations on what SRE is all about: Engineering Reliability into Web Sites: Google SRE Google SRE: That Couldn’t Happen to US… Could It? Google SRE: Chasing Uptime Then I found all the other blog posts about interviews and interview questions at Google: Corey Trager’s Google Interview Rod Hilton’s Google Interview Ben Watson’s Google Interview Shaun Boyd’s Google Interview How I Blew My Google Interview by Henry Blodget Get That Job at Google by Steve Yegge Tales from the Google’s interview room Google Interview Questions Google Interview Questions — Fun Brain Teasers! And some others… I printed and read four Google research papers: The Google File System Bigtable: A Distributed Storage System for Structured Data MapReduce: Simplified Data Processing on Large Clusters and just for fun Failure Trends in a Large Disk Drive Population I also went through several books: the best book on basics of networking “TCP/IP Illustrated“ the best book on algorithms “MIT’s Introduction to Algorithms” + my notes on algorithms a book on scalability “Building Scalable Web Sites“ As I did not know if I might get specific programming language questions, I went through a few tens of receipts in C++ Cookbook, Python Cookbook, and Perl Cookbook. Second Interview (phone) The second phone interview was with an engineer from Google. He worked on the Ads team which is responsible for running AdSense, AdWords and other advertisement stuff. The interview was very technical and started with an algorithmic problem which was too large to fit in computer memory. I had to tell him precisely how I would get around this problem and what data structures and algorithms I would use. He also asked me to think out loudly. The interview continued with questions about data structures, DNS, TCP protocol, a security vulnerability associated with TCP, networking in general, and Google itself. Sorry, but I can’t disclose anything in more details. After the interview the engineer had to write feedback on me. It was positive and I could move on with the interviews. Third Interview (phone) I gave myself more time to prepare and the third interview was on the 1st of October. It was with an engineer from the Google traffic team. In this interview I had a very simple programming question and I had to do coding over phone. I was free to choose the language and I chose Perl as it is my most favorite programming language. It was impossible to dictate Perl syntax over phone “for my dollar sign element open paren at data close paren open curly brace … close curly brace” so I submitted my Perl program over the email. Then the same problem was taken to the next level, what if the data we are working on is gigabytes in size, terabytes in size. How would my program/solution change? Finally I had a question about DNS again, then HTTP protocol, routing, and TCP data transfer. The feedback was positive and I could prepare for the on-site interviews. In my conversation with my recruiter I got to know that there will be five on-site interviews, each exactly 45 minutes long. One on my previous work experience, one on algorithms and data structures, one on troubleshooting and networking, and two on software development with focus on C and C++. My recruiter suggested that I read a few more documents: Google C++ Style Guide Web Search for a Planet: The Google Cluster Architecture Algorithm Tutorials on TopCoder I flew out to USA on 24th of October at 1pm from Latvia and arrived in California at 8pm. The flight was actually 14 hours but it was nice that I flew in the same direction as the time flows. This saved me 7 hours. The on-site interview was scheduled on 27th of October so I had a good rest before the interview. It was also nice that Google paid for my trip, hotel, cab and food. I had zero expenses! Fourth Interview (on-site) The fourth interview was finally at Googleplex! At 10am I met my recruiter and we had a 15 minute discussion about the interviews. He told me I would have two interviews now, then one of Google engineers would take me to lunch to one of Google’s restaurants and then I would have three other interviews. At 10:15am the first on-site interview began. It was about my previous job experience. I have had a lot of job experience in the past and I decided to tell about a physical security notification system that I coded in C on Linux a few years ago. The system would receive messages through the serial port and send out emails and SMS’es. In the last minutes of the interview he asked me some basic Unix filesystem questions. In all the on-site interviews I was writing and drawing on two big whiteboards. Fun! Fifth Interview (on-site) The fifth interview began at 11am. It was a coding session and began with a trick question and not a real coding problem. I was asked to implement the solution in C. The solution was a mathematical expression that was a one-line return statement. No big coding there. Then I was asked to write an implementation of a very well known data structure. While coding I made a mistake and forgot to initialize part of a data structure that I had malloc()’ed! The program would have segfault’ed in real life and I would have noticed the error, but Google engineers are very serious about it! If you have an interview don’t ever make any mistakes! After this interview I was taken to lunch by the engineer who interviewed me on the second (phone) interview. She told me she was working at Google for two years and was very happy about it. We went to Asian food restaurant (located in Googleplex) and I had all kinds of delicious foods. All free! Then she showed me around Googleplex. It was all amazing. Free drinks and candy everywhere, some arcade machines, a beach volleyball outside, and many other surprising things. Sixth Interview (on-site) The sixth interview began at 12:45pm. It was a troubleshooting and networking interview. The interviewer drew a network diagram on the whiteboard and had imagined a problem in there. I had to ask a bunch of specific networking questions to locate the problem. He was satisfied and in the last few minutes of the interview he asked me some specific networking device questions. Seventh Interview (on-site) The seventh interview began at 1:30pm. It was a coding session. I was asked to implement a simple string manipulation subroutine in either C or C++. I chose C. Unfortunately I made an off-by-one mistake there - the most common programming mistake in the history of mankind. The whole interview focused on this one problem. Eighth Interview (on-site) The last, eight, interview began at 2:15pm. It was algorithms and data structures interview. The problem presented here was similar to the problem in the 2nd interview. Not only was it a problem too large to fit in computer memory but it also was distributed. So I had to do all kinds of trickery to solve it. The interview was very free-style and we talked back and forth about the problem. I arrived at the correct solution near the end of the interview and he said that not many candidates get that far in the solution. I was happy. After the interview the engineer escorted me out to the lobby and I took a cab back to my hotel. That’s it! FIN Overall the Google interviews were pure fun for me. The interview questions were technical but not very challenging or difficult. Thanks for the opportunity Google! Original story
Tags: | Posted by Admin on 2/16/2007 11:38 AM | Comments (0)
This pleasant surprise was waiting for me in my inbox when I came back from class earlier tonight: Tyler: Your first interview went well! We will now begin the process of matching your experience and preferences with groups within Google who are looking for interns this summer. Once we find a match, we’ll set up your second phone interview. I’m looking forward to it. Now that I’ve gotten past the initial screening, I feel like I can relax a little bit. Hopefully the second interview will be less of a quiz and more of a way for my potential coworkers to determine if I would be a good fit on their project. The first interview went really well. I got asked about my previous internships, then I was grilled on data structures and Big-O analysis. The culminating task was solving a design problem based on the one of the data structures we had just discussed in detail. My first solution was inefficient, but after a bit of prodding I had a stroke of genius and came up with one of the two optimal solutions. My advice to anyone who has a phone interview with Google is to know your data structures. Know them well. If it has been a while since you took a data structures class, review them. I was really lucky that the stuff I reviewed was exactly what I was asked about. The questions aren’t simple, but having a good core understanding of data structures and other computer science fundamentals will help immensely. And now I will cross my fingers while I wait for next week to arrive!