Bitcoin with Rigor
A detailed analysis of how Bitcoin works, component by component, with its potential and its risks as a monetary experiment.
Designing code that is easy to read, test, and replace.

A detailed analysis of how Bitcoin works, component by component, with its potential and its risks as a monetary experiment.

They say Bitcoin is old and boring. This book walks through its latest developments, seen by one of its own developers.

Waterfall moves through fixed stages and gives no feedback until each one ends. Why that clashes with how software really evolves.

From the basics to the deepest technical details of how Bitcoin works. The guide for taking part in the Internet of Money.

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

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.

Introducing a new tech stack affects everyone, so it needs a clear why and a strategy the whole team can get behind.

The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations

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

Dave Farley presents software development as engineering at every level: becoming expert at learning and managing complexity.

Joel Beasley maps the jagged transition from developer to CTO: the challenges, the lessons and the things worth avoiding.

There are two known schools in TDD: the mockist school (aka Outside-in) and the classicist school (aka Inside-out).

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

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

The new Functional Programming language build-in for PHP.

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.

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.

Vaughn Vernon brings DDD down to earth, so developers, consultants and customers can all benefit from its power.

Matthias Noback on levelling up your coding and architecture: modern PHP features with a genuinely modular design.

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.

A hands-on tour of Clojure, Haskell, Io, Prolog, Scala, Erlang and Ruby, and how differently each one thinks.

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

Back to basics on Agile: what it was, what motivated it, and what has happened to it since. Uncle Bob's account.

Michael Feathers on adding tests to untested code, breaking dependencies, and refactoring legacy systems safely.

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.

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.
Phel, a functional Lisp that compiles to PHP. Persistent data structures, macros and a REPL, built on top of the PHP ecosystem.