31
the

Rock the tech interview january 2015

Embed Size (px)

Citation preview

the

About Me?

• Greg Roderick @ Infusion

• Practice Manager, Web

• Waterloo Grad, CompEng 2005

• Co-op at Infusion

• Dev -> Team Lead -> Manager

• American Idol, Indigo

• Tech Interviewer

Who Are We?

We’re entrepreneurs for enterprise.

• Boutique Consulting

• New Technologies and Frameworks

• Design & Development

There are 640 Infusionites in

the world today.

INFUSION GLOBAL OFFICES

TORONTO

BOSTON

NEW YORK

RALEIGHHOUSTON

SINGAPORE

LONDON

MALTA

WROCLAW

KRAKOW

We’re serious about co-ops and New Grads

• 75% of our executive team is made up of UW Alumni

• 60% of our co-ops join Infusion full time

• 2014 co-ops/grads in Toronto, NYC, Houston, Raleigh, London and Krakow

• In the last 12 months, 5 co-ops and new grads won awards for their work.

• We run an intense month-long technical Bootcamp for our New Grads

The Interview Obstacle Course…

• RecruiterFilter Resumes

• RecruiterPhone Screen

• DeveloperPhone Tech Interview

• Snr Dev / ArchitectIn Person

Tech

• Hiring ManagerFinal

50x

1x

MY MISSION: DECIDE IN 1hr IF YOU ARE A HIRE

Interviewing is hard….more voodoo than science

So what *am* I looking for?

Put yourself in my shoes…

The 3 real questions…

Smart?

Gets Things Done?

Fit the team ?

HIRE !BAD! Maybe?

YOU?

People fall into 3 categories…

1st Goal:Don’t #InterviewFail

• Don’t be late (10 mins early is ideal)

• Don’t be rude to the receptionist

• Fishy handshake

• Don't Lie, don't try to fake it

• Don't rant or get frustrated

• Suits optional – but don’t underdress

• Hygiene: nails, shave, nose hair

2nd Goal: #StandOut

• Be Yourself

• Be Confident

• Smile + Body Language

• Be Passionate

• Get Excited

• Stay Calm

• Keep it SIMPLE

• Keep it SHORT

The Format – 60 mins

• Introductions: 5 mins

• CS Fundamentals: 20 mins

• Tech Specific : 10 mins

• Algorithm(s): 15 mins

• Questions? 10 mins

The Introductions

“Tell me about yourself?”

“Tell me about your last job?”

“What’s your fav class this term?”

“What languages are you strong in?”

My Goals:

• First impressions + attitude

• Get you talking: communication

• Break the ice: help you relax

Sell Yourself (#StandOut)

Paint the picture of who you are

• Relevant skills, experience, interests

• Unique abilities, outside of school/work, hobbies

• Side projects, Open Source, Blogs, reading…

Confident, Positive, Articulate, Smart

• Firm handshake, smile – be yourself

• Goals? What kind of job are you looking for?

• Highlight positives from prior roles;

Practice Your Elevator Pitch

• Keep it to 1 minute or less – short, simple

• Highlight 2-3 recent jobs, not all of them

• Have 3 main points; tie them together

• OOP Fundamentals

• Data Structures /Memory Management

• Multithreading / Concurrent Programming

• Coding Best Practices

• Databases

My Goals:

• Measure experience, aptitude

• Assess breadth and depth – grill, find gaps

• Do you get it vs memorizing definitions

• “Why” / “How does” vs What Is questions

• Can you give me an example?

• How have you applied this in a project?

• What happens if…

CS Fundamentals

Tips:

Prepare for interviews like studying for exams• Create a list of topics to review

• Be prepared to talk to anything on your resume

• Read up! Pull out your textbooks or go online

• Focus on understanding (vs memorizing)

If you don’t know something… • Be honest…then make an educated guess

• It’s ok to ask for a hint or how something works

• Jot down ‘misses’…look up and learn

Provide an examples, not just definitions• Show you understand / have used it

• Cite built-in examples from major frameworks

• Don’t go overboard (keep it short, simple)

Data Structures• Array[], ArrayList, List<T>

• HashMap/HashTable

• Linked Lists, Queues, Stacks

• Trees, Graphs

• Generics

OOP Fundamentals• “What is Object Oriented Programming?”

• Polymorphism

• Overload vs Override

• Abstract Classes

• Interfaces

• Access Modifiers

• Static, Final, Readonly

• Constructors & Destructors

Memory Management• Scopes

• Struct vs Class

• Pass By Value vs Pass By Reference

• Stack vs Heap

• Pointers & References

• Garbage Collector

• IDisposable / using scopes

Multithreading /Concurrent Programming• Threads vs Processes

• Async, wait, notify, sleep

• Context Switching

• Race conditions, deadlock

• Locks / Mutexes / Semaphores

Coding Best Practices• Exception Handling

• Logging

• Source Control

• Commenting

• Naming Conventions

• Testing

• Debugging

• Build Management

Databases• Schema Design / Normalization

• Select Statements

• Joins

• Aggregate Funcs / Group By

• Transactions / ACID

• Tables vs Views

• Stored Procedures

• ORMs

Algorithms & Problem Solving

• The “hard” part of the interview….

• Measuring Aptitude:

• Applying what you know

• Solving “new” problems.

• “Hands On” vs Theory: Whiteboarding, writing code

• Thought Process & Reasoning

• Communication

Problem Solving & Puzzles

• How many golf balls fit in a bus?

• How many times do a clock’s hands overlap?

• 8 balls, same size, 7 same weight. Find heavy

ball using a balance and only 2 weighings

Tips:

• “Right” matters less than thought process

• Talk your way through the problem

• Break it down. State/clarify assumptions

• Draw/write it out: visualize your logic

(Draw clock, hands on it, “move” the hands…)

FizzBuzz & Data Structures

• “Reverse a linked list”, “Find if linked list has cycle.”

• “Find the biggest number in an array”,

• “Find which characters repeat in a string”

Tips:

• Problems not “hard”; goal to filter weak candidates

• Know your data structures and their properties

• Study samples on internet – you may see exact Q

• BUT “knowing the answer” isn’t the point, you need

to be able to explain

• Get started; how quickly you can solve matters

ACM-Style Problems

“I have an array of Apple stock prices from yesterday; with the index is the time in minutes from the open and the value is the price at that time. In one buy and one sell, find the maximum profit.”

Tips:

• Make sure you understand the problem; “replay” it

• State assumptions, think about corner cases

• TALK through a base case; get *a* working solution

• Write out pseudo code/comments

• What is the runtime? Understand Big O notation

• Optimize: look at loops, look at data structures

• Think hashtables; very useful for fast access storage

• STUDY! Practice these kinds of problems

Do you have any questions for me?• Is this the company for you? Choose between offers?

• This is your best chance to really understand this company

• Your interviewer is a window to the people at the company

• Great questions = great way to convey your attitude

Tips:

-Always take advantage of this opportunity

-Know what factors you’re looking for in a job/company

-OK to write & bring prepared questions

-Skip “administrative” questions; (ask the recruiter)

-Show you’ve done your homework

-Communicate excitement vs “what’s in it for me?”

-Connect on a personal level

Some suggestions…

• “What was your experience like as a new joiner to Infusion? What was the biggest pleasant surprise? The biggest challenge?”

• “What have your recent interns/new grads worked on...have they come back? If not, why not?”

• “What advice would you give to someone starting in this role?”

• “What is your favourite part of working here?”

• “What would a typical day or week be like in this role?”

Instead of….

• “What is the dress code?”

• “Do you send devs to conferences?”

• “Who are you customers?”

• “What is the pay?”

• “Did I get the job?”

Try…

• “Everyone seems friendly and energetic – can you tell me more about the culture?”

• “How do you support continual learning for your employees, especially new grads?”

• “I was really impressed with <case study>. What have been some of your favourite projects?”

• “What do you see as the near term challenges and long term opportunities of this role?”

• “Do you have any feedback on how today went?”

References & Resources

Algorithms & Problem Solving

https://codility.com/programmers

https://www.hackerrank.com

https://open.kattis.com

https://www.interviewcake.com

http://www.codewars.com