Interviewing. Interview Scenario You’re working as a software engineer – Several open tickets...

Post on 29-Dec-2015

214 views 1 download

Transcript of Interviewing. Interview Scenario You’re working as a software engineer – Several open tickets...

Interviewing

Interview Scenario

• You’re working as a software engineer– Several open tickets– Bug Reports– Sprint deadline approaching

• You need another competent hacker on your team• You have to interview the new candidates

– How do you interview them?

• This is how it typically happens– Interviewed by a software engineer

• Some large companies standardize the process– Most small to mid-sized don’t

Disclaimer

• These are my opinions!– Educated guesses

• The nature of interviews– Ask n people– Get n different answers

What the Interviewer Needs to Know

• Three primary questions:

Can you solve technical problems?

Can you communicate effectively?

Do you fit in their company’s culture?

Communication

• When a team has poor communication– Poor software

• Variety of problems occur from poor communication• *Potentially controversial opinions

– Days of the closet coder are all but over– Hacker writes the best code in the world that no one can

read and the coder can’t explain• Useless code• Difficult to maintain and update• Team becomes dependent on that hacker• Usually dump the code and start over

• Prevent this in the interview

Styles of Interviewing

• Coding interview• Conversational• Critical thinking• Technical grilling

Coding Interview

• Get a prep book and study!– Tons of resources online

• Combine CSE250 and CSE331• Difficult, but you know what to expect– Be prepared

Coding Interview Scenario (Google)

• No IDE’s– Phone Interview and a Google Doc– In-person interview and a whiteboard

• Choose your language (Java, C++, Python)• Given a problem and code a solution• *They want to know your thought process– Ask clarifying questions

• “what behavior should this have on the empty string?”

– Verbalize your thoughts– They will talk you through things and help you out– Important to communicate technically

Coding Interview Scenario (Google)

• Once you have a solution– What the big-O runtime?– Could it be better?– Can you code the optimal solution?– What if I change the requirements?

• Typical to have 2 questions per interview

Conversational Interview

• Surprisingly common• Just talk about things

– Usually technical• “I see you’ve worked on project X. Tell me about it.”• “You worked on a team on this project, what role did you

play?”• “We use tools X, Y, and Z here. What’s your experience with

them?”– It’s fine to say that you haven’t used them– Better have a good answer for anything listed on the posting

• An experienced interviewer can learn all they need from a short conversation

Critical Thinking Interview

• How many windows in NYC?• How far is the sun from the Earth?• Designed to see how you think through a

difficult/impossible problem• Uncommon in CS– Why not just ask a coding/technical question?

Technical Grilling

• Thankfully rare in CS– Depending on your definition of grilling

• There is no right answer• If you give a correct answer– The requirements change

• Fast pace, high stress, high pressure• Why?– How do you think under pressure?– Can you handle failure?

Random Topic: Dress Nice

• Exact dress depends on the position• Business casual as a lower bound– Dress pants/skirt– Dress shoes– Dress shirt• Long sleeve• Tucked in• Open-collar (If you have a collar)• No tie

• *Doesn’t apply to phone interviews

Random Topic: Cash Money

• You Don’t Have a Job Yet• Don’t talk about– Salary– Benefits– Vacation time

• If they ask, give a non-specific answer– “I’m looking for a competitive salary”

• Once you have an offer– Negotiation time– Get your money

Networking

Networking

• How to make the interview easy– Already know your interviewer!– Or someone else in the company

“It’s who you know”

• Some truth to this• How does this happen?• Scenario:– You’re a Software Engineer

• Busy

– Hundreds of applicants– Someone you trust says, “Hire Ms. Awesome”– Hiring task just got a lot simpler!

• One resume, one interview, and you can get back to work

– Even better if you know Ms. Awesome directly

Networking

• Always be networking– If you like talking tech, this can be natural– In-person networking can be stressful

• All hackers love seeing cool projects– From high school students to CTO’s– Interesting projects is why we write code

Software Engineering Mentorship Program

• Networking in CSE442• Software engineers from industry have been

invited to participate in this class– You can see them on Piazza

• Mentors will give high level advice to groups– They don’t write code or attempt to lead the

team• *Let us know if your group wants to opt-out

Software Engineering Mentorship Program

• Project pitches due Friday• Starting Saturday:– Mentors choose projects they are interested in– Mentors are matched to projects based on

interests– Jesse uses project pitches to recruit more

mentors