Interviews

From Foreignliving

Revision as of 00:57, 14 February 2007 by Admin (Talk | contribs)

Please note that the questions and answers have been contributed by volunteers and are not guaranteed to be optimal or correct, but they will give you insight about what to expect and serve as a useful starting point. Check the Links section at the end for websites that contain sample questions.

When the sections below grow too large, they should be transferred to independent pages. One logical partition is to separate interview tips and sample interview questions and answers.

Contents

General Interview Tips

(someone should take the time and re-order the following in order of relevance or importance)

  • Prepare a 30-second introduction. The first question you'll get in most cases is "Tell me about yourself."
  • Be relaxed, but confident and professional in your behavior. Avoid using words like "um..." and "like..."
  • Keep a check on non-verbal actions. Some people get carried away with hand waving and gestures and don't notice it due to nervousness.
  • If the dress code is not specified, be conservative and wear a business suit, especially if you are in the US and the interview is for a full-time position. Otherwise a business-suit is not needed when the dress code is specified as business casual or casual.
  • Avoid close-ended answers like just a "yes" or "no".
  • Be formal when using written communication with the hiring manager. e.g. don't start emails with "Hey, "
  • Know what kind of interview you're in for. Is it a panel interview? A one-on-one interview? Mentally prepare yourself for it ahead of time.
  • Know your interviewer, his/her position/role/responsibilities. Is it the PM, or the director, or the sysadmin.
  • Know the company from a business and technical perspective. You can get questions like "So what do you know about our company..." to see how enthusiastic the candidate is and how much research he has done on the company. This kind of research is easy to do, most company have this info on their websites.
  • If you plan to send a thank-you letter as a follow-up (see job search letters), then it is ok to do so by email. Don't wait to send by post, decisions are made quickly.
  • Hone your analytic and problem-solving skills
  • Ask relevant questions

Types of Questions to Expect

The types of questions to expect can be classified according to various criteria. The following is one such classification:

Initial questions

The first few questions will almost always ask you to comment about yourself or about something that you have done, in order to get to know you better. Anticipate these questions and prepare responses before-hand. The aim of these questions is to solicit a response from you and obtain your self-assessment. Answer them positively and confidently, don't be tentative.

For example:

  • What role did you play in this project <some project from your resume>. When answering, be careful between the use of "I" and "we", because you want to highlight your contribution.
  • Tell me about ... a project when someone didn't do their share of the work, or some experience that didn't go well. A follow-up to this is how did you resolve that problem.
  • Tell me about ... when a deadline was approaching and ....
  • What do you consider your biggest strength, or alternatively your biggest weakness.
  • Why do you want to work for our organization, or what do you know about our organization?

Spontaneous questions

The idea behind such questions is...

  • to see how you respond to a hypothetical situation.
  • to attempt to "rattle" the candidate to see his behavior under pressure, with
    • off-the-wall questions
    • in case of multiple interviewers: rapid-fire questions
    • good cop/bad cop: two interviewers will deliberately take opposite sides and ask for your evaluation
    • out-of-the box questions: do a complete shift and ask you about something completely random, for example: what is your favorite sport, why?

For example:

  • add examples here

Wrap-up Questions

  • In case of a full-time position and a final interview, the interviewer may ask about your salary requirement or salary expectation. Make sure you've done your homework. Give an informed answer like (I know in the Austin area a Java programmer with X experience earns between A and B, and since I am just entering the job market, I would expect to be somewhere near the lower range). Try to give ranges instead of a specific amount.
  • The last few minutes are to give the interviewee an opportunity to ask questions. Don't look stupid and say you have nothing to ask. Prepare questions before-hand, but not to stump them, nor ask some obscure question, nor ask something for the heck of asking, and try to avoid asking about salary (unless there is no better place and time for that). In case you have really not done any research on the company, questions like the following can be used:
    • What in your opinion makes ABC such a great place to work?
    • What in your experience have you found to be the most challenging problem?

Technical Interview Tips

  • Technical interviews provides a means to the employer to gauge what do you really know, how much have you really done.
  • Talk through your thought process (think aloud) so that they can see how you diagnose the problem. The answer is not what's most important to them.
  • Ask for clarifications when you need to. Some interviewers will purposely give you a vague question to see if you'll just try to blindly solve it without understanding the entire problem. Make sure you understand the question before you start answering. You can say "let me make sure I understand the question..." to confirm.
  • Don't be afraid to say "I don't know" when you really don't know.
  • Refer to your resume if you get the opportunity.
  • Learn from experienced interviewees, ask them what would they do differently.

Computer Science specific advice

  • All the stuff you learn in algorithms and data structures and computer architecture really is importantMake sure binary trees, heaps, linked lists, arrays, etc are fresh in your mind. Linked lists can be double linked or singly linked
  • Be prepared to answer what the running time is and what the memory usage is. Running time can be discussed in terms of max time or average - offer both. Insertion time into a binary tree is O(n) for max time, but O(lg n) for average
  • Recursion through a linked list uses O(n) memory because of the stack
  • Talk about and work out your algorithm before coding... Even if you don't know how to do it, just start talking about your various ideas and why they wouldn't work
  • Practice ahead of time by writing code on a piece of paper, then typing it up and running it and see how you do. Practice in particular problems with string manipulation
  • Be prepared to have to code on a white board
  • Offer to do a problem either recursively or via iteration, if possible... If they don't say anything, do it via iteration, since it uses less memory
  • Check: did you do the appropriate bounds checks? Did you check if things are null? Run through a couple steps of your code to verify that it works
  • When you're supposed to come up with the classes, start with the major ones and then go into what their members and functions are. Explain if it may be appropriate - and why or why not - to make, say, an application class a subclass of a file class
  • Scan through each of the main data structures (binary tree, array, sorted array, linked list, double linked list, heap) and figure out which ones may work. Typically more than one could work, but one may be better than the others depending on the solution. For example, for the map, if you pretty much know the range of possible values for the keys, a hash table may be good. Otherwise, it may be best to use a tree. But, if you're going to be accessing elements a lot and rarely inserting elements, maybe an array would be best.

Sample questions

  • What's the difference between a binary tree and a heap? When is one better than the other?
  • What's the difference between recursion and iteration? (aka, in terms of computer architecture)
  • What's the time and memory usage for inserting something into a binary tree?
  • When are linked-lists better than arrays. Give examples.
  • Write code that inserts a node into a binary tree
  • Implement the ascii-to-integer (atoi) function
  • Write a function prime(n), that finds the nth prime number. And how would you test it?
  • If you have a bunch of points on a graph, how would you find the line which crosses through the most points? (you actually want to return the set of points though, not the line)
  • You are given a m X n maze with a given start and end position and also some blocks of unreachable cells. You are also given the start and end condition. Your job is to find the shortest path.
    • Ans: Depth or breath first search. Or convert maze in to a graph and apply Dijkstra. A follow up question could be which is better DFS or BFS. A possible answer could be that dfs is better when only the right path is deep and the others bump against dead ends quickly. If you have high branching , then BFS is better.
  • What are the classes and data structures you would use for a file system
  • What kind of data structure would you use to implement a map (not a location map... But rather a mapping from a key to a value)

Hardware specific advice

They give a simple problem. You have to solve it using a state machine. Then they ask you to make a mealy and moore (you should know the difference). Also ask you to implement using D,T or J-K Flip Flops.

Sample questions
Check http://www.softwareinterview.com for a list of sample questions. Go through as many questions as possible. Some sample questions are given below:

  • Difference between Flip flops and latches.
  • Setup hold-time, their violations and solutions.
  • Clock skew. How to avoid. How dual clock helps?
  • What do you mean by CMOS?
  • Make a 3 input NAND using CMOS.
  • Make a stick diagram of it.
  • Define Elmore delay?
  • Input that changes last should be tied closest to the output or not in CMOS? Explain?
  • What are keepers in designing latches?
  • Pulsed latches vs clock edged ones?
  • Can you have negative hold, setup...make come circuit
  • Whats are static 0 and 1 hazards..How to avoid?
  • Tell in detail about meta-stability and how to avoid it?
  • Use of buffers? How do they help in noise?
  • How can buffers reduce elmore delay?
  • Use verilog to make a MUX, Priority enocer, Decoder and memory.
  • Difference in combinational and sequential...How to make combinational and sequential in verilog?
  • They give a simple circuit and you have to make into multi level...or into NAND NOR circuit.
  • When does verilog imples latches? How to avoid them?
  • State table reduction method should be known.
  • Logical effort, stage delays, electric effort etc and their formulas
  • Basic Domino , dynamic and skewed gates. Their functionality and principles.
  • P-transistor and n-transistor and their ability to pass strong or weak 1's or 0's..
  • Make inverters, NAND gates etc that reconstruct signals rather than operating on the input..

Company Specific

Info needed: what is the typical procedure, how many interviews are held? What to expect at screening interviews, and on other on-site interivews?

Amazon

(Contributions needed)

Selection Process

  • 90 minute screening interview
  • ...

Google

How do you think orkut keeps track of your friends lists. ANS: Using graphs.

How do you find the shortest path in your friends list to some one. ANS: Use dijkstra. You actually have to tell them how dijkstra works.

Selection Process

  • Initial screening interview either at your university campus or via telephone.

Microsoft

From the Microsoft website (http://www.microsoft.com/college/int_overview.mspx):

Once your recruiter has had a chance to review your resume and gotten to know you a little better through brief chats or e-mail, they may wish to schedule an initial interview with you. These interviews are very casual and are usually held over the phone or on your campus. They are intended only to give us a general idea of your skills and interests and are usually not for specific open positions or teams.

Some things to keep in mind:

  • Be prepared to discuss your strengths, expertise, and any experience or previous jobs that appear on your resume.
  • If you're interested in one of our core technology positions-Software Design Engineer, Software Design Engineer in Test, or Program Manager-you may be asked some general problem-solving, design, or algorithm questions.
  • If your passions run to other disciplines such as sales, finance, or user assistance, be prepared to answer general questions in your field.
  • Ask your own questions. After all, this isn't just about Microsoft learning about you, but you learning about us, too.

Selection Process

  • 30 min screening interview either at your university campus or via telephone.
  • subsequent interviews take place at Microsoft campus

Bloomberg

Questions taken from Myke's page. Some answers on this page

Phone Screen

  1. What is dead lock, how can you make one?
  2. What is shared memory? How it works
  3. What in inline function? Which functions cannot be inlined?
  4. List the disadvantages of Multiple Inheriteance.
  5. Questions about stack and heap.

Onsite:

  1. What when a process, what is its address space lay out? (data area, stack, heap, process information, environment variables)
  2. How the OS load and execute files ( load process,set up space, to virtual memeory)
  3. How compiler works, e.g. cc hello.c
  4. What’s the difference between hello.o, hello.exe and hello.dll
  5. differences between Pipe and Socket
  6. Interprocess communications in Unix, list several that you know.
  7. What is firewall
  8. Design patterns and give examples how you use them in your work
  9. In what situation could Garbage Collection fail?
  10. strncpy vs memcpy
  11. compare Array and Linked list; compare doubly linked-list and singly-linked list
  12. List all the possible scopes for variable in C or C++, list as much as you can.
  13. What does it mean if your read from socket returns 0?
  14. When you try to pass an SQL value into a C++ string, what you should do first? (Set the string to 0 because SQL string doesn’t have null terminate)
  15. Write a function to remove spaces in a string
  16. write function to print out the third level nodes in a tree.
  17. Which language do you prefer, C# or C++?
  18. List the difference between C# and C++
  19. List the Difference between Java and C++
  20. Talking about Java Clone()
  21. XML schema and different ways to do it
  22. What do u do if you add new features to a software, what will u do before put the feature into release?
  23. If you have a directory of hundreds of files, .c, txt or other type which is left by the previous employee. What do you do with it?
  24. Why do u want to work here
  25. what do you think you can contribute if we hire you

Others

(add here)

Links

Personal tools