S R T B H P N

Interviews


Five Types of Questions

  1. Technical Skills:
    • "Tell me about yourself" - just a few facts, show enthusiasm in moderation
    • "Why are you here?" - you are looking for interesting work and collaborators
    • Education
    • Work experience
    • Academic projects you've worked on
    • Questions about current technology - interviewer is looking for basic knowledge
    • Development processes - agile, SCRUM, ... - just the basic ideas
  2. Projects listed in your resume'
    • Top level - 5 minutes:
      what it does Brief coherent description of project uses
      what's interesting Technology, features, structure
      what's hard Technology, timing, flow, parts of implementation
      what are the top level parts briefly describe processes, packages, and how they interact
    • Parts - 20 minutes
      Process diagram draw on white board - client, server, ...
      Package diagram(s) draw on white board - names, calling relationships, responsibilities
      possibly class diagram show four relationships: inheritance, composition, aggregation, using
    • Details for some important part - 20 minutes (not very likely as interview question)
      Asynchronous message-passing communication explain concept, flow, routing, ...
  3. Writing Code
    • You need to be able to write code without the help of IDE wizards
    • Verbalize your thought processes
    • Start by summarizing in a sentence or two what you've been asked to do
    • Make a short list of tasks the code has to execute
    • Next rough in the interface and the data structure(s), talking as you go
    • Don't get flustered if interviewer suggests changes: Oh! that's interesting ...
    • Before the interview, look at several of the class midterm code questions. Try to rough in your answer (before looking at mine) in these terms.
    • Practice writing code at your desk and at a whiteboard with your friends. Spend an hour a day, five days a week, for several weeks before your interviews.
  4. Designing Systems
    • Start by laying out machines or processes, e.g., client and server
    • Quickly list the responsibilities of each - a sentence or two
    • Describe the data handling - db tables, JSON arrays, ...
    • Discuss user interactions - a task list might be useful
    • Discuss scalability - sharding data onto multiple servers, load balancing
    • List issues if you can think of any - communication, complexity, performance, attack footprint
    • Before the interview, look at one or two of your class projects and try to address each of these. That will make it easier to respond during the interview.
  5. Behavioral questions
    • Show your team orientation: Take as little help as practical give as much help as practical
    • Show you can live in a project's context
      • use the team tools
      • follow the team procedures
      • communicate consisely and frequently - but not too frequently

Study for interviews

  1. Algorithms and library data structures
  2. C++ classes, templates, libraries
  3. C# and Asp.Net Core
  4. Web development: HTML, JavaScript, CSS, MVC, Web APIs - focus on basic ideas
  5. Practice coding at white board
  6. Know what REST, MEAN, MERN, Agile, DevOps mean - wikipedia is your friend

Advice

  1. Take one of the projects on your resume and craft 1 minute, 5 minute, and 30 minute presentations. Quick review of concept, UML diagram(s) discussion, whiteboard code: what classes, responsibilities, activities, write small code fragments that support discussion.
  2. Think about what you want - not just a job - and how that relates to what the company does.
  3. Craft a very simple and direct description of who you are - no fancy words, no self-evaluation - just your interests, experiences, and technical things you most like to do.
  4. Be prepared for questions about how you interact with people. Your goal is to show that you are self-starting, willing to take advice, and that you will interact well with team members.
  5. Don't make claims about this - not convincing - rather show by examples of things you have done.
Never say these 5 things in a job interview