Patrik
Wise words of the week
Your mind is for having ideas, not holding them. — David Allen
Perfection is attained not when there is nothing more to add, but when there is nothing left to take away. — Antoine de Saint-Exupéry
Did you know? You can visit the “Der kleine Prinz und seine Welt” museum in Solothurn for more inspiration from Saint-Exupéry.
Journal
Another week with good progress going through the user feedback and closing issues. I’m currently wrapping up my work and flushing the accumulated small cleanups that I need to complete at the end of an implementation cycle before pushing the release out early next week.
We use Linear to manage all the issues. For the ongoing work I keep a local list of ongoing tasks. Initially I used just paper and pencil, but in the last few months I’ve been back to using a file for my notes as it became annoying to rewrite the list once the paper was full (some think this is a feature, it lets you clean up the list).
I basically create small implementation tasks, which may have some subtasks. I generously add new tasks to the list when the need arises. This is to avoid losing the chain of thought when an idea arises in the middle of another task. Whenever I need to wait (running the regression tests, building a test instance, or waiting for AI), I use my time to review the list so that I stay focused.
Over time, I’ve tried various TODO tracking systems. Paper and pencil, OmniFocus, Google Tasks, Spreadsheets. In the end, I always come back to Org-mode. That was the only reason I had to learn Emacs in the past (vim did everything I needed). But now I’m just using Org-mode as a simple text file in VS Code with the org-vscode extension. Currently I’m just marking the tasks as closed manually, but it’s silly and I’ll start using the built-in todo list again after I finish writing this (I didn’t realize the extension supports it).
The only issue I had was how to make my notes file available everywhere I need it. I don’t want to version control it in git because I continuously jump between branches and it’s really just a list of working notes. I tried GDrive but the synchronization didn’t work properly where I needed it. Then I discovered syncthing and it solved my problem: I keep the notes file in a separate directory, mapped into my editor. Syncthing keeps this directory up-to-date between both of my machines.
Speaking of machines. You will think that someone making a living from software development will have the craziest computer setup. But that wouldn’t be minimalistic, isn’t it? My development PC is a 4-year-old Intel NUC (NUC 8i5BEH) with 16 GB RAM and 256 GB SSD running Ubuntu. It did cost CHF 360 in 2020. Minimalistic in price and in the space it takes on my desk (it simply disappears under the monitor). And the laptop is just my son’s old laptop that I’m recycling as long as possible.
Marc already made fun of me, saying we should use our initial revenue from the company to get me a decent laptop…
How did I use AI this week?
This week’s use of AI was not very impressive. No experimentation, just progress.
I’m using Gemini a lot to ask technical questions, often simply to have a second opinion on what I’m doing. Questions like “when is the latest AHV claim possible? Is it the month of my 70th birthday or the following month?”. The answers are usually good and it can often handle the gory details of the problem.
I keep using the plan mode in Cursor, and try to be as precise as possible in my requests to avoid having to spend days refactoring the code afterwards. Yet I often need to refactor the code to remove the bloat it created. Generalization is still not great (but maybe I should just ask for it).
I have the strong impression that the AI understands some problem domains really well, like frontend coding. But for some other problem domains it has simply no clue and ends up mixing concepts that don’t belong together or grouping code in a weird way (at least for someone trying to understand what is going on). Here’s a recent example, let’s see if you spot the inconsistency:
export type WithdrawalPillarKind = 'retire' | 'p2' | 'p2vested' | 'p3a' | 'p3b';
Otherwise, I started using Codex instead of Auto when doing more complex coding tasks in Cursor. So far it’s been doing fine, code just works, and no big messy changes. Let’s see if it holds up to the challenge one more week.

Marc
The build
I mostly focused on surviving my hectic planning between duties from family/work/side-project. Which basically means inviting new waitlist members, and doing some JTBD exploration.
But let’s not get into complainypant-world, and focus on the learnings.
And the one that makes me laugh a lot is the feedback from onboarded waitlist-members who tell me… “I didn’t have time to look at it yet… I come back to you soon!”
How funny!
So far, we just keep the spot for that person until they are ready.
This made me wonder whether we should send our invitations on the weekend instead of Wednesdays.
Initially we sent it on that day selfishly, in order to have time during the week to handle the questions. And to not start working every weekend. We may change this sooner than later, as the onboarding flow has greatly improved compared to 3-5 months ago when we had this initial fear.
The edge
Gimme more time (or not actually, just switch perspective!)
Summer holidays approach fast. Both ours (as the MP family) as well as the longer ones from kids, which means the organization needs adaptation and flexibility.
As you’ve read in the past journal issues, I feel I’m chasing time that doesn’t exist. And instead of complaining or suffering from this situation without taking action, I decided something needed to be done.
Hence I went back to the roots: GTD (aka Getting Things Done).
All of this supported by a Claude AI Agent. An ambitious one, maybe too much, we’ll see. His name is Walter (more on that below).
Ah, and I also mixed a professional coach into my upgraded GTD system.
Which led me to a reality check this morning, that made me accept the situation instead of fighting it. And then step back. Like a “50'000ft helicopter view” step back.
Indeed, Walter reversed my perspective and asked me to note down all I need to have done (like in “must be done”, not nice-to-have) before holidays, and all that can wait post-holidays.
That was hard, because I’m more of an overachiever than a chill person. Yet it was liberating!
I still need to polish the plan-to-a-peaceful-summer, but I’m on the right track.
Shorter loops
As we’re only two at FI Planner, and Patrik being the solo-developer on the project, we’re quite self-paced.
And you know how it goes: “OK, let’s focus on this. Ah, and while I’m at it, let me fix this tiny bug. Oh, this gives me a new idea! I’ll quickly add it!”
And 4 weeks later, you’re still iterating on the same branch that becomes a monster ahah.
We discussed the matter with Patrik this morning, and agreed to try to stick to a 2-week sprint, in order to get releases often. This, to avoid the tunnel-effect both from a user-feedback perspective, as well as for not having too many big bang releases (with their potential load of issues).
Note to a friend
Read “Getting Things Done”.
If you already read it, but years ago, just go through it again today. It’s refreshing. And also, you’ve changed since the first time, so your perspective will be different too.
Tool of the week
Walter!
As said above, I set out to completely overhaul my personal task manager, all based on AI. And when I say completely, I mean ENTIRELY. I want it to contain everything: my email inbox, my calendar, my simple todos, my longer projects, as well as anything related to content creation (editorial calendar for instance), and much, much more.
I may build a MP “product” around it. Or not. First things first: I need it to work and be useful for me first.
But just pausing a bit last Wednesday to step back, and getting coaching advice (ah, yeah, because Walter can do this too in my workflow!), I managed to get back on track (in my mind that is, which is always where the issue lies :-D).
Let’s take back control of our lives, and live a peaceful life. As it should be in a… Calm Company!
