This blogpost has been generated by ChatGPT from an outline. Said outline is available at the bottom. This is one of the less impressive posts. Some of the sections are fine, but for example the first one isn't quite was I was aiming at (see the contrast between the outline). This should be easy to fix if my process was more iterative. However for now I will leave it at this :)

As a software developer, it's easy to get caught up in the idea that our craft is aging. With the world overflowing with simple apps like alarm clocks, it can feel like there's not much left to build that is truly useful. But the truth is that building something useful takes time, and often requires the help of a team.

However, there's one factor that can make all the difference in your ability to keep going: your emotions. It turns out that your ability to keep going is heavily influenced by your dopamine levels. If you're not enjoying what you're doing, it's easy to tank your dopamine levels and end up feeling lethargic, tired, and generally unproductive. This can make even relatively simple tasks, like LeetCode challenges, feel insurmountable.

I know this from personal experience. I found myself in this position recently, and it was taking a significant toll on my mood and productivity. Everything felt like it was about the outcome, and the outcome was that I was feeling burnt out and unhappy.

But I made some changes to my process, and the results have been nothing short of mindblowing. I switched my focus from the outcome to the process, and set some specific process goals for myself: take a pause after submitting my work, stop after 95 minutes, start with a brute force solution, and treat every setback as a learning opportunity.

The change has been especially noticeable with relatively simple tasks. As someone who really enjoys figuring out how things work, I found that leaning into this enjoyment made a huge difference in my ability to keep going. For example, I used to struggle with iterative tree traversals. While I could easily code up a recursive solution in about 5 minutes, iterative solutions would sometimes take hours, with lots of edge cases slowing me down. But by changing my process and taking the time to create a tree parser that made test cases immediately copiable, I was able to significantly improve my process when dealing with problematic edge cases. This, in turn, sped up my learning and made me feel like tree traversals were no longer hard.

In short, your emotions are far more important than code quality when it comes to your ability to keep going. By focusing on the process and finding ways to enjoy what you're doing, you can significantly improve your mood and productivity. And as I've learned, the results can be truly mindblowing.


- Software is aging as a craft
    - World is overflowing with the easy stuff like alarm clock apps
- To build something useful you need time (and probably teammates)
- Your ability to keep going is influenced by code quality, but your emotions are far more important
    - Turns out that your ability to keep going is heavily influenced by your dopamine levels
- I have managed to tank my dopamine levels because it stopped enjoying what I was doing
- Everything was about the outcome
- The outcome was that I became lethargic, tired and generally non-productive
    - Also less happy
- Even relatively simple leetcode challenges were too much
- I made the following changes
    - All goals about the process with the following process goals
        - After submit: pause
        - Stop after 95 minutes
        - Do brute force first
        - Start from simple example and extend
        - Treat every setback as a learning opportunity
- "relatively simple" because I know that I enjoy figuring out how things work, I could just lean into that
- Results were mindblowing
    - Feeling of no energy -> Feeling of lots of energy
    - Mood significantly improved
- Example
    - I have struggled with iterative tree traversals
    - Can code up a recursive solution in ~5 minutes
    - Iterative solutions would sometimes take hours, with lots of edge cases slowing me down
    - After changing process I spent quite some time creating a tree parser so that test cases were immediately copiable
    - This markedly improved my process when dealing with problematic edge cases
    - This in turn sped up learning
    - I no longer feel like tree traversals are hard