1 of 14

Interviewing @ Tech Companies

Finding a Job

Getting Hired

It’s about making your own luck.

2 of 14

Overview

  • Prepare
  • Live your passion
  • Network
  • Numbers game
  • Be the person they want on their team

3 of 14

Interview Process

Sourcing:

  • Lots of resumes. AI filtering. Keywords.

Screening:

  • HR and/or short phone screen with person

Day of Interview:

  • Starts with HR, incomplete agenda
  • Junior people first (generally)
  • Room(s), lunch, break(s), dinner
  • Final Decider at the end, perhaps in sales mode

My interview script at Microsoft:

  • introductions, set comfortable tone
  • review resume, Q&A
  • Scenario based
  • Coding (difficulty depends), progression questions
  • Questions for me

4 of 14

Getting in the Door

  • Submitting resume, reviewed by HR (often non-technical)
  • No longer do Internal Referrals provide more opportunities
  • Minorities, especially women, are given greater consideration to move to the next step. Hiring bar is not compromised.
  • Initial Screen with HR on the phone
  • Tech Screen with developer on the phone, and also online screen sharing device. Some companies do multiple phone interviews. 30-60 minutes, depending on the company/team.

5 of 14

The interview loop

  • All day interview loop. 2-7 interviewers. 2 means you did lousy. 6 means the company has a long list… too many.
  • Lunch interviews are very common.
  • The last interviewer is special. AsApp, Hiring manager. May transition to “sales mode” because the interview is a two-way process.
  • Each interview may have specific instructions on what to ask about. Ex: Passion for Technical, intellectual horsepower, algorithms & data structures, design, conflict management, accountability, independence, communication, customer focus, teamwork, etc.
  • Offers seldom happen at the end of the day. Expect 1-4 weeks to pass, sometime longer.

6 of 14

Detailing an Interview: questions and styles

  • Questions about resume
  • Situational questions: “Tell me about…”
  • Role playing questions (not common, but can be very tough)
  • Coding questions
  • Time for interviewee to ask questions

7 of 14

The interviewer

  • Interviewers are not always good. They are people too. They make mistakes.
  • Often there are junior interviewers on the team who may be very poor at interviewing. They are learning to interview.
  • On occasion an interviewer may appear to have something to prove. They want to show that they’re incredibly smart. It’s almost like payback time.
  • Some interviewers ask bad questions which have a specific right/wrong answer.
  • Good interviewers facilitate a fluid conversation, tied together, open-ended, and allow you to show off the best that you have.
  • Interviewers look for red flags: not a team player, hard to work with (communication, attitude), not honest in self-appraisal, doesn’t know what he/she claims to know.

8 of 14

The interviewer’s real question

  • The only question an interviewer wants answered is, “should I hire you.” But of course, one doesn’t ask that. However, I have asked, “why would I hire you over someone else? What makes you a better developer?”
  • Can’t ask, “are you accountable?” instead will ask something like, “tell me about a time where you were given a task that couldn’t be given on time.”
  • I personally look for: accountability & passion are indicators of how hard they will work. Raw talent indicates an upper bound.

9 of 14

Sample Resumes

  • Hired Intern
  • Interviewed

10 of 14

Tips on resumes

  • Be ready to defend every last statement on the resume
  • Tell the story you want to tell: why you should be hired
  • Acronyms help surface your resume to crawlers & hiring managers during “sourcing”
  • Don’t undersell yourself either!
  • Describe projects. detail technology, initiatives. differentiate personal vs school projects.

11 of 14

Interview Preparation

  • practice coding on a white board
  • practice answering common questions
  • know the company and especially the product you’re interviewing for
  • Have questions prepared. Ask about product technology, what they like about the company, what is the hardest part about the job for them, get their opinion on something that interest you. Steer away from things like: how much vacation do I get? What is my pay? Is it okay if I come in late?
  • Have a sample project completed to discuss and/or show off.

12 of 14

Interviewing Tips

  • Be ‘mostly’ honest. Need to spin things to show desire to grow. Need to show that you’re reflective, humble and learning.
    • What is your greatest weakness?
    • Tell me about a time that you failed?
  • Show enthusiasm for the product. Be energetic and interested.
  • Ask for clarification. Making assumptions can be bad.
  • Think out loud during the coding question.
    • Simplification, edge case testing, exception handling, optimized vs brute force
    • Psuedo-code, know your approach & algorithm before coding
  • Asking for help may or may not be okay. Depends on interviewer. In general, if you need it, ask for it.
  • Know that the answer to the question, “What would you do when …”
    • Answer can include going to others for help/guidance. Interviewers sometimes look to see how you would leverage your team, to know that you wouldn’t rat-hole on problem and waste time.

13 of 14

Sample coding questions

  • Count the number of ways to make change for a dollar
  • Implement the parallel programming API for Reader/Writer locks
  • Calculate the angle between the hour & minute hands when given the time
  • Find the largest palindrome in a string
  • Find the longest monotonically increasing sequence in an array
  • http://javarevisited.blogspot.com/2011/06/top-programming-interview-questions.html

14 of 14

Other sample coding questions

  • given two arrays A and B, find elements in one but not the other
  • Given two singly linked lists, find if they have at least one node in common)
  • finding X in an m by n array of numbers where each row and each col is in increasing order
  • Given an array of string, find if the given word exists in it or not. And you don't know the length of the array and can't build hash-table.
  • Write a function that reverse the order of words in a string. Such as: ‘Your name is Yuan.’ To ‘Yuan. is name Your’. Keeping in mind the Time/Space efficiency and also write code for this.
  • Given a “binary 2D array” count the number of blobs/entities.
  • Given a tree, output the nodes in a left to right, top-down (as one might read a book) order.
  • find pairs of integers in a an array that add to a given sum
  • In an array of size N which contains all elements from 1 - (N-1) and one duplicated value, find the duplicated value. It can be solved in linear time and constant space.
  • Turn an integer 0x0001FFFF into a string "000.001.255.255".
  • Take a string "JERRY XIE" and return me the first unique character, here J.�Now repeat the exercise, but you're only allowed to traverse the data once.�Now repeat the exercise, but consider the input data to be an infinite stream.�Now repeat again, throwing away your assumptions that we're dealing with ASCII chars. Instead consider that we're dealing with the full 2^22 Unicode space.
  • print out all possible combinations of letters that can be generated for a phone number from a standard phone keypad
  • Find the location where a sorted and rotated array starts. (e.g.  9 12 15 20 2 5 6)