Topics
software-design

33 posts

Bitcoin with Rigor

Bitcoin with Rigor

Bitcoin with Rigor goes beyond a basic explanation of Bitcoin, offering a detailed analysis of how Bitcoin works. It breaks down its components clearly, helping readers understand both the parts and the system as a whole…

Bitcoin: A Work in Progress

Bitcoin: A Work in Progress

With thousands of 'crypto' projects out there, they say Bitcoin is old and boring, but nothing could be further from the truth. This book will guide you through the latest developments in Bitcoin, as seen through the eye…

What Is Waterfall?

What Is Waterfall?

Waterfall is like following a straight path where you move from one step to the next in a defined order — like water flowing down a waterfall through different stages. The problem is that each step can take a lot of time…

Mastering Bitcoin

Mastering Bitcoin

This book covers everything from the basics to the most profound technical aspects of how Bitcoin works. It is an excellent guide through the complex world of Bitcoin, providing the knowledge you need to participate in t…

Learning Concurrency in Golang

Learning Concurrency in Golang

I wanted to learn a new programming language, so after trying some, I ended up with Golang as one of my favorites for its simplicity and capabilities. It has features I haven’t used in years, like multithreading and conc…

Great Engineering

Great Engineering

Coding is not just another job. In the right environment, writing software can be really fun and, even more, it can be your personal hobby as well! So... you might be focused on coding, coding and more coding to level up…

How to Test Private Methods?

How to Test Private Methods?

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

Introducing a New Tech Stack

To introduce a new tech stack for the entire team, it's important to bring "why?" and a strategy to make it happen among the team because it will affect everyone.

Accelerate

Accelerate

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

Recipes for Decoupling

Recipes for Decoupling

What is coupling, and why is it bad? What is decoupling, and how to do it efficiently? This book is a compilation of strategies to decouple your domain code from those infrastructure details, so you can enjoy a healthier…

Modern Software Engineering

Modern Software Engineering

This book presents software development as an engineering practice at every level. To master software engineering, we must become experts at learning and managing complexity.

Modern CTO

Modern CTO

In Modern CTO, Joel Beasley provides readers with an in-depth road map on how to successfully navigate the unexplored and jagged transition between these two roles. Drawing from personal experience, Joel gives a refreshi…

London vs Chicago

London vs Chicago

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

TDD vs BDD

TDD vs BDD

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

Test-Driven (Development)

Test-Driven (Development)

The complexity here is not about writing tests itself, but the habits that we have to change to create software that is easy to be tested.

Phel: The Lisp That Compiles to PHP

Phel: The Lisp That Compiles to PHP

The new Functional Programming language build-in for PHP.

To Mock or Not to Mock

To Mock or Not to Mock

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

Principles of package design

Principles of package design

Apply design principles to your classes, preparing them for reuse. You will use package design principles to create packages that are just right in terms of cohesion and coupling, and are user- and maintainer-friendly at…

Typed Arrays in PHP

Typed Arrays in PHP

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

Object design style guide

Object design style guide

Matthias Noback's practical guide to writing flexible, readable, and maintainable object-oriented code, with techniques applicable to any OO language from Python to PHP.

Domain-Driven Design Distilled

Domain-Driven Design Distilled

Domain-Driven Design Distilled brings DDD to life. Whether you're a developer, consultant, or customer, it will help you understand it, so you can benefit from its power.

Advanced Web Application Architecture

Advanced Web Application Architecture

The best guide that brings your coding and architecture skills a level up. All the modern PHP features combined with the elegance of a well designed modular design.

Strict Types in PHP

Strict Types in PHP

`strict_types=1` is more for the reader than for the writer

The Art of Refactoring

The Art of Refactoring

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 Classes in PHP | Java | Any

Final Classes in PHP | Java | Any

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

7 languages in 7 weeks

7 languages in 7 weeks

A hands-on tour of Clojure, Haskell, Io, Prolog, Scala, Erlang, and Ruby. Learn how each language thinks differently and broaden your perspective on programming.

The Art of Testing: Where Design Meets Quality

The Art of Testing: Where Design Meets Quality

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

Clean Agile

Clean Agile

This book is about Agile. What it was, what it is, and what it will be. This is a back-to-basics talk that covers the history of Agile, what motivated it, and what has happened to it since.

Working Effectively with Legacy Code

Working Effectively with Legacy Code

Michael Feathers presents practical techniques for adding tests to untested code, breaking dependencies, and safely refactoring large legacy systems without introducing bugs.

Clean Architecture

Clean Architecture

Robert C. Martin's guide to SOLID principles, component design, and architectural boundaries that keep software systems flexible, testable, and maintainable over time.

The Pragmatic Programmer

The Pragmatic Programmer

Key takeaways from Hunt and Thomas's classic on pragmatic software development, including DRY principles, the right mindset, and how to choose and master your tools.

97 Things Every Programmer Should Know

97 Things Every Programmer Should Know

Tap into the wisdom of experts to learn what every programmer should know, no matter what language you use. With the 97 short and extremely useful tips for programmers in this book, you'll expand your skills by adopting …

Clean Code

Clean Code

Even bad code can function. But if code isn't clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn't hav…

Keyboard Shortcuts

Movement vim hjkl

hPrevious post← left
jScroll down↓ down
kScroll up↑ up
lNext post→ right
ggScroll to top
GScroll to bottom
nNext sectionnext heading
NPrevious sectionprevious heading

Go to g = go

ghHomego home
gbBloggo blog
grReadingsgo readings
gpTopicsgo topics
geServicesgo services
gaTalksgo talks

Actions

/Searchvim search
yYank URLvim yank
dToggle themedark mode
tToggle TOCtable of contents
iSwitch languagei18n
fFollow linkfollow link
mToggle highlightmark text

General

?Show this help
ShiftHold to show hints
EscClose
:Terminalvim command mode