Primary Content: Home

Interview Preparation Notes

Disclaimer: I work at Google. The opinions stated here are my own, not necessarily those of my company.

In September 2014, I interviewed with a few major large-scale software companies for an engineering position and managed to get multiple offers. After that some of my friends asked me about interview preparations tips and strategies. I decided to compile those into a clean list and post it here. I hope it would be helpful for others as well.

This is by no means a complete list. It consists mostly of my notes prioritized based on my needs at that time. For context, I was working on an operating systems project and I was looking for a new project related to distributed systems.

Technical interviews usually have three components:

  1. Algorithm & Data Structure Questions

    You need to be able to answer these questions in about 15 minutes each, with a working code. In other words, interviewers typically expect you to solve 2-3 of these in a 45-60 minute interview session.

    My preparation strategy was to brush up (read) and practice (solve) as much as possible. There are a few resources to help:

    Read:

    Solve:

    • Cracking the Coding Interview – Try to solve as many questions as possible. The real value of this book is the questions rather than the answers. Some questions (especially the ones in the latter sections) are complicated for an interview setting, skip them if they become time-consuming.
    • CareerCup – I suggest solving algorithm questions especially the ones tagged Google, Microsoft, Amazon, Facebook and LinkedIn first. Once you are comfortable enough start timing your solutions and try to solve them in 15 minutes.
    • Do some online coding exercises. This will be especially helpful for phone interviews.

    Do not just go over the problems and solve them mentally. Use pen and paper, talk through your problem and write a real working solution.

  2. System Design

    These are generic questions about designing a system. Usually a big system that needs to scale. These questions typically take 1 full interview session. Actual questions might be vaguely related to the real systems of that company. It is worthwhile think/read about their problems and scale. You can get some insight if you read their blog (e.g. New Tweets per second record, and how!) .

  3. Communication

    This is where you will be asked to talk about an old project of yours. In some places it will be one full interview session. And in other places each interviewer will take some time to ask about old projects. There is also a behavioral aspect to it to. Interviewers would like to see how excited and confident you are about your earlier work.

    You will usually have freedom to pick one of your projects and talk about it. Because of that it is easier to prepare for it. Think about one or two of your projects and explain it to someone else with a technical background in about 15 minutes.

That is all. You can find lots of useful general, non-technical tips in other places. Go ahead and read about them in your down time. I have a few of mine:

  • Most importantly, take your interviews seriously and prepare well before you go.
  • Right before the interview solve a simple question on paper. This is to get yourself into problem solving mode. For me this was something like writing down a working quick sort in the parking lot before I walked into the building.
  • Be physically ready as well as mentally. I stayed physically active during my preparation, mostly doing outdoor activities. It helped me relax and I also had lots of energy when I was ready to study.

Once again, this is mostly a partial list of resources to help you and does not necessarily reflect the interview process at my current company. Hope you will find a project that you are excited about. Good luck!

Quietness and Productivity

I used to work in an open office for years. I “owned” a small part of a big table. I had a few small drawers and enough space for two monitors and a notebook. People developed their on methods for privacy. I had a huge bamboo covering me on the side.

My team was located near a break room. It was designed like a nice coffee shop, complete with two huge TVs, a few game consoles, satellite TV, fresh fruits and milk and so on. It was a fun place to hang around and catch up with my colleagues.  For working not so much. It used to get loud and noisy.

Phone calls were another hassle. Engineers, as nice people were trying to not disturb others. They were hesitant to take any calls. I knew a few who disconnected their phones just for that. They did not want it to ring. We had phone booths for private conversations. They were indeed quite nice small offices. Still, there were lots of phone conversations around us. It was unavoidable.

My dream was to be able to work in quiet place. And it happened. I got a new job and a private office with it. It is huge, with a big desk and a door I can close. It is quite. I may be biased but I feel like I am more productive.

However it is not a rose garden either. Now I feel like I am lacking on the conversation.  Signal to noise ratio in an open office is very low however there is still some amount of signal in there. You hear about people, and their daily routine as much as they are willing to share with you. It is a bonding process.

And on the physical side I sometimes need a comfort noise. I tried listening to music. It makes me tired after about half an hour. Now I am using a white noise app called Coffitivity. It makes you feel like you are working from a coffee shop. It seems to be working for me for now but we will see how it works out in the long run.

Maybe one day someone will come with a great way of mixing these two types of working environments. Until then I will keep my door open.

Seasons of Haiku

cover

shadows of the night
  follows you into quiet
    beg for a dim light

I published my first e-book over the weekend. It took about four weekends to get everything together. This is after we had all the content ready.

It contains more than 500 hand picked haikus categorized into seasons based on their emotional reflections.

Available for sale on Kindle and on Nook.