
The Human Bottleneck
Attention is the one thing you can't scale
AI agents ship faster than you can review. The answer isn't speeding up. It's choosing where your attention actually matters.
Thoughts on software development, testing, leadership, and building better teams. From technical deep-dives on TDD and refactoring to reflections on communication and growth. Whether you're a developer looking to level up your craft or a tech lead navigating team dynamics, you'll find practical insights here.
How to become a Senior Software Developer?
Embracing quality practices in your engineering culture
The human factor in the age of vibe-coding
Team Lead? Tech Lead? What is leadership and what is not?

Attention is the one thing you can't scale
AI agents ship faster than you can review. The answer isn't speeding up. It's choosing where your attention actually matters.

Visibility is passive, signal is not
Working in the open lets people help while the work is still shapeable. The real skill is pushing the right signal to the right room.

The market knows what no one person can
Let people act, let goods pass. No planner knows what the market knows, and freedom, not control, should be the default.

Two leaks, two patches
Caveman shrinks what the agent says back, RTK shrinks what your terminal pipes in. More room in the same context window.

A mirror in the present
Nietzsche used eternal return as a test. Life uses it as a mirror. Patterns rhyme not to predict the future, but to reveal who you become under pressure.

Intelligence without expertise is entertainment
Why Claude Code skills beat specialized agents. On-demand context, not the model, decides quality. Build a skill library that travels with your code.

From copy-paste prompts to agentic teams
A six-level ladder of AI adoption, from copy-paste prompts to agentic teams and AI-native workflows. Where most companies stall, and how to climb.

A tutorial through rules, skills, agents, hooks, and settings
A hands-on tour of Claude Code's project folder. What rules, skills, agents, hooks, and settings each do, and how they fit together.

What happens when you give an AI a quest and get out of the way
A Telegram message turned into a nine-level Lord of the Rings browser game. Code by an AI agent, every creative decision by a human.

Holding both ends of the rope
Doing things right against getting things done. TDD, pair programming, AI: the best results hold both ends of the rope.

From solo assistant to coordinated workforce
Stop using AI as a single assistant. Organize agents into specialized teams with roles, docs, and parallel execution for real leverage.

Why context is the real superpower
MCP connects AI agents to your dev tools, databases, and APIs through a standard protocol. Give your agent the context it actually needs.

Blockchain, cryptography, and consensus
Transactions, blocks, mining, the UTXO model, and Lightning Network: how Bitcoin actually works under the hood, explained in plain terms.

A beginner's guide to sound money
21 million cap, no central authority, permissionless and censorship-resistant. Bitcoin is digital money you truly own. No bank required.

The human factor in the age of vibe-coding
AI accelerates your output but doesn't ensure quality. You're responsible for every line you commit. Speed without direction is chaos.

A simple definition that changed how I live
Success is waking up knowing that what you do makes the people around you, and yourself, happier. Consistency over perfection.

Match the review to the risk, not the ritual
Not every change needs the same review. Ship, Show, Ask matches the process to the risk, without losing quality or collaboration.

Take full control of your Lightning payments with Alby Hub
How to set up a self-custodial Lightning node with Alby Hub on a Raspberry Pi. Full control over your funds, 100% open source.

Where your money goes and how to rethink the system
Your paycheck, your coffee, the house you just bought: taxes are everywhere. Where your money actually goes after payday.

Pioneers of privacy in the digital age
In the early '90s the Cypherpunks set out to defend digital privacy. Their encryption and their ideals shaped the world we live in.

Boosting trust and security in your codebase
Sign your Git commits with GPG to prove they are really yours. Without a signature, anyone can fake a commit using your email.

Turning frustrations into tools for better development
bashunit: a testing framework for Bash with parallel and snapshot testing, test doubles and data providers. From dev frustration to open source.

From code to collaboration
You have mastered the code, but technical skill alone will not carry you. If you cannot work with others, nobody wants to work with you.

What makes Waterfall a poor fit for modern software development?
Waterfall moves through fixed stages and gives no feedback until each one ends. Why that clashes with how software really evolves.

How PGP secures your digital communication
PGP signs, encrypts and decrypts text, email, files and whole partitions. What it is, how it works, and how to actually use it.

The power of Bitcoin's Script
Bitcoin is called programmable money because Script lets you embed conditions into a transaction. How that scripting language works.

The dilemma of trust and self-interest
The Prisoner's Dilemma, where cooperation and betrayal collide, and what it reveals about self-interest against collective benefit.

Why Agile if you already do Scrum, Kanban, SAFe, or Waterfall?
Why Agile if you already do Scrum, Kanban or SAFe? How you manage an organization defines its quality, and what really kills it.

A horse racing emulator explained step by step
Learning Go for its simplicity, and meeting again things I had not used in years: multithreading, goroutines and concurrency.

Embracing quality practices in your engineering culture
A practical guide to pair programming that works: roles, rotation, when to pair, common pitfalls, and how to make sessions productive.

Why "should we not" deploy to production on Fridays?
The panic around deploying on Fridays. Does banning a whole day of delivering value to your customers actually make sense?

A great engineer is not just a great coder
Coding is not just another job. In the right environment it is fun, and even a hobby. On levelling up your craft on purpose.

Tuckman's Model to drive a team to high performance
Tuckman's five stages, and practical strategies for each one: forming, storming, norming, performing and adjourning.

Testing private methods. When and how?
From time to time I have had to face this question: how to test private methods? I have put together in an article the techniques that I usually use.

Recognizing red flags of an unhealthy workplace
An unhealthy working environment can have various symptoms that negatively impact both the physical and mental well-being of employees.

The rise to a level of incompetence
The Peter principle: people get promoted until they land in a role they are not competent for, and then stop being promoted.

How do you deal with people reluctant to change?
From my talk at the WeAreDevelopers World Congress: my experience with Extreme Programming and the benefits of embracing change.

Writing to help myself sleep
It is hard to get to bed with a blank mind when you are already on the next reading, talk or post. On the never ending loop.

An acceptance of powerlessness
Learned helplessness sets in when someone accepts their powerlessness and stops trying to escape. What it is, and how it breaks.

How does it fit a dedicated QA person in your agile team?
Let's talk about the QA position. The hidden truth behind poor software quality, and why it concerns you if you write code.

How to introduce new technologies in your team
Introducing a new tech stack affects everyone, so it needs a clear why and a strategy the whole team can get behind.

How to find a balance of growth and happiness
Always reading, writing and speaking? The short answer is no. How I ended up here, and what changed along the way.

Leadership starts within your own life and behaviour
As organizations grow, leaders must shift focus from customers to employees. Key principles for scaling leadership effectively.

Agile is about HOW you do certain things
My interview with devm.io regarding Agile and Extreme Programming. Agile is more about HOW you do certain things, rather than WHAT things you do.

Killing agility with excessive meetings
Boring meetings are killing agile. When the process stops helping the team and starts owning it instead.

How can you work with other teams that aren't agile?
You apply the extreme programming values and practices. So how do you work with the teams around you that are not agile?

Some thoughts about software quality among your team
What to do when working on "bad software" and you can't improve it because it is against the beliefs of your peers? Should you change the company?

Team Lead? Tech Lead? What is leadership and what is not?
Leadership is action, not a title. It has nothing to do with management or hierarchy. What it really means and how anyone can lead.

Misunderstandings, effective communication, and self-reflection
One of the most complicated challenges for everyone is avoiding misunderstandings and being aware that other people don't think the same way as you do.

The Iron Triangle
A triangle of time, quality and cost. it's an indicator that these three parameters are interconnected. You can fix one or two of them, but not three.

How to become a Senior Software Developer?
Real seniority goes beyond job titles. It's about impact, mentoring others, owning outcomes, and raising the bar for your entire team.

Also known as the Law of triviality
Bikeshedding explains why teams waste time on trivial decisions while ignoring complex, important ones. Learn to recognize and avoid it.

Dunbar's number is a suggested cognitive limit to the number of people with whom one can maintain stable social relationships.

How can you help your peers to embrace the change?
Software demands non-stop learning. How to create the spaces your team needs to leave the comfort zone and embrace change.

Milgram's experiment
Milgram wanted to know how far people obey an order that means harming someone else. What he found, and why it still matters.

It's an integration, not a choice
There are two known schools in TDD: the mockist school (aka Outside-in) and the classicist school (aka Inside-out).

Managing the two kinds of work
Blue Work and Red Work, the two modes David Marquet describes in Leadership is Language. Different mindsets, and different languages.

Design or Workflow?
These are two different techniques. The key to each of them is about the mindset and context of what you want to achieve.

What is challenging about it?
TDD is a design practice, not just a testing technique. Writing tests first changes how you think about code and shape its structure.

It's not a promotion. It's a role change.
The Trident Career Model by Patrick Kua has three tracks. Each track represents where people spend most of their time or energy.

The uncomfortable truth about human nature
How far do social forces bend your opinion? What matters more: the size of the majority or its unanimity. Asch's experiments, explained.

The power of contributing to OSS
A practical guide to open-source software: its benefits, how to start contributing, and why sharing code accelerates your career growth.

Why choosing when you can have both?
Let's talk about the benefits of Pull Requests and Pair Programming, and my thoughts on these after some years of experience with them.

Who moved my cheese?🧀
The tale is a beautiful metaphor of the different attitudes that people adopt as part of their identity in life when they have to confront any change.

A new functional language with full interoperability with PHP
The new Functional Programming language build-in for PHP.

How to escape the mocking hell
Mocking is useful, but 'what to mock' usually turns out to be a more complicated than expected if you don't treat this carefully.

Another way of sharing quick suggestions with your team
Discover another way of sharing suggestions with your development team.

The spread operator to the rescue
Using array_merge inside a loop is a performance killer. The spread operator will help you to improve this by flatting the array.

An alternative to the missing feature in PHP: Generics
Argument unpacking, function variable argument list, and variadics function.

How to focus and have self-discipline
No goal should be an achievement on its own, but the process itself that helps us to go in the direction of these goals.

How to write proper tests to already written code
How to write characterization tests for legacy code to safely refactor without breaking existing behavior.

declare(strict_types=1);
Why declaring strict_types in PHP improves code readability and prevents silent type coercion bugs.

When, how, and why
If you see something, in the scope of your current task, that can be easily improved, improve it. And if you have any questions about it, ask.

Final, or not final, that's the question
Clear contracts, isolated side effects, testability, low complexity and cognitive load, code fluidity, and confidence in yourself.

From a software developer's point of view
Why you should consider testing as part of your daily development habit and how it's directly linked to the software quality.

Some tips to improve your communication skills
We have all sat through a talk that was hard to follow. How to prepare and deliver a tech talk people actually want to hear.