An open notebook, kept since 2021
Software, German, and the parts of life that fit in neither.
Notes from Munich on building software, learning a language properly, and the books that changed how I think. Written down so I stop relearning them.
5 Oct 26
How to Get Your German Tax ID When the Letter Never Arrives
Your Steuer-ID is sent only by post. If it never came, check your old documents first, then request it again for free with the BZSt online form.
5 Oct 26
"Fix It Later" Has an Expiry Date
Shipping fast and fixing later works while mistakes are cheap. The real skill is noticing the day they stop being cheap, and saying it out loud.
4 Oct 26
Photo by The Unmistakables on UnsplashThe Small Tool I Built for Everyday Paperwork
Every application asks for a stack of documents and comes with a strict size limit. I got tired of paid sites that didn't work, so I built a simple converter for the everyday jobs.
3 Oct 26
Photo by fabio on UnsplashAnthropic Just Rediscovered the Ausbildung
Tools can be bought in an afternoon. Judgment still grows slowly, through real work next to someone who already has it.
2 Oct 26
When Writing Gets Cheap, Reading Becomes the Job
AI made producing work cheap, but reading it still costs human attention. If your output doubles and your reviewers' trust drops, you only moved work onto someone else's desk.
Quick thought
When someone on your team brings you a problem, resist solving it right away. Ask what they would do first. Most of the time they already have a good answer and just need permission to trust it.
1 Oct 26
AI Can Guess the Average. Your Team Isn't One
A good guess always gets the average right and the edges wrong. The people you most need to hear from live at the edges, so ask them.
Quick thought
AI removed the bottleneck of doing. What is left is the bottleneck of choosing. When output is cheap and endless, time management stops being the skill. Prioritisation is the skill. The question is no longer 'how do I fit this in' but 'should this exist at all'.
27 Sep 26
Your Voice Is No Longer Proof of You
A familiar voice or face used to be proof. Now it's only a claim. Trust lives in context and simple habits, not in how someone sounds.
23 Aug 26
Shipping Code I Never Fully Read
A few months ago I joined a team where nobody writes code by hand and pull requests have thousands of lines. This is what it did to me, what I learned, and what I think we should change.
Quick thought
Most of your problems can really be resolved if you just give up, stop resisting, and see the truth.
29 Mar 26
AI Will Never Replace Humans. And That's Not the Point
AI won't replace you. A human using AI might. The tool doesn't remove people, it amplifies whoever holds it.
15 Feb 26
telc Deutsch B1 [Part 2]
In the B1 speaking exam, talking with your partner scores more than perfect grammar. Ask questions, react, and keep it simple.
13 Feb 26
telc Deutsch B1 [Part 1]
The telc B1 exam doesn't test everything. It tests a format, and the same grammar again and again. Know both, and you're halfway there.
27 Jan 26
The B1 German Book I Wish I Had When I Started Learning
Grammar rules won't make you speak German. Knowing what to say in real situations will.
Quick thought
The more I work with AI tools, the more I value colleagues who say I don't know. A model will always give you an answer. A person who admits they are unsure saves you from trusting a confident guess.
Quick thought
Treat code from an AI assistant like a pull request from a confident new hire. It usually looks right and reads well, which is exactly why you need to check it. The bugs hide in the parts you were too relaxed to read.
3 Nov 25
Residence Permits and Migration (Munich)
In Germany, a small plastic card decides if you can stay where you are building your life. Here is what I learned getting mine.
Quick thought
Every yes to something small is a quiet no to something you care about. Before you agree, ask what it will take time from. If you cannot name it, you are probably about to give away your evening.
6 Jul 25
Red Lights, Green Lights, and Qadar
Every morning someone speeds past me, and every morning we meet again at the same red light. That's Qadar in real life.
Quick thought
The biggest problem in communication is the illusion that it has taken place.
Quick thought
If you are stuck for more than half an hour, ask someone. Nobody remembers that you asked for help. People do remember the week you lost trying to look like you did not need it.
15 Apr 25
German B1 Series, Episode 3: Anna sucht eine neue Wohnung
Anna has three months to find a new apartment in Germany. Follow her search in English and German, from the listings to the keys.
8 Apr 25
The Automatic Millionaire (Book summary)
You don't need a strict budget to build wealth. You need to pay yourself first, and make it automatic.
30 Mar 25
What Everyone Needs to Know About the Stripe Ticket (Streifenkarte)
The MVV ticket system confused me when I arrived in Munich. Once you get the Streifenkarte, it's simple: fold, stamp, and ride.
Quick thought
When a customer asks for a feature, ask what they were trying to do when they needed it. The request is their guess at a solution. The problem behind it is what you should build for, and it is often simpler.
13 Mar 25
German B1 Series, Episode 2: Anna geht einkaufen
Anna goes shopping on a Saturday morning. A simple story in English and German, full of words you'll use every week.
13 Mar 25
How I Changed the Way I Learn German (And How You Can Too)
German grammar felt impossible until I stopped reading other people's notes and started writing my own.
2 Mar 25
Accuracy. By Philip Jacobs (Book summary)
Without goals, we drift like a ship without a harbor. Real success is when faith, relationships, health, and money pull in the same direction.
Quick thought
If you cannot explain a task to an AI in a few clear sentences, you probably do not understand it yet. Writing the prompt is often where the real thinking happens. Sometimes I solve the problem before I even press enter.
10 Feb 25
German B1 Series, Episode 1: Anna plant ihre Woche
Anna plans her week in a café. Read her story in English and German, and see how many words you already understand.
Quick thought
Before you accept a meeting, ask what decision it should end with. If nobody can say, it is probably a conversation that fits in a short message. The best meetings I have been in started with a clear question and ended early.
Quick thought
The quickest way to trust yourself again is to keep small promises. Say you will read ten pages tonight, then read them. Each promise you keep makes the next one easier, and slowly the big goals stop feeling out of reach.
Quick thought
Your first price is almost always too low. The people who leave over a small increase are rarely the ones keeping your business alive. Raise it once, watch who stays, and you will learn more about your customers than any survey could tell you.
Quick thought
When you send a long message, put your question in the first line. People skim, and the ask hiding in the last paragraph is the one that never gets an answer.
Quick thought
Before you build anything, talk to five people who would pay for it. Not friends, not family. If none of them asks when they can have it, the idea needs more work, not more code.
Quick thought
Friendships rarely end with a fight. They fade because nobody sends the next message. If someone crosses your mind today, tell them. It takes one minute and it might make their week.
10 Feb 24
How I Learned German with "Nicos Weg" and Why You Should Too
Watching a series won't teach you German. Watching it with the right vocabulary next to you will.
Quick thought
Before you close your laptop, write down the very next step for tomorrow. Starting is the hardest part of the day, and a clear first step means you spend the morning working instead of remembering.
Quick thought
A good apology has no but in it. The moment you add one, the other person stops hearing the apology and starts hearing your defense. Say sorry, stop there, and explain later if they ask.
Quick thought
Some of my best work was code I deleted. Every line you keep is a line someone has to read, test and understand later. Before adding something new, check if there is something you can remove instead.
Quick thought
When you thank someone at work, name the exact thing they did. A general thank you is forgotten by lunch. Telling someone their test plan caught a bug before release stays with them for months, and shows them what to keep doing.
Quick thought
When you feel behind, compare yourself to who you were a year ago, not to the people around you. You see their results but not the years it took to get there. Your own progress is the only comparison where you know the whole story.
Quick thought
Frameworks come and go every few years. The things that stayed useful for me were the boring ones: SQL, HTTP, and reading other people's code. When you pick what to learn next, spend most of your time on what will still matter in ten years.
Quick thought
Keep a short note of your big decisions and why you made them. Read it again six months later. You will see which choices came from good judgment and which ones just got lucky, and that is hard to learn any other way.
Quick thought
When a bug takes more than an hour, stop and write down what you know for sure. Half of what you believed turns out to be a guess, and the bug usually lives in one of those guesses.
Quick thought
Most of my best ideas came on a walk, not at my desk. When you are stuck, pushing harder rarely helps. Step away for twenty minutes and let your mind work in the background. Rest is part of the work, not a break from it.
Quick thought
Ten customers who love what you make are worth more than a thousand who barely care. People who love it tell their friends for free. People who barely care have to be won back again and again, usually with money.
2 May 22
Your First Week in Munich: The Anmeldung and Everything Nobody Tells You
You have 14 days to register your address in Germany, and nobody tells you that at the airport. This is the guide I wish I had.
Quick thought
Remember the small things people tell you, like the exam they were nervous about or their kid's first day at school. Asking about it a week later tells them they were really heard. It costs you nothing, and people rarely forget it.
Quick thought
When you learn something new, try explaining it to a colleague the same week. The gaps in your understanding show up fast, and fixing them over coffee is much cheaper than finding them in production.
Quick thought
When a friend tells you about a hard day, ask one question before giving advice. Do you want ideas, or do you just want me to listen? Most of the time they want to be heard, and the advice can wait.
11 Jan 22
How to tackle a software task?
Open the IDE first, and you will solve the wrong problem, or solve the problem wrong. Understand the task before you write a line.
Quick thought
When someone asks how long a task will take, give a range instead of a single number. One number sounds like a promise. A range shows what it really is, a guess, and it gives you room to share early when things change.
Quick thought
Being senior is not about how much code you write. It is about how much faster the team moves because you are there. Some weeks that means writing less and unblocking more.
11 Sep 21
Debugging With TDD
Humans are bad at repeating the same steps. Computers are great at it. That's why I debug with tests.
Quick thought
Customers rarely leave over a missing feature. They leave when they feel ignored. A quick, honest reply to a complaint often keeps someone longer than your next release will.
25 Jul 21
What The Heck is HTTP
Every time you open a website, a client asks and a server answers. That simple conversation is HTTP.
20 Jul 21
Introduction to PHP
Every language starts with the same basics: variables, types, loops, and conditions. Here is how PHP does them.
2 Jul 21
Introduction to MySQL Internals
We use databases every day without knowing what happens under the hood. Locks, transactions, and MVCC are worth understanding before they bite you.



















