Why we do not have data structures and problem solving rounds

An engineer at Obvious will spend most of their time building GUI applications. The skills that we expect engineers to use for these are typically different from the kind of tasks that require knowledge of data structures and algorithms.

For example, knowledge of data structures and algorithms will be essential for programmers working in the following domains:

  • Operating systems

  • Systems programming

  • Building frameworks

  • Computer graphics

However, for building applications, the skills that would be required are typically different. For example,

  • Having a thorough understanding of the platform that the application will run in, and how to be a good citizen in the context of that platform.

  • Being familiar with the UI patterns and components of their platform, and being able to work with multiple teams to realise a product vision.

  • Being able to put themselves in the shoes of a person who is going to be using the product they engineer, and being able to reason about how their code impacts that person.

Of course, sufficiently complex products might eventually require a certain knowledge of data structures and algorithms in order to achieve certain goals. We expect cases like these to be the exception rather than the norm, and believe that engineers would be able to "know what they do not know" and research sufficiently to gain the necessary skills.

Therefore, as part of the hiring process at Obvious, we will NEVER quiz you on:

  • Data structures and algorithms

  • Trivia and puzzles

  • Whiteboarding

and we will focus on evaluating things like:

  • The depth and breadth of your knowledge about your platform of choice.

  • Your drive for learning and honing your programming skills.

  • Thinking of the entire product as a whole, and the context your code runs in when it goes out into the world.