EBoard 05: Writing tests and getting unstuck

Approximate overview

  • Administrivia
  • Visitor presentation
  • Questions
  • Debrief on Behavioral Interviews
  • Debrief on Technical Interview
  • More questions
  • Steps for success, revisited (if time)

Administrivia

  • Congratulations to those of you who participated in PioneerWeekend, whether you won or not.
  • Homework: Spend at least an hour playing with Exponent. Try to do a tech interview on Pramp, if you can. Be prepared to report back.
    • https://tryexponent.com/grinnell
    • Dr. Sarah Barks from CLS will visit us next week to chat about it.
  • Expect to see the visitor schedule continue to evolve over the next few weeks.

Visitor Presentation

  • Some of you may have met Halle when she was here last week.
  • It’s nice to see some familiar faces.
  • Currently at Microsoft. Has been there for two years.
  • Also did an internship there. (An advantage to living in Seattle.)
  • In two years, has been on teams in Edge Computing.
    • Big shift to get companies to move everything to the cloud.
    • Not everything can be moved to the cloud
      • Security issues!
      • Latency issues!
    • Companies like Amazon and Microsoft are looking at ways to provide data centers
    • Azure HCI (not Human-computer interaction, but hyper-converged i????)
  • Rewind: How does one end up at Microsoft
  • [Side not: Feel free to interrupt.]
  • “I started coding to spite my sister.”
  • “I continued coding to prove myself to people on my robotics team who thought I couldn’t code because I was new to the material …”
  • “Suddenly I had a credible resume.”
  • Got internship at Microsoft by talking back to manager interviewing her.
    • Prototyped a tool
    • “Our high-schooler could write a version of this; you can, too.”
    • Xbox video editing tool
  • Came to Grinnell (rather than UW)
    • Large faculty were a large presence in that decision.
    • A liberal arts approach might help with “What do I want to do with it?”
  • Nontraditional summers …
    • Two summers of summer code camp curriculum design.
    • How do you break apart something that may be difficult.
      • E.g., “How do you teach regular expressions to middle schoolers?”
  • Normal summer
    • Internship at IBM in Italy (Rome).
    • (Bombed Amazon interview b/c of bad connection.)
    • Applied to positions for which she was over-qualified.
    • Went above and beyond on the work; wrote programs that helped the team work better.
  • Post college
    • College ended with the pandemic.
    • Interviews ended up closing positions.
    • Networking through friends lead to information about position. “This shipping company is hiring.”
    • Observation: Online postings aren’t the only places that are hiring.
    • Two job offers, chose the less structured one. Believed they would have more control over what they did; could have more of an impact.
    • EXPECT TO LEARN NEW THINGS ON THE JOB
      • Context
      • Practices
      • Software structure
  • Jump to Microsoft
    • “What are you doing right now?” “Working on code from 1997.”
    • Had an interview that she didn’t know was a pre-interview.
      • Moral: Be interested. Ask good questions.

Questions

What is a “gauntlet of interviews” like?

  • Four interviews. Knew from past experience that each interview is looking for a particlar issue. Are you adaptable? Are you collaborative? Do you write good tests? Do you take initiative? Can you complete something on a deadline (finish under pressure)? Might be both technical and behavioral values. Communication. Inclusivity. Feel free to use non-technical examples in response to the questions.
  • Many interviewers start by trying to build rapport so that you can collaborate on the technical problem. (Tell me more about …) But others are “ready set go …”
  • Try to figure out what they are looking for.
    • If they’ve asked you about how you work with others, make sure to pay attention to that in the interview.
  • Don’t say “I don’t think I’ve done that.”
    • If you’re not sure that your experience applies, think broadly. For example, you might use a very different experience to describe.
  • If you can identify what their lens is, it helps.
  • After the four interviews, each gives a thumbs up or thumbs down.

[Here’s a table of what I’ve done and how it addresses each category.]

  • E.g., example from IBM on how they are adaptable. Or how they take initiative (“I proposed it in a meeting with a manager’s manager’s manager.”)
  • It may be useful to skim her notes to think about how you set up your own notes. How do you show your experience.
  • Higher-level approach: Each would have heard about a different project.
    • From current job
    • From internship
    • From CSC-324
    • From co-curricular activities

Have you been an interviewer?

  • Not yet. But has been trained.

What qualities are you looking for (beyond the four big ones)?

  • “Someone who I would want to work with.”
  • Different people want different things.
    • Some people want someone who can pull algorithms out of the back pocket.
    • Some want someone who can collaborate well.
    • Our alum wants someone who can hone in on the main crux of an issue.
    • Someone who is willing to admit when they don’t know and are good at expressing their confusion and ask for help. Don’t just say the same thing over and over again. “This is the thing I’m having trouble with.” (If they don’t do this, how can we succeed as teammates?)

How open should you be about having less experience? (Than other people, than what it sounds like they want?)

  • Be honest about what you don’t know. The danger is that if you’re not, you’ll get followup questions.
  • If you’ve forgotten something, you can say “I’m trying to work through this …” (either out loud or in your head).
  • It depends on the type of position you are applying to. “I haven’t done that this much, but here’s what I know about it.”
  • But don’t advertise it in your resume / cover letter. Remember, “I’m a Grinnell student, I learn things quickly.”
  • Don’t throw yourself under the bus.

Debrief on Behavioral Interviews

Behavioral 1:

  • Why did you apply to CZI? And why would you be a good fit there?
    • Make sure to prepare this in advance (e.g., with a friend).
  • How do you approach learning new topics on the job? Do you have any practices or stragies for “ramping up”? [A softball question.]
  • How do you think about collaboration with different team members? (a peer vs. a senior).
    • Reading the job posting suggested that relationship with a mentor was very important.
    • PAY ATTENTION TO THE JOB POSTING!
  • What are you really good at? What is something that you can say to employers “if you hire me you get this”? [Softball question]
    • What kinds of things make you light up? What are you super-proud of?
    • Sam wonders about technical vs. nontechnical reponses. This kind of question gives the interviewee a chance to distinguish themselves from the crowd.
    • [This is a relatively common question. How do you prepare?]
      • Introspection: What drives you? What are you proud of? Consider process as well as product. They aren’t considering the product. They are deciding whether or not to hire you.

Note:

  • Make sure to ground things in your practice.
  • Another question: What do you think about the role of philanthropy in tech? An opportunity to talk about your perspective.

Behavioral 2:

  • How do you think about starting a new project? How do you approach learning new things, if there are any?
    • Trying to decide how people identify their main approach (jump in vs outline everything in advance)
    • And how you might balance with people who approach things differently
    • Gives free space for you to talk about a project.
  • What was your role in deciding a technical approach for your research?
    • Student had described the project, but not what they did for the project.
    • Learn to talk about yourself as well as the team (or vice versa)
      • You need both.
    • “This is what the project was. This is what it looked like for me.”
      • You need both.
  • How have you handled disagreements in your projects?
    • A standard question.
    • “After I punched my coworker in the face, we held hands and sang ‘kumbiyah’.”
      • The first rule of fight club is …
    • Looking for how you balance your own concerns with someone else’s concerns.
    • How do you talk about the more contentious aspects of your work? Are you impartial? Are you passionate? Are you passionately impartial?
    • Good responses?
      • Show that you are active in producing a good product.
      • Proactive.
      • Balance the health of the team and the quality of the product.
    • Bad responses?
      • “My solution was right. I did whatever was possible to ensure that we chose mine.”
      • “I let my colleague win, and when we followed their response, I proved that I was right because their solution failed.”
      • “I threw my colleague under a bus. Literally.”
      • “I have never had a disagreement.”
  • What (else) are you proud of?
    • Intended to help student be less hyper-focused on what project.
    • Moral: Have multiple things to talk about. (Note: First and second-year stuents can probably get by with one project.)

Note:

  • Interviewers will generally ask about the most recent project, but some evil ones may go back to the first project.

Debrief on Technical Interview

Write weirdFactorial, where weirdFactorial(n) =

\[n * (n-1) / (n-2) + (n-3) - (n-4) * (n-5) / ... op 1\]

The pattern is always *, /, +, -.

You may assume that n is a positive integer.

Do we have to do PEMDAS? Yes!

/ is integer division. 7/6 is 1. -8/7 is -1.

How would you write this?

Issue: Dealing with PEMDAS ended up stumping the student.

What patterns would help? What data structures would help?

Be careful about going too far down a particular path.

BREAK THE PROBLEM DOWN INTO PSEUDOCODE. IT’S HARD FOR THE INTERVIEWER TO HELP IF THEY DON’T HAVE A HIGH-LEVEL SOLUTION!

WRITE DOWN EXAMPLES!

Visuals and pseudocode help you. They help the interviewer help you. Do the parts that you do know and leave the other parts as holes for later.

More questions

What does your day look like?

What languages do you work with the most?

Go, YAML, KQL (Kusto Query Language?), SQL, Powershell, C#,

Visual Basic

, ARM Terraform, React, Configuration file formats (JSON?), …

You see what exists and then you say “I guess I have to write it in this.”

Can I send email?

I respond faster to LinkedIn messages.

Please ask the CLS CLS-style questions first.

No, I don’t have time to pour over your resume for thirty minutes.

Yes, I’ll do phone calls.

Steps for success, revisited

See the course schedule.

Maybe we’ll get to this next week.