Learning Concurrency in Golang
Learning Go for its simplicity, and meeting again things I had not used in years: multithreading, goroutines and concurrency.
Writing code that is readable, maintainable, and expressive.

Learning Go for its simplicity, and meeting again things I had not used in years: multithreading, goroutines and concurrency.

A practical guide to pair programming that works: roles, rotation, when to pair, common pitfalls, and how to make sessions productive.

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

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.

Let's talk about the QA position. The hidden truth behind poor software quality, and why it concerns you if you write code.

What coupling is and why it hurts. A compilation of strategies to decouple your domain code from infrastructure details.

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?

Uncle Bob on the three pillars of craftsmanship: TDD disciplines with examples, standards for teams, and a programmer's ethics.

Real seniority goes beyond job titles. It's about impact, mentoring others, owning outcomes, and raising the bar for your entire team.

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

Package design principles for classes ready to be reused: the right balance of cohesion and coupling, for users and maintainers.

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

Argument unpacking, function variable argument list, and variadics function.

Matthias Noback's practical guide to flexible, readable object-oriented code, useful in any OO language.

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

Why declaring strict_types in PHP improves code readability and prevents silent type coercion bugs.

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.

Clear contracts, isolated side effects, testability, low complexity and cognitive load, code fluidity, and confidence in yourself.

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

Uncle Bob on SOLID, component design and the architectural boundaries that keep a system flexible and testable.

Key takeaways from Hunt and Thomas: DRY, the pragmatic mindset, and how to choose and master the tools of the trade.

Uncle Bob on professional behaviour in software: time management, handling pressure, TDD, and what a craftsman actually owes.

97 short, practical tips from experts on what every programmer should know, whatever language you use.

Bad code works, but it drags a whole organization down. Uncle Bob on what clean code is and how to keep it that way.