Google Tech Careers 101 Workshop

Google hosted a Tech Careers workshop on March 8, 2019. This post contains notes on what happened there.

Agenda

Meet Fuzzy [back to top]

Fuzzy Khosrowshahi is an engineering tech-lead manager at Google NYC, responsible for the development of Google Docs & Spreadsheets. Prior to joining Google, Fuzzy co-founded 2Web Technologies, LLC, a Software product company which was acquired by Google in 2005 and is responsible for the technology behind Google Spreadsheets.[1]

About Fuzzy

  • High school
  • College with a history degree
  • Sold life insurance - 3 months, couldn’t sell anything
  • Sold real estate - 3 months, couldn’t sell anything
  • Sold ads on a mall kiosk - ???
  • Licensed a subway shop with his wife
    • Don’t take stuff for granted, working at shop was way worse than working at google
    • Learned spreadsheets
  • Went to Goldman while doing an MBA at Stern
    • Learned spreadsheets n software
    • Tried equity research
    • Tried banking
  • Realized solving a user problem is better way to succed than just trying to get into a well-paying industry
    • Built XL2Web, which is precursor Google Sheets
    • Google acquired
  • Joined Area 120 -> incubator at Google

Lessons

  • Nobody does well alone: “You’re the average of the 5 people you’re closest to.” You only hear about the one person, but they have entire groups of people helping them succeed.
  • Manage your expectations: story about daughter, tooth fairy, american girl doll
  • Always challenge yourself: Always asks himself “have I learned something new today?”
  • Iterate fast: Lots of google products went through major rewrites
  • Listen to your users: Don’t try to “use AI”, try to solve a problem.
  • Diverse teams serve users best: Gives your team perspective. Even if its just awareness of accessibility issues.
    • Inclusive teams attract diversity
  • Be persistent: Keep trying. Make sure that you’re persistent. He went through like 4 sales jobs lol.
  • Have fun! DropBox CEO’s dog is always excited about seeing his tennis ball, and that’s what work should feel like. When you’re excited, you can do better.

Grow with Google [back to top]

This section is a panel of current Google engineers that recently graduated.

Where are you now?

  • “Wheel of student life” - satisfaction with student life

Goal setting

  • Skills - Not necessarily just programming language x, but also things like time mnagement
  • Projects - Do projects that help you learn and get you where you want

Getting there

  • Soft skills matter
  • Incremental gains

SMART Goals

  • Specific
  • Measurable
  • Attainable
  • Relevant
  • Time-Bound

Networking and Interviewing

  • What is an elevator pitch?
    • It’s storytelling!
    • Who are you, what do you do/want to do?
    • What are strengths/experiences?
    • Why is the listener relevant to your story?
  • Have questions ready -> interviews are conversations
  • Applying is an intentional process
    • Do you research
    • Spreadsheet to keep track of who youve applied to
  • Thank you notes! They’re important

Intro to Design Thinking [back to top]

Design thinking is a fun way to come up with ideas that focuses on listening and brainstorming.

  1. Empathise - Observe, engage, immerse yourself with key audiences (i.e. target users)
  2. Frame - Reframe the initial problem as “a how might we” based on what you’ve learned
  3. Ideate - No idea is bad. Share ideas and build on top of them. The goal is quauntity + creativity
  4. Prototype - Try building some of these ideas and put them in the real wolrd
  5. Test + Repeat - Learn from testing your prototype and repeat till you narrow in

Workshop Problem

Kids Take Over (KTO) is a media group focused on hip hop. Their viewer demographic is 1.8% women. We need to increase female engagement.

  1. Empathise
    1. Interview with founder
      • Have you interviewed many female artists? - no I think one and it hasn’t been posted yet
      • “Do you read comments?” - Yes.
      • What do women on your platform watch - There’s this one guy that everyone watches, but the girls seem to like talk about how hot he is
      • Why do you want to reach women? - Hip hop isn’t a male-dominated market, so missing out on girls means missing a part of the market
      • Why do you think you aren’t reaching women? -
      • Why haven’t you interviewed many female artists? - I live in Vancouver, not many women artists come over, and the ones that do are a little out of my league
      • What are your shows? - Facetime series, one-on-one series, behind the scenes series
      • What have you done to advertise so far? - Instagram, 22% female that watch, but advertising is targeted to men rn
    2. Questioning with Amanda
      • Do you like hip hop? - Yes
      • Who do you like? - I find it through spotify discover; people like Drake, Frank ocean
      • How do you find new stuff? - Instagram influencers
  2. Frame
    1. How might we advertise to women better? - do the facetime thing with female hip-hop instagram influencers.
    2. Keep it to questions and not to solutions
  3. Ideate -> crazy eights, which is an eight minute thing where you come up with 8 ideas on eight sections of paper.
    1. More female artists
    2. Targeted ads
    3. Spotify podcast
    4. Facetime with female artists
    5. Merch
    6. More hot guys
    7. Talk to other groups that have had trouble getting the female demographic
    8. Instagram influencers
  4. … Out of time

Laying the Fundation to your CS Career [back to top]

Focus on the technical interview.

Building your skills

  • Freshman year
    • At least one CS & Math course
    • Object oriented programming language
    • Understanding of formal logic
    • Read & understand existing code
    • CS clubs/societies
    • Hackathons
    • Open source, Web/Mobile apps
    • Personal projects
  • Sophomore year
    • Proficiency in at least one Programming language
    • Data Structures and Algorithms
    • Personal/collaborative CS Projects

Tech Interview Prep

Format

  1. Short intro - 5 min
  2. Tech assessment - 35 min
  3. Closing questions - 5 min

Communication

Verbalize your thoughts

  • Restate questions
  • Ask questions
  • think out loud
  • Draw pictures
  • If you think in silence, summarize

Listen to your interviewer

  • They want you to succeed
  • Session is a discussion
  • They might be hinting you

Phone interviews

  • Quiet location
  • Use Courier New for coding
  • Use headphones
  • Have pen/paper reader
  • Share thoughts out loud
  • Remember to manually indent
  • Don’t search for references/the question

Common Mistakes

Jumping into code

  • Care more about process than solution
  • Interviewer won’t know if you’re headed down bad path
  • May not be able to offer hints
  • May run out of time if you need to start over

Examples/testing

  • Discuss test verbally first
  • Pick a simple example
  • Think about an edge case or two
  • Analyze runtime/space complexity
  • Don’t forget to test your code
  • Don’t waste too much time with too many examples

Not writing real code

  • Use pseudocode only if the interviewer is ok with it
  • Helper functions are unimplemented, not pseudocode
  • No pseudocode in solution
  • Keep pseudocode and real code separate

Premature optimization

  • Think critically about the algorithmic complexity
  • Explain why it isn’t possible to improve it
  • Be OK starting with the brute force solution!
  • You can verbalize a simple solution first, then iterate on it!

Practice Questions

1. Coding question: reading code.

public static boolean f(int[] arr) {
  if (arr == null || arr.length == 0) return false;
  boolean x = false;
  int y = arr[0];
  for (int i = 1; i < arr.length; i++) {
    if (x && arr[i] == y) {
      return true;
    } else if (arr[i] == y) {
      x = true;
    } else P
      y = arr[i];
      x = false;
  }
  return false;
}

What does the above do? Can we rewrite it more readably?

public static boolean hasTriplet(int[] array) {
  if (array == null || array.length < 3) return false;
  for (int i = 0, prev; i < array.length - 2; i++) {
    // There's lots of different ways to do this.
  }
  return false;
}

2. Write a method that when given an array of integers returns true if any of the values make a double decker. A value is considered a double decker if it appears 3 times in with an alternating second value (a, b, a, b, a).

  • Q: What if input is null or less than five? A: Return false
# [3, 4, 3, 4, 3] returns true
# [3, 4, 3, 3, 3] returns true

def has_double_decker(array):
    if array is None or len(array) < 5:
        return False
    for index in range(len(array) - 5):
        if _section_double_decker(array[index:index+5]):
            return True
    return False

def _section_double_decker(array):
    assert len(array) == 5
    return     array[0] == array[2] \
           and array[2] == array[4] \
           and array[1] == array[3]

Final Tips

  • No shortcuts
  • Err on the side of caution and over communication
  • Test your code!
  • Read all emails from top to bottom
  • Answer all questions and provide all requested information
  • Schedule time to speak with your recruiter as needed
  • Respond to emails quickly
  • Tell your recruiter about offer deadlines, recruiting deadlines, major updates, or just email them if you haven’t heard from them in a while

Q & A

  • What do you do in the case of a bad interviewer? - Hopefully it doesn’t happen, but it shouldn’t be that bad because there are multiple interviewers per candidate
  • If I’ve never worked at a tech company, how can I learn the software development cycle? - The Engineering Practicum is a good start. You could try reading about AGILE software development, or asking friends that have done it. Also, you could do your own projects and learn about that stuff from doing it
  • How do you keep yourself motivated? - Make sure you take breaks, but if you like coding it shouldn’t be too big of a deal. But really make sure you take] breaks.

Resume Workshop [back to top]

Apply to google at google.com/students.

Resume Tips

  • PDF Format
  • Clean, simple, consistent, bullet-pointed
  • Contact information
  • “References upon request”

Structure

  • Education
  • Work experiences
  • Project
  • Activities/leadership
  • Honors/awards

Education

  • Post-secondary schools attended
  • Intended major/minor/degree
  • Graduation month and year
  • GPA
  • Relevant coursework and technical skills

Work Experiences

  • Include employer, position, dates employed
  • Keep bullet points concise, clear, descriptive
  • Consider relevant experiences

Projects

  • Focus on impact
  • Technical skills gained
  • Link content
  • Purpose, personal/internship/group, impact, tools/languages used

Activities/Leadership

  • Clubs and orgs
  • National society chapters
  • Programming competitions & hackathons
  • Teaching assistantships
  • Research opportunities
  • Open source projects
  • Internships

Honors/Awards

  • Distinguished academic awards
  • Speaking engagements
  • Presentations/publications
  • Include selectivity if available

Final Tips

  • Demonstrate passion for tech
  • Tell your story through your experiences
  • No “objective” or “summary” in tech
  • One page