Last month, at a developer meetup in Porto, the conversation kept landing in the same place. Jobs were changing radically. Juniors couldn’t get hired. The seniors had it differently but not better: they wanted to change, and couldn’t.

Open LinkedIn this week and it’s the same mood, only louder: AI taking the jobs, affordability crises (housing + oil), political instability. At some point I cut down the sources, because reading more of it changed none of it.

There are always uncertain times when things look bad. 2008 was one. COVID was another. Last year was mine, and it taught me something about the difference between what is mine to do and what isn’t.

Two jobs at once

Last year I still had my own startup, FalconMetrics, which worked in mobile app attribution. If that means nothing to you, that is part of the story: it is a complex industry that changes fast, and keeping up with the privacy regulations and the technical demands takes resources and a team that we simply did not have. We learned a great deal in that time, but paying clients came slower than the plan.

By June 2025 it had become clear that I needed a stable income. The savings were going down, and at the same time AI was changing the industry we were trying to break into. Freelancing covered part of the gap, and a few gigs came in, but each one took a long time to land and the rates were under pressure, so it was never going to be the answer on its own.

From June until January my days were therefore split in two: roughly 80% went into building the product, and the remaining 20% into finding a job.

Going back to a job was a conscious decision, not only a financial one. Somewhere in those months I realised what I had started to miss, which was working in a team. My co-founder was on the marketing and business side, and I learned a lot from him about marketing, but on the technical side there was nobody to exchange with. Every architecture decision and every trade-off was mine to make and mine to doubt, and sound technical decisions are much easier to make when there is somebody across the table who disagrees with you.

Ninety percent silence

A typical week of applying looked like this. I searched the vacancies and applied for a lot of them, using LinkedIn’s Easy Apply for some and writing tailored letters for others. I kept several versions of my CV, one for AWS and cloud, one for backend and one for frontend, because ATS screening is everywhere now and I thought the right keywords might get me through it. I also got my AWS certificate, for two reasons: the startup was hosted in the cloud, and it looked like a sensible pivot towards full-stack roles.

The returns were thin. Roughly 90% of the applications got no reaction at all, 8% came back as a standard rejection letter, and 2% went through to a next round.

The ghosting was the hardest part. There were senior Flutter roles that fitted me perfectly, where my background matched the description line for line and I knew I would do well, and from those I heard nothing at all: not a rejection, not a word. That was the moment it landed how different this market was from the one I knew.

Did the tailored CVs help? Honestly, I don’t know. Maybe the applications that got through would have got through anyway. The AWS certificate carried less weight than I expected, and nobody seemed to care much about it, not even for the DevOps roles.

The reserve clause

Stoicism has been part of my mornings since 2023. Epictetus, Marcus Aurelius, Ivandro Soares. And journalling: every week on how the week went, and most evenings when there is a strong emotion or anxiety to deal with. The journalling is a practice in distance. The feeling goes on paper, where you can look at it instead of sitting inside it.

Somewhere in that year I read Donald Robertson’s book on Marcus Aurelius, and it gave a name to what I had been trying to do without quite knowing it: acting with a reserve clause. Marcus uses the term at least five times in the Meditations, and it means undertaking an action while calmly accepting that the outcome is not entirely in your hands. Seneca describes it as a caveat you attach to every intention, something like “if nothing prevents it”. The Stoics liked to explain it with the image of an archer. His task is to aim and shoot as well as he can, and hitting the target is what he hopes for, but once the arrow has left the bow a gust of wind can still take it off course. The job is everything up to the release, done as well as he is able; the rest is weather. Marcus goes one step further: if you act without that reservation, every failure immediately becomes an evil to you, something to suffer from, while if you accept that the outcome was never fully yours, you suffer no real harm.

If you look at a job hunt that way, every application splits into two parts: the input, which is mine and which I can look at honestly and change, and the outcome, which belongs to the wind and which I have to let go of the moment the application is sent.

The first thing the practice showed itself was small but real. Sitting down after another week of silence, I could look at the ghosting as a pattern rather than a verdict about me and I noticed a pattern was hard to miss. Almost every application had gone to a role where hundreds of other people were applying, and in a pile that size a CV is one PDF among hundreds. The things that actually make me different, an understanding of the business side and being a social person people like working with, are exactly the things a PDF cannot show. The problem was not the person on the CV but where the CV was being sent.

I decided to change my approach. I was already a member of a couple of Slack groups where smaller companies post their vacancies, and instead of filling in the form, I started messaging the person who had posted it directly. Asking simple questions like: what is this role really about, what kind of person are you looking for, which problems or challenges is the company facing right now? I did the same within my own network, a direct message and a question instead of a formal application, and the conversation usually followed on its own.

That worked in two ways at once. The people on the other end gave very good insights into what was actually needed, which no job description had told me, and sometimes they pushed my profile further along the process than any form would have. The two percent that used to end in a next round now ended in an interview with a real person.

The outcome, meanwhile, stayed where it had always been, outside my hands. Accepting that was, for me, the most important part of the whole year.

What came of it

At the start of 2026 I signed with a new employer, and got what I was craving for: a strong team, a new domain, and Python in a large codebase where before I had only used it for scripts. Being a bit of a beginner again felt good. I got proper code reviews, worked with colleagues with different skill sets and specialties: it was exactly the thing I had missed most during the startup.

The startup itself is basically done. The realisation came in September or October 2025, when new rules for the Chrome sandbox were announced and it became clear that mobile app attribution would get much more complicated than it already was. For a team as small as ours, fighting our way into a very established business would have been long and difficult, with AI making it harder still, and on top of that we think mobile itself will become a much smaller part of the picture. That decision was tough to take, because it feels like a failure. However the lessons I learned are invaluable.

Your turn

The world feels heavy right now, and neither you nor I are going to fix that from behind a screen. So pick one thing, at work or at home, that you are really worried about, and split it the way the archer does. What is your input, the part that is yours and that you can honestly change? And what is the outcome, the part that was never yours to begin with? Take one calm action on the first, and then let go of the second.