Skip to content

Debugging, Interviewing and Complex Systems

Debugging

Debugging is in its essence diagnosing the behaviours of a complex system. One needs to probe and observe the system to understand why it's doing something it's not supposed to do. Debugging using the scientific approach usually works quite well:

  1. Reason about collected data
  2. Form a hypothesis.
  3. Probe the system to test the hypothesis - this could be in the form of providing a certain input, collecting more data, or altering the underlying infrastructure.
  4. If hypothesis is disproved - repeat 1 & 2.

Interviewing

Interviewing is not that different from debugging in that sense. Your goal is to understand a fairly complex system, to develop a sense of how the system would perform in different situations. Approaching an interview with the same scientific approach can be an effective strategy.

  1. You start with some initial data - this would be the resume, or notes from other interviewers.
  2. Form a hypothesis.
  3. Ask a question that tests the hypothesis.
  4. Go back to 1 and repeat until you are satisfied with your understanding of the system.

For example, if you see a lot of academic projects on the resume, you may form the hypothesis that this is an individual who is academically inclined and might not end up prioritising the customer's needs. You could test that by asking questions like

  • How do you go about prioritising your work?
  • What was the most important aspect of a project that you worked on?
  • Have you ever considered doing a PhD, why/why not?

The answers will prove/disprove your hypothesis, but will also provide you with more information to form new hypotheses.

Conclusion

A lot of engineers do not like interviewing. I find that a bit strange because as engineers we reason about complex systems on a daily basis. Interviewing is not that different. Taking a scientific approach to interviewing is not only effective, but will hopefully help you enjoy the process of interviewing - in turn making you a better interviewer.