Showing posts with label interview. Show all posts
Showing posts with label interview. Show all posts

Friday, December 23, 2016

How to be best people for the job?

Dec. 23, 2016

Introduction

It is the second time to read the same article in 2016. So, Julia likes to take notes this time.

Share her own personal story as well. One time, Julia was in the important meeting, and then, she noticed that some one was typing on the laptop very loud, and then, she was kind of nervous. She got distracted, and lost focus on the question. Her first thought was that people are getting trained to take notes. It is like on the court.

Haha, it is a game tactics, and test your ability to stay focus, despite distractions.

Write down some notes, and do some research later.

Here is the article call hiring best people ...

Workout


Always write down the great ideas, and then, think about more later. 

1. Begin phone screens 15 minutes early, 15 minutes late, or not at all. 
Why? 
To find people who are always ready for the job. 

2. Make the interview schedule as confusing and unpredictable as possible. 
Why? 
To find people who don't need instructions. 

3. Make sure something goes wrong during the presentation Why? To see how the candidate adjusts to less-than-ideal circumstances

4. During the interview, make a ton of incorrect assumptions
Why?
To weed out candidates who are easily annoyed. 

Is he a jerk about it or does he stay cool? This is how tech companies find out what a candidate would be like to work with when the shit inevitably hits the fan. 

5. Ask the candidate to solve your own, specific problems
Just pretend we already tried that and it didn't work
Why? 
Because you really need help with this problem

6. Have the interview frequently move between different rooms
Why?
To find people who are still excited, even when they're uncomfortable

7. Ask the same questions over and over again
Now that we've talked about your experience, let's talk about  your experience. 

Why? 
To test consistency

In the tech world, predictability is a good thing. This a great tool for testing the candidate's consistency. Candidates should only be wildly inconsistent with their answers when interviewing for senior roles. 

8. Conduct dual interviews with a good cop / bad cop vibe
Why? 
To find people who can multi-task under pressure

Put the candidate in the middle of a conference room with interviewers at both ends of the table. Is the candidate able to simultaneously direct her attention to both interviewers while sufficiently answering each question at the same time? Or is she clearly exhausted and wondering why she even agreed to this interview? This is a great indicator of how the candidate will perform during a crunch. 

9. Ask a question, then start typing very loudly

Why?
 To find people who remain focused despite distractions

Ask the candidate a question. Then, as soon as he starts to answer, start typing loudly. Apologize and say you're "listening, just taking notes." You could be taking notes, or you could be writing an email to your estranged father, doesn't matter. See if the candidate can remain focused on the question or if he gets lost. This will help you find candidates who don't let tiny distractions get in the way of finishing the job. 

10. Three months later, call and offer the candidate a job she didn't apply for
Why? 
To find people who are determined


This is a great way to weed out people who obviously didn't really want the job in the first place. Does the candidate fight for the job he wanted? Does he take the offer because he thinks it's the best he can get? Or does he turn it down because he already found another job months ago? This tactic is a good way to suss that out. 

Feb. 27, 2017
Additional reading: here's Google's secret to hire the best people

Sunday, January 17, 2016

Learn Google interview process - 25 things to learn

January 9, 2016

 Introduction


Julia spent time again in 2016 to review the video. She likes to take some notes, and then, look into them. So, she remembers now that interview white board question solving should be fun, and should be creative, and should be easy to work with, since the interviewer likes to drop hints, and make you  happy and see if you can solve the problem, or learn something from you as well.


Moishe was in the hiring committee, and also taught the interview process. 

Write your own notes


Watch again in 2016, and this time Julia likes to take notes about 25 things about interview. 

1. It's Fun! 
Talk to new people, meeting new people is extremely fun, sharing expertise with people who have same knowledge - great fun. 

Learn through interview, how to interact, no matter undergraduate dropout or PH.D. 

2. Except when it isn't 
3 hours for preparation, before and after; meet the strangers 
Random things happens - 
Candidate cries, cannot figure out the solution; 
Some one just refused to write code; communication problems; People are jerks; people are refused to write code; for more senior position etc.  

3. Noisy, inaccurate, arbitrary (random, casual)

To write code on white board, it is difficult to do 
some cascading problem 
Noisy - interviewer may have a bad day, how to feel about interacting with a person

Interviewer may be in a bad day; you can get different results 
If you are in border line, you are invited to come back in 1 year - google is just generous

5 people can say no if they interview any hired person 

Google's response: 
Set the bar very high - false positive, false negative - not hire a bad person  
For example, one week, 8 of candidates,  say no to all of them 

4. Data is a blessing and a curse 
no correlation between interviewee and ... 
each interviewer give 1 - 4, 4 definitively hire, 2.0 - 3.0 range 

You can't put a number on stuff that matters

Written feedback - 3 or 4 pages narrative about the person 
Same as IQ, it is not accurate 

You can't even ask about stuff that matters - things to love work with, things about employee 

How to test it in the interview? 
Give them the question, see if she/he has passion, and their creative ability, their enthusiasm, maybe their sense of fun, pretty good habit to hack, come out the solution
Keypoint is like a criticism, not statistics. 

5. It's a team effort, and isolation hurts
One interviewer goes very deep in one area; two personalities clicks very well. 
Microsoft - hiring manager is responsible for saying yes/ no - hiring bar goes down a little bit
but Google, Hiring for Google, not for hiring for a team 

Analysis of hiring of Microsoft: 
  not be on malicious, just need to hire some one; bar will keep going down; no check on it. 
Analysis of hiring of Google: 
   very consistent. 

6. Be prepared! 
When you have to give out interview, you should be prepared. 

Having a structure will help: Google has 4-5 hiring - interview process class - basic outline 
10 minutes - 
40 minutes - question 
10 minutes - question to answer 

More nervous than interviewee - first interview to give. 

7. But, it's like jazz
unexpected thing will happen, will go side ways; 
Favorite interview questions:
Maybe they are heard; you can figure out quickly; improvise, 

Maybe they do not like to write code 
Maybe people have better ideas to write code 
Maybe people can 
Maybe be taught, interviewee may give out total out-of-surprise solution 

8. Please make mistakes!
It takes practice. calibrates, 3 people gives interviews together. 
people did more than 25 interviews. 

9. Every interview is a conversation (with goals) 
It is not a test, or something like putting through and see if the interviewee can survive

Conversation has goals, which is ok; Do not just stress the interviewer out; 

Primary goal: 
Happy candidate 
Make them happy
Do not get something from the candidate, but make them feel not good. 
It does not take much to gain notoriety - people blog about the bad interview process 

Interview is stressful Survey: Do you have good experience of Google interview? 

Other goal: Answer "Would I love to work with this person?"
Even the people is not in the same team, do you like to work with him; contribute the company, can he teach you, can they be taught by you, can he inspire you etc. ? Idea world, work with the people smart than me. You want to keep raising the bar.

Is this person having qualities, and then people love to work with? Can they contribute to the company

Other goal: give answer to "Would you love to work at this company?"
Talk about culture, how excited to work here.

Feel real Humanity sense during the interview while I am working here. 

Good interviewers are generous - Ask good questions when interview goes on. Honest to candidate, work hard on candidate. Ask good questions in the interview goes on. 
I learn something amazing, graph traversal problem for example, traverse the graph, and find all the words in them.
Second part, implement a dictionary to look up those words quickly. Use tries for that.
That is what far the interviewer gets on that question. But he asked the candidate, he got through that approximately 8 minutes. What else you can do, he showed me that traverse the graph and trie in parallel, magic and beautiful thing.

cannot write down the detail. 

Example:
1. Traverse graph, and build up a dictionary. A candidate spends 8 minutes to figure out. The candidate shows doing thing in parallel.

2. Random number, time stamp
superior smart, give me direction

3. Beauty math and engineering problem
Interviewer being prepared, knowledge

10. Time is of the essence - counter point of generous of interviewer
Time management - easy to get away from you as an interviewer. 
Candidate may talk too much not important, not relate to the conversation the interviewer likes to have. 

A few thoughts on technical interviews: 
11. Good question are like onions

naive solution in the crust, you can peel back, deep, more interesting problems going on. 

First technical interview question I asked, write a program to draw a circle - 
Microsoft, 1994, super nervous, five minutes small talk
Write a program to draw a circle - sin, cos, 2 * PI,
Interviewer says that it sucks, speed up
sqrt root 
All right, good job

- 15 minutes left, no square root - compute error - with right hint
compute error - high far away you are
congratulations: circle drawing algorithms by windows
questions goes to deeper and deeper, for the candidate, it is great. More iterate on something

Iterative on something


12. Strive for higher bandwidth
prefer for the white board to just talk to people, can get more data

First Microsoft interview, whole nervous whole day. 
Just give me a notebook and problem, and let me work on the problems. 

13. Artifice is inevitable
Being a candidate is not having a job.
Is this person enjoyable to be around? Is this person creative? Can this person learn? 

14. More signal; less noise
Let candidate know what they are here for; let interviewee prepare

Your job as an interviewer is to help them show their best work. That is what you want to see. You are not just trying to make them fail. 

15. This might be the best we can do
It probably isn't

Hack school is a good hiring tool - 2 months of coding, some one can finish or so on. 

15. Have Fun
      Learn

Questions?
1. Machine learning helps the interviewer to decide ...
Human input, the written feedback, hiring committee

2. Question: false positive
Worthy taking some risk on some one; Make a bad hire, cascading effects,

3. Microsoft hires for a team, Google hires for the company
hiring committee -
culture thing - 

4. How to hire people with domain knowledge? 1 person with domain knowledge

5. Personality fit vs strong technique skills
Ability to lean and pick things up; demonstrate Java and Java Script knowledge, so he/she can pick up PHP.
People cannot get the expertise you need.

6. Don't hire ass holes if he is perfect for the job. 
During interview, he is a domain expert; Some one creates a toxic environment. 
He is bad, drag people down;

7. Interviewers talk about, send an email for these emails. 
Microsoft email chain - hiring or not hiring / quiet sure
Poised or blessed by your first interviewer - a senior people if he is. 

Google does not allow to communicate, every one does not have context, what happened before. Without bias is better. 

8. Group interview - 2 interviewer, one interviewee
2 shade interviews - 2 shade interviews, just observe, do not say a word. 

9. If you have power to change, what to change?
Could you hang out? Could you talk? Can you communicate?
Do you have enough data for you to decide if you should hire? 

10. calibrate? new bees? How much weight?

Good questions, exercise the candidate
here is the place the interviewer has to hint
Apply something
Write solid code
Talk through ...

11. Who is focusing on? before interview
After the interview, people talk about the impressions, sort of things.

2-3 pages - take up code sample - two pages typical for feedback

If every one goes to wrap up meeting,

12. Google does follow up, it takes months to make a decision; now it only takes weeks.

Stumble early on, give hints on - just more you ask question, the more you know how to give hints.

13. behavior questions:
agree general ideas how to do behavior questions.

Program interview exposed.

14. turnaround time - how quickly to get back to the candidate?
Microsoft - last interview - you have the hiring manager to interview you.
Google - April, interview, at the end of June.


Nov. 30, 2016


- Proficiently
- Quickly  <- ask questions
- without mistakes
- Good practices

January 14, 2017

March 3, 2017 
Read quora answers provided by Moishe Lettvin.

Answer of Google interview, very good time to read the answer.
No degree, imposter syndrome; Julia did not get her Ph.D. degree, but she had a special experience on her Ph.D. study, she went through the immigration process and then became a Canadian citizen. She then went back to her career pursuit relentlessly through Hackerrank contest training.



Read Moishe Lettvin's answer to Is it necessary to complete graduation to get the software engineering job at Google? on Quora

Saturday, January 16, 2016

Cracking the Coding Interview (Part 1, 2 of 2)

January 14, 2016
Take notes about the video 

Cracking the Coding Interview (Part 1 of 2)

software programmer

Coding, problem solving, analytical skills and intelligent. 

Look for your aptitude, but not just your knowledge, for those top companies. 

Entrepreneur: start a marathon training group

The valuation of technical questions are relative to other candidates. 

How You Are Judged
How did you do RELATIVE to other candidates on the SAME question? 

More detail, coding questions, how fast you come out solution, how good your algorithm, how clean your code, how buggy your code. 

PM Roles (program manager, project manager)
. Communication Skills
. User-Focused Thinking
. Passion for Technology 
. Analytical Skills
. Technical Skills ( position dependent )

How We Review Resumes
1. Pull resume out of giant stack
2. Spot-check: company names, positions, projects, schools. 
3. Skim bullets to see if you've written real code
      reject   interview
4. Go to next resume & whine about how many more you have left. 

"Glanced at," not read, 15-30 seconds

Behavior questions:
Communication Goals
. Answer the question. 
. Deliver a *good* answer. ()
. Communicate well. 

Preparing for Behavioral Qs
. Create Preparation Grid for Projects
                                  OS Project           Amazon Intern
Enjoyed
Hated
Most Challenging
Hardest Bug 

Behavior Grid [for PM & less tech. roles]

Two structures:
1. First words is the answer. 
2. Situation, Action, Result   S. A. R. 

Technical questions:
Coding algorithms - study very well 
Out-of-schools 

They are not testing your knowledge. 

Practice solving questions. 
- Don't memorize!
- See: CtCI & CareerCup.com
. Push yourself!

Data strucutres
How to implement 
When to use (pros / cons)
Linked Lists         Stacks   Queues
Trees                   Tries      Graphs
Vectors                Heap      Hashtables

Algorithms
Implementation
Space vs. Time complexity 

Quick Sort                                 Merge Sort 
Tree Insert / Find                       Binary Search 
Breadth-First  Search                Depth-First Search 

Concepts 

Not just a concept - know how to code!

Threading   System Design & Scalability         Memory Management 

Recursion   Probability + Combinatorics           Bit Manipulation

Big O time 

How to learn CS Fundamentals:
Necessary for "elite" tech companies 
MIT Open Courseware
Freshman / sophomore level DS & Algo courses
Books 
- CLRS (Algorithms)


Part 2 of 2  - probably here? 

Types of "Serious" Questions
1. Product Design Questions
2. Estimation Questions
3. Software Engineering Questions
- Coding & Algorithms
- Object Oriented Design 
- Scalability 
- Factual / Trivia / Language-Based

Problem Design Qs: Approach 
1. Ask questions to resolve ambiguity
2. Understand the user
3. Structure the problem
4. Solve piece by piece

Estimation Questions:

It is not important to know the answers. About two things, problem solving and basic quantity skills. 

How much Gmail business revenue annually? 

The way to approach questions, 
Ask questions, gmail or gmail.com
Revenue or net sales 

Find structures: 
1. How many gmail acount users?
2. Estimate how much dollar value per click
3. How many clicks

If I can guess 3 numbers we have, I can multiply them and get answer for you. 

How do you figure out how many Gmail account users? 
Break down, make some assumptions, 

Estimation Qs: How to Approach
1. Ask questions to resolve ambiguity
- Don't make assumptions (yet)
2. Outline / Structure Your Approach 
3. Break down the components
- Assume numbers when necessary
- State assumptions explicitly 
- Round numbers to make your math easier

How many population? 80% uses gmail
Make reasonable guess

Take notes when you do it

Coding algorithms:
Ask questions - what the people are looking for
Talk aloud - 

How to Solve Tough Problems (7:53 /22:56 - ? )

1. Ask Questions!
- Questions are more ambiguous than they appear

2. Talk out loud
- Show us how you think 

3. Think critically 
- Does your algorithm really work? What's the space and time complexity? 

4. Code slowly and methodically
- It's not a race. 

Make too many mistakes, take too long, don't try to race it. 
If your code is done, test your code; make sure that it really works

Find the bug, do not just fix the value; find what is wrong. 

What does mean to write a good code? 

What does a "good coder" do? 
. Code in top-left of whiteboards
. Pseudo code first (if necessary)
. Be methodical. Don't try to rush. 
. Reasonably Bug Free
- Thorough testing (and careful fixing)
- Check for error conditions
. Clean coding
- Use other functions
- Good use of data structure (define own if useful)
- Concise and readable 

Algorithm Qs: Pattern Matching (13:10/22:56)

Q: Write code to reverse the order of words in a sentence. 
"dogs are cute"
"cute are dogs"

Similar to: reverse characters in a string. 
"dogs are cute"
"etuc era sgod"

A: Reverse full string, then reverse each word. 

Another approach: Simplify and generalize

Q: Design algorithm to figure out if you can build a ransom note (array of strings) from a magazine ( array of strings). 

Simplify: what if we used characters instead of strings? 
  -> Build array of characters frequencies. 

Generalize: how we can extend answer to words? 

A: Build hashtable from word to frequency. 

Next Approach: Base case & Build 
Q: Design algorithm to print subsets of set
{a, b, c} -> {}, {a}, {b}, {c}, {a,b}, {a,c}, {b, c}, {a, b, c}

S({}) -> {}
S({a}) ->{}, {a}
S({a,b}) -> {}, {a}, {b}, {a,b}
S({a,b,c}) -> ?

A. Build S(n) by cloning S(n-1) and add n to the cloned sets. 

Final approach, data structure brain storm

Q: There are 10^10 possible phone #s. Explain how you could efficiently implement 
assignSpecificNum(num) and assignAnyAvailableNum(). 

Array (sorted)? Too slow to remove num. 
Linked list? Too slow to find specific num. 
Hash table? Can't iterate through free nums. 
Tree? Ah-ha!  Binary search tree

Evaluation is relative. 

Top 10% - always get A, does not matter how hard the problem is. 

. Write real code - 
. Don't rush