In the past few weeks, I've observed two complementary software engineering styles:

  1. A software engineer takes an extreme level of determination to solving a problem within a tight set of constraints. They do this through creative, sometimes unconventional approaches.
  2. A software engineer evaluates the problem and possible solutions with a high level of precision. They question all implied assumptions and offer opinionated critiques of any code used to solve the problem.

I find myself gravitating towards the first modality when working on my own. I do my absolute best work when I can pair with someone who approaches work like the second. For this to work, the two of us must have a high degree of trust with one another:

  1. They must trust me to take time and explore solutions from out of left field.
  2. I must trust that when they push back on my ideas, it is not a negative commentary on the quality of my work. They are improving the ultimate end product.

Two brains are definitely better than one, and with the correct two brains in the room (or Zoom call, I suppose), they can be more than the sum of their parts.