I make two coffees every morning. I make one filter coffee for me and my girlfriend to enjoy in bed, and then I make a flat white for us to enjoy later. The two methods of making each coffee is very different. For those who don't know, I'll describe briefly:
Filter:
- Put the kettle on and grind the beans
- Prepare the V60 and the jug
- Pour 100g of boiling water over the grounds and stir
- Pour another 200g of water over the grounds, stir, and wait to drain
- Pour another 200g of water over the grounds, stir, and wait to drain
Flat white
- Start the espresso machine
- Weigh out 2 lots of 18g beans
- Grind the first batch of coffee and pre-heat the machine
- Load the basket, tamp, and pull the first shot
- While the shot is on, grind the next batch of beans. Prepare the milk jug
- First shot finish, knock out and rinse the basket, and flush the machine
- Load the basket, tamp, and pull the second shot
- Second shot finish, knock out and rinse the basket, flush the machine
- Clean the machine
- Steam milk
- Clean the steam wand
- Pour the milk
I find these two rituals very different in nature. For the filter coffee, each step gradually leads into the next. Allowing you to fully focus on each step in hand. However, there's some amount of down time. Boiling the kettle takes longer than preparing the beans and the jug. 200g of water can take a couple of minutes to drain through. There's lulls.
Flat white, you are usually doing a couple of things at any given time. You have just enough time to prepare the next shot, maybe wipe a surface, and your shot is done. It's a fast paced choreography. Lots of buttons to press, lots of things to do. While it's a lot of well timed beats to hit, those beats are consistent. The grind time is the same. The shot time is the same. The buttons are in the same place each time. This reminds me of vim motions. I have to press a few keys to change inside quotes, but ci" is muscle memory - the keys are always in the same position on my keyboard.
I find flow state in the flat white easier than the filter. And that maps to my development environment. I like Vim because there's buttons to press. I like tmux because i can run something, switch to another pane, and do something else while the other thing is running. I'm a keyboard centric person so I can do things blazingly fast.
But at the same time, I understand that the care and precision that is offered to you while making a filter is valuable. Things get missed when you don't have down time. For example, in my flat white list above, I forgot to empty the drip tray which gets full from the three flushes I do. Something that often gets missed in the real world. Much like my pipelines failing on linting issues - something that happens too often when I'm moving fast.
So I force that into my workflow. My terminal is running full screen and my tmux pane usage is kept to a minimum to avoid biting off too much work. In fact most applications I use run full screen (not macos full screen because that's ass) on their own desktops. I like to keep my flow state active with the choreography of a keyboard driven workflow with vim and tmux, but force limiting factors in there by keeping applications full screen. Focusing my attention into one thing at time.
Edited with Claude code