Journey to a Dream named Google - Shwetabh Asthana

Google!!  Hearing this name gives goosebumps. Why not? It has such a big name and reputation that everyone aspires to land at Google. You may have seen most of the people bragging about going into Google's software division, but Google has its own hardware division, and very few could make to it. Among us, we have our senior Shwetabh Asthana, who has worked hard and successfully landed a job at Google. He is currently working as a Hardware Engineer at Google, India.

He is an inspiration to many of us. So, we asked him to share his experience and guide those students who aspire to go to Google, mainly into the hardware division. So next, you will read his experience and journey to Google.


It all began with the second year of college; probably after Avishkar (NIT Allahabad Tech Fest), a question enters my mind,  passively? the golden question of core vs. software for an ECE student. Just to give some background - I, like most of you, had a background into programming (really loved it ๐Ÿ˜ƒ) before entering B.Tech and just wanted to get into CSE, but destiny had some other plans. I spent my first 3 semesters doing computer club religiously (Kudos to seniors arranging computer clubs for first years in rented buildings outside of college in the absence of approval of CC (NIT A Computer Club)๐Ÿ˜Š) and doing SPOJ more than Facebook! 4th semester is the time when you really want to be decisive on domains because you have internship interviews knocking within the next few months. I changed my gears totally towards hardware and started preparing for it - from enrolling myself into hardware-specific summer courses and making sure that I finish project(s) in them to reading about hardware companies and their interviews process and calibrating my preparations towards the hardware. My decision was purely out of the gut, some likeness towards a 4th sem course (digital electronics), and to some extent, my Avishkar results, which helped me understand that I was not that bad in my core subjects as much as I thought RELATIVELY! ).

My summer preparation did help me in getting through the written rounds. Still, my interviews went terrible just because of a lack of technical knowledge and nothing else which forced me to re-contemplate if changing gears into hardware was even a wise decision or not. I did not look back from here and started preparing myself for placements in core, ditching all other internship opportunities.

Preparation

Understanding All options

Having cleared my head around hardware primarily, I listed down the areas I needed to brush up after some intensive google-ing and going through placement blogs. Preparing your safety options is very human, so please before you step into placements assume a worst-case and explore fallbacks - My fallback options over here were primarily GATE and direct Ph.D. enrollments for BTech grads offered by a few institutions. So I was pretty clear-headed on how I wanted to approach the season. Eliminate self-doubts and understand that reversing mid of placement season to a different domain is do-able but difficult.

Communication Skills

You just need to be good enough to express yourself - verbal as well as written. Unlike technical courses that you can learn over a month or two, this is a relatively long term process so just make sure to put in extra effort if you find this not at par.

Resume

It did not take much time for me because I kept on adding to and improving my resume over time from 2nd year. There is no perfect resume but this video gives great guidance on how close one can get to making a good resume. Don’t lie (No achievements are fine ๐Ÿ˜€), highlight stuff you want the interviewer to pay attention to, don’t use acronyms unless they’re very well known like B.Tech and explain your projects in a line or a two (put up links into resume if you would want to give a detailed explanation but don’t spill out everything on a resume). 

As an interviewer, I use a candidate's resume to start conversations on projects, understand their interests and then start the interview putting the resume aside.

Written Tests

There is no standard format to the written round a hardware company takes - a few companies like NVIDIA, NxP prefer taking a subjective written test where you would need to solve questions, and others prefer taking a written round with objective questions for core, aptitude and software. So I started my preparations accordingly - 

  • Aptitude- Understanding the variety of questions and mastering through practice just works fine. Take a time-bound test and practice of 10-15minutes per day should be more than sufficient. I just used to understand concepts and practice on indiabix.com (No major time spent)

  • Software- This might be tough for guys not into software at all but believe me you would need to know the basics of programming even for a job in hardware so better start brushing some basic concepts. The questions are average compared to those asked by software domain counterpart companies. I had some basic knowledge into DSA and OOPs and questions were mostly theoretical or compilation/execution error or output type. Please note that contrary to practicing competitive programming you need to focus on theory, concepts and standard algorithms over here and you should be able to ace it.

  • Core:  Subjective questions in companies are usually from 
    • Digital problem statements
      • FSM (high chances), counters, Verilog coding of basic digital counters/logic, boolean, ADC and DAC are very common questions as well. 
      • Setup-hold (max freq of circuit or if the delay of a particular element in the design to hit a max-freq or hold requirement)  
    • Analog problem statements
      • Circuits - R-L-C network simplification, Transient response
      • Devices- CMOS logic designing of gates/circuits, MOSFET circuits, diodes
    • Computer ARCH - general computer arch topics like cache, pipelining, 8085 specific questions, assembly coding

  • Objective -(Mostly) Gate format questions - both numerical and theoretical covering subjects as mentioned in the upcoming section.

Technical Interviews

Subjects - 
  1. Digital Electronics - In addition to reading Morris-Mano remember to challenge yourself with good FSM questions and sequential circuits.
  2. Analog Electronics - The trickiest of all. Remember not everything is important. Knowing a MOSFET, CMOS thoroughly should be the priority. You should be able to design CMOS schematics of digital expressions as well as answer theoretical questions on the same. You need to appreciate concepts of area, power (dynamic and leakage), threshold voltage, speed, etc while reading all this. A good idea would be to take up selective NPTEL lectures.
  3. Computer Architecture - Very relevant to your profile once you work as a hardware engineer, you can expect some decent questions from "comp arch" because interviewers are generally exposed to this through their careers. Pipelining, FIFO, memory organization, cache eviction algos, hit-miss ratio, performance etc are some must-know things.
  4. Circuits - Simple R-L-C circuits simplification - practice basic network theory questions.
  5. Coding
    • Hardware Description Language - Verilog preferred. Expectation to be able to simulate mid complex sequential circuits.
    • Assembly Coding - Generally not expected but a good to have (8085 assembly should be fine)
    • Software Coding - This is generally not asked, except for Google.
  6. Communication (Optional for VLSI) - Basics of 2G/3G/4G and basics of digital communication should be ok. Never a focus area for typical VLSI profiles.

HR Interviews

Pretty repetitive questions you would find floating around - try to be genuine and answer quoting your experiences.

Google's Interview (Applicable to all domains)

Google is known for conducting some great interviews and this holds as much to hardware as any other team within Google. The general format of hiring remains similar which is as below - 
  • Shortlisting at Google for a fresh grad hire can be based either on a resume or a written test. Generally, for college Google goes on-campus it is based on written test + resume weighted proportionally and for off-campus recruitments, it is (mostly) resume based.
  • Interviews - All Google Interviews are done by technical interviews. There will be no HR interview whatsoever off-campus or on-campus. Some details -
    • Typically 4 rounds of technical interviews (3 if it is a campus visit) with a duration of 45 min each, each expected to cover particular area(s) of interest (Please feel free to ask for areas from your recruiter).
    • Googleyness Round” - To test everything except technical๐Ÿ˜„ This is as important as any other technical round and you can be a NO-HIRE just because you failed this round. This is something to assess your responses in highly realistic scenarios and understanding the directions you think. Don’t confuse it with an HR interview - This would be a technical interviewer asking some scenarios or questions through their experience of working at Google to see if you hit the bar. Google does not do an HR interview for a technical role.

Hardware Engg  Interviews

Every round would be a discussion of concepts from one of the subjects as mentioned previously, each round with a specific focus area to ask questions from.

  • One of the rounds would be coding/scripting as well - I was asked two codes in a language of my choice and to subsequently optimize the code to a better complexity. 
  • Puzzles/Brain Teasers - Strictly banned in a Google interview and would not be asked. 
  • Open-Ended Questions - Yes, please stress and analyze such questions and state answers with assumptions or seek clarity. For e.g. design a low-pass filter. The catch here is that you should question the interviewer back on if the filter is expected to be active or passive, or if there was a particular cutoff frequency etc. Similarly on asking to design a mod-4 counter, ask the interviewer if the expectation is for a sync or async counter or if the flops are expected with set/reset pins etc. This helps give a direction to the interview.

Myths Regarding Google Interviews

  1. 10 rounds of interviews? No, at most levels typically 5 interviews (with an extension of 1 or 2 rounds in case the hiring decision remains inconclusive). 
  2. Very long process? Sometimes but for college grad recruitments it is relatively fast ( ~1week)
  3. Advanced topics/rocket sciences in interviews - No! Google studies college curriculum and sets expectations accordingly so do not waste your time in reading an advanced subject rather polish your basics and subjects mentioned on top. Basic questions are the hardest to answer and explain.

Tips

  1. Utilize your college fests to uncover your interests and clear your doubts on core vs software. With the great culture college comes with - leverage the help of your seniors to clear confusions and collaborate for projects. You do not need an internship at XYZ company to have a good project!
  2. Please attend computer clubs or electronic society classes to clear your head around your interests and also to learn from experiences of your seniors - Blogs get outdated but this would help you keep yourself updated with the latest interview trends. 
  3. It is human to fail in interviews but that only adds to the experience, make sure you realize what went bad and patch it up. I did fail in an internship interview with Qualcomm and was advised to not try into the core by an interviewer but you understand your interests/potential more than an interviewer who had some 45 mins of discussion with you. I ended up cracking the same company in my final year :-)
  4. Using a pen-paper/whiteboard is always a better approach than just talking. Conveying your thoughts on questions is important as well - speak as you think and your interviewer might be able to give you hints and benefit of doubt. 
  5. You would be surprised to know the amount of detail an interviewer captures at Google. So keep your calm if the interviewer is just typing through the course of the interview or not reflecting agreements/disagreements on your answers. Rest assured they are listening to every detail you are saying.

Careers In Hardware

Hardware industry is changing every day and advancing to areas once thought to be impossible. India is known for a talent hub for hardware engineers and Google setting up a design center in Bangalore is a testimony to the same fact. More and more companies wanting to make their own custom Silicon (including the software giants like Facebook, Microsoft, and Amazon) is indicative of how this industry is expected to scale. The good thing is that you do not really need to do an MS and join hardware companies outside India because the opportunities and scope of work in India is as good as outside.

How to apply to Google

Google rolls out hardware-specific fresh grad applications at https://careers.google.com/hardware/ 

Google seeks applications for both interns as well as full-time hardware engineers. You can directly apply at the link with the relevant job posting or reach out to a university-recruiter on Linkedin or apply through a referral. Out of the three ways, a referral works the best for any job application at Google and makes SURE that your resume will be looked at by staffing teams which increases your chances of securing an interview.

Below are the typical timelines around which you should check the careers portal - 
  1. Internship (3rd-year B.Tech/4th year Dual degree or 1st year Masters) - September-October
  2. Full-Time (Final year of graduation or PG): December-January
I hope you would have got an insight on how to prepare for hardware-oriented companies, mainly Google Hardware. If you have any doubts, comment on the post.

Thanks for reading!! and All the Best

Comments