Articles, conference talks, external publications, and practical reflections on software engineering, architecture, testing, applied AI, and team practices.
Filter posts and external publications by title, description, or post tags.
Generative AI has drastically reduced the cost of producing code, but it hasn't eliminated the need for technical judgment. Quality doesn't depend on the model — it depends on the environment we build around it.
A quick tour of Kotlin features including immutability, raw strings, data classes, companion objects, generics, sealed classes, contracts, and property delegation.
An introduction to Elixir covering its functional model, pattern matching, the pipe operator, and doctests, with a final recommendation to practice using Elixir Koans.
In many cases, our React components are wrapped in contexts, creating strong dependencies (coupling) between them. That's why unit testing can become challenging if we don't understand how these pieces work and how to mock them.
A practical reflection on how to choose the foundation of a React project by evaluating SSR, SPA tradeoffs, bundlers, learning curve, maintainability, and real product needs.
Presentation on the software architect role: what defines it, when it makes sense, and how it coexists with teams that practice software craftsmanship.
An introduction to the aggregate pattern in DDD: what it is, what responsibilities it defines, and how to persist it correctly when root entities and domain services are involved.
Slice tests are kind of integration tests used for checking the behaviour of a given layer of the application. In this example we will see what is the intention and how to check the repository layer
tsyringe is a library developed by Microsoft that makes dependency injection in TypeScript easier. In this post we review where this concept comes from, what it is for, how to configure a project, and several usage examples.
English hosted translation note for the Software Crafters article about applying hexagonal architecture to frontend applications and keeping domain code isolated from infrastructure details.
The functional operators of javascript arrays group a set of operations to be performed on the array in question. The best known are: forEach, map, find, filter and reduce. In this article we will see how to move our classic loops code to this functional form
English hosted translation note for the Software Crafters article about applying TDD in React with TypeScript, from use-case thinking to testing strategy tradeoffs.
How to propagate configuration from docker-compose and Dockerfile into a Java/Spring application to avoid manual environment switching and deployment mistakes.
Techniques and patterns for writing tests that communicate their intent more clearly: expressive names, builders, and helpers that cut noise without hiding behaviour.
The case for adopting TypeScript in JavaScript projects: gradual typing, better DX, earlier error detection, and an ecosystem backed by a massive community.
How to set up Enzyme for testing a React Native app, what changes compared with React on the web, and how to verify press and change events by injecting callbacks.
A practical reflection on TDD, pair programming, hexagonal architecture and katas: how to start from concrete use cases and let code evolve safely from tests.