EBoard 02: Clarifying the problem

Approximate overview

  • Administrivia
  • Visitor presentation
  • Sample tech interview one
  • Sample tech interview two
  • Debrief
  • Steps for success, revisited (if time)
  • Discussion: Clarifying the problem (if time)

Administrivia

  • There is Covid on campus. You might want to consider cleaning your keyboards and such with the wipes.
  • Sorry for the lack of practice this week. Don’t worry, you’ll get some over the next two weeks.
  • We do not have class next Tuesday; I’ll be traveling to Tapia with some students.
  • Expect to see the visitor schedule evolve over the next few weeks.

Visitor Presentation

Sam may attempt live notes.

Background at Grinnell

  • YG is class of 2020 (or maybe 2019); a mid-year grad.
  • At Grinnell, was a CS major (only a CS major).
  • Also studied innovation and entrepreneurship (through Wilson Center, Econ department, and ad hoc)
  • Never worked more than twenty hours per week
  • In AppDev, Wilson, VR thingy, Makespace

Other background (internships, research, other summer stuff)

  • Android open source develper at Grinnell (did it for family; that’s okay)
    • Leverage your connections!
  • Worked for PM one summer. Wrote block-based UI.
  • Junior software engineer working on automated security testing (like metasploit).

On to CISCO

  • Mid-year grads are not part of the normal process.
  • Worked as data reliability site engineer.
    • Not quite a software engineer (people who set up applications)
    • Not quite a devops engineer (people who manage services, whether on the cloud or onsite)
    • Applies ideas of software engineers to devops problems. Automating stuff.
  • Pandemic made job strange. Training. Meeting team members. Etc.
  • Important to be a “self starter”, going out and finding out the things that you need to know.
  • Got certified as a CCNA. (Cisco Certified Network Assistant)
  • Spent time writing tools for network engineers; push configurations to remote devices.
  • On Agile teams with Scrum. (Most companies don’t do pure Scrum/agile)

On to ChipperCash

  • A FinTech startup started by three Grinnell alums to help people move money (across boarders, to and from US, etc.)
  • “Venmo for Africa”
  • Recruited at ChipperCash (not by a Grinnell alum)
  • Hired by anti-financial-crime team
  • Also helped onboarding of team members
  • Worked in TypeScript on top of Node.js
  • Downsized at Chipper (down from 500 to 180 or so)
    • The US tech market is in weird shape; people were expecting downsizing
    • Tech is super cyclical
    • This year, 230K layoffs in the tech sector, but people seem to be hiring.
    • “It’s part and parcel of the world”
    • 10-15% of the people who got laid off got jobs
    • Moral: It’s good to save while you’re making money
    • And lots of people are recruiting right now
  • It’s been quite. Really quiet.
  • Recuriters have reached out and then disappeared.
  • But the past two weeks have been busy.
  • Working for a self-startup as a contractor.
  • Working for a nonprofit with others (self created).
  • Also working on some personal projects.

Questions

Do you have tips for winter jobs?
Look now. Companies are hiring _ to _.
Don’t just cold apply. It takes months.
If you know the locale you want to be in. Find a recruiter and reach out.
What strategies do you recommend for preparing for interviews?
Amazon and Google have the hardest coding interviews. They like hard algorithm questions (CSC 301). Dynamic programming and greed. They want to see that you know about infrastructure (e.g., how do you deploy a program?)
LeetCode, GeeksForGeeks
Interview questions are not the job
Don’t memorize answers. But be able to think about related questions and potential strategies.
What do you recommend for résumés?
Put everything that’s relevant, but try to stay on two pages.
Why? Because they suck data out of your document.
Bullet points are fine.
Talk about tecnologies and practices you’ve used.
Highlight key pieces of work.
Recruiters look for keywords (“facial recognition tooling”).
Numbers are good (reduced X by Y)
Repo GitHubs (people do care about your heatmaps)
What if you don’t have as much as our speaker?
That’s fine. You will build up experiences.
Recruiters understand where you are in your career.
No class at Grinnell teaches you how to deploy a program. How do you learn to do the things that they don’t teach you in class but you need to know?
Work on your own projects.
Find friends and say “Wouldn’t it cool if we built THIS.”
Learn by doing. Maybe HackGC. Maybe other Hack-a-thons.
It’s important; find time. Convince your faculty to change their assignments.
While algorithm + data structure knowledge helps get you jobs, knowing these tools (and how to learn) is more important.
E.g., Docker, …
Teach someone else.
Do you put references on your résumé?
Not usually. Most places ask separately.
Make sure to warn your references that something is coming.
What’s the difference in workflow/worklife between Fortune 100 and crazy startups?
Lots of people see differences, but our speaker didn’t see much.
Some internships really focus on mentoring and training.
Some people intern on the same team (or at the same company) multiple years n a row. Can help with ability to grow in your job/responsibilities.
Is it okay to use a LaTeX template for your résumé?
Sure. Using LaTeX tells people that you can do more than Word.

Sample Tech Interview One

Nope, no notes. Just one classic question.

Sample Tech Interview Two

See the prior notes.

Debrief

What did each person do well?

  • Examples. Shows that they are processing the question.
  • Started with the brute force algorithm so that we can optimize later.
  • Solved the problems really fast.
  • Good intution.
  • Engaged well with the interviewer. In some cases, they care more about how you work with someone than that you finish solving the problem. Remember that the first half of most interviews is chatting.
  • Good clarity of thought!

What could each person improve?

  • Edge cases.
    • “Do I have to handle empty strings?”
    • “Are capital and lowercase letters treated as the same?”
    • “Does the palindrome have to be a series of English words?”
    • “Do I have to deal with non-letter values?”
  • Negative examples.
  • Don’t make it seem like you’ve already read the problem in an interview prep book.
  • Discuss the higher-level solutions first; generate multiple solutions.

What else did you learn from the quick interviews?

  • “What’s a database schema?”
  • “What’s a microservice?”
  • Some people like you jump right in, some people like you to reflect. You may want to ask to see what they’d like.

Steps for success, revisited

See the course schedule.

Clarifying the problem

A TPS (Think, Pair, Share) activity.

The first step you should consider in a technical interview is clarifying the question.

  • Why do you clarify the question?
  • What are some techniques for clarifying?

Why clarify?

Techniques for clarifying

Sam’s comments

Interview one

  • Good rephrasing of problems.
  • Didn’t ask about edge cases
  • Calm down/going really fast
  • Starting with “brute force” method. Didn’t give other approaches.
  • Good talking through the code he’s writing.
  • Doesn’t Python have a string comparison operation (or an array comparison operation)?
  • Wrong code.
  • Felt like you were going through an existing solution.
  • Sorting is usually assumed to be O(nlgn)
  • There’s some debate as to whether we can assume hash insert and get are O(1).

Interview two

  • Didn’t ask about edge cases
  • Didn’t ask about negative examples
  • Didn’t verify that palindromes can be any mirror sequence (as opposed to a sequence of words)
  • Good analysis of the “harder” problem
  • Jumped immediately in to coding