logo

stopping to think deeply

February 16, 2026
Recently I realized: stopping to think deeply about a hard problem is something I haven't done in a while.

The act of thinking deeply is by far the most enjoyable part of solving a problem. Solutions arrived via the prolonged, deep thinking process have an aspect of perfection. The solution is just the right size for the problem, accounting for all requirements with the right amount of detail, and the caveats are chosen judiciously. The solution also has an aspect of beauty, or symmetry, because it can be generalized or trivially tuned to solve other problems in the class.

On the other hand, a brute force method can be used to solve almost any problem - enough domain knowledge and an understanding of how to design experiments, plus application of time and effort will get one there. One doesn't have to think deeply because one can try things quickly enough and kinda get something working. But with this method, the solutions one arrives at feel empirical, impure, and lacking beauty. This method contributes to tiredness, because it feels like work.

In my current life I approach most problems with the brute force method, but I want to change this.

how to get here?

What led me here was the daily deeds of my former job. Over my tenure, there was an increasing expectation to provide constant progress updates. This was primarily driven by a slow cultural change in the company, secondarily by the growing scope and responsibilities as I advanced my role (~20:1 ratio of culture:scope in my estimation).

Constant progress updates prevent one from thinking deeply. They require one to work rapidly, going off instinct and prioritizing expedience over all else. Sometimes this can be a fun challenge, but only in small doses.

When I began my tenure, there were of course "emergency" scenarios where frequent updates were expected. And this was fine, because they were rare enough that they barely made a dent in the time spent thinking deeply. As my career went on, these ramped up, until quite literally I was giving some form of status update daily to at least one person or forum.

The expectation for constant updates manifested in many forms - getting pinged on Slack from someone who filed a bug report just 30m earlier, asking what the status was; management asking when you're going to finish that thing that isn't due for two weeks because there's some new very important emergency request from an external team; the tendency for project managers to schedule weekly meetings where the same features are discussed ad infinitum, even if they are months out from needing delivery; and so on.

I'm very used to operating in this mode now. Even for my own projects, I constantly fall into a "progress trap", where I feel like something is wrong when I haven't made a tangible accomplishment every week/day/hour.

cultural failures

There are (at least) two fundamental cultural failures that caused this "constant update" practice at work:

There's a lack of trust in the average engineer, a belief that: if left to their own devices, they will not be able to accomplish their tasks. In some cases this lack of trust might be warranted. However, if this warranted lack of trust becomes a dominating force in the company, isn't the company staffed with the wrong individuals? Holding this belief, management/project management feels the need to constantly monitor and be updated, so that they can save the project if it's going off course.

The second failure is more simple, the misclassification of what is an emergency. There are twisted incentives that make emergency misclassification attractive: making it seem like your team is highly responsive and can handle infinite work, covering your own mistakes by escalating an emergency for another team and claiming it is blocking you, etc. Arguably the correct response to an emergency is frequent updates and synchronization, so it's not the approach that's to blame here, just the categorization of tasks.

consequences

When constant updates are required, the work itself has to shift. It's no longer acceptable to say "Well this is a difficult problem, and I've spent the whole day thinking about it. Tomorrow I might begin implementing a solution". You have to be implementing immediately, in case the first implementation doesn't pan out, so you can quickly pivot to the second implementation; implementations all the way down.

This is the wrong approach for a few reasons, but the most important reason is akin to "measure twice, cut once". No time is saved by spamming solutions, you just end up with a lower quality and less generalizable result. But again, there is pressure to behave as if the "real work" (i.e. implementation) is always happening, and so one ends up dropping the deep thinking - you can't do both simultaneously.

With the deep thinking gone, you lose the beauty, symmetry, and judicious decision making. You also lose the personal satisfaction that comes from solving the problem the right way. And you lose some amount of energy, more than if you had used the non-brute force approach.

On the company scale, you lose the ability to innovate. When everyone is packed to the gills with emergency tasks, and has no time to think deeply, nobody will be able to make the beautiful, broad conclusions that can drive technology and industry forward. There is only time for another quick implementation so that the next emergency can be solved.

how to leave?

Now that I've recognized my conditioning to operate in the brute force method, I am actively trying to ditch the conditioning and return a deep thinking way of work.

I'm trying to spend a lot of time thinking about "trivial" things. Doing things in more than one way, even if the first way seems good enough, and assessing the tradeoffs. Stopping my prioritization of efficiency (really expediency) as the number one goal. Being less irritated when an attempt doesn't succeed. And taking pleasure in stopping, thinking deeply about something, and coming back to the "real work" later.