Ignasi 'Iggy' Bosch

I'm passionate about programming, I simply love it.
I like to learn and this industry brings to me the opportunity to discover new amazing stuff almost every single day.
Constant learner on how to improve writing clean and reliable code.

#Backend #Python #CleanCode #SoftwareCraftsmanship

 The New Ontology of Code

Aug 30 2025

AI code generation isn't just changing how we write software—it's changing what code is. We're witnessing a fundamental inversion where code transforms from permanent artifact to regenerable output, where implementation becomes fluid while interfaces become the new bedrock. But this shift creates uncomfortable paradoxes: "easier" coding that doesn't eliminate complexity but displaces it, democratization that centralizes power, and the strange alienation of debugging code you commanded but didn't create.\r\nThis essay explores what we're really trading in this transformation—intimate understanding for broad capability, craft for productivity, independence for efficiency. Neither utopian nor dystopian, it offers language for that unsettling feeling many developers can't quite name: working with systems we control but don't comprehend. For anyone grappling with AI's impact on software, this is about recognizing the trade-offs we're making before we've made them irreversible.

AI Philosophy

 Value Objects for the Win!

Jun 15 2025

Value Objects solve the primitive obsession problem by encapsulating data, validation, and behavior in a single unit. Stop scattering domain logic and start creating more cohesive, maintainable code.

DDD Design

 Lifespan Strategies

Jun 14 2025

Mutability × Time: The Compound Risk series.
\r\nProven techniques for containing the compound risk of mutable state over time. From theoretical patterns to a successful real-world refactoring that eliminated invisible coupling.

Best Practices Design Philosophy

 Invisible Coupling

Jun 14 2025

Mutability × Time: The Compound Risk series.
\r\nWhy components become secretly coupled through shared mutable state. Examines how invisible dependencies erode trust and create debugging nightmares separated by both code and time.

Best Practices Design Philosophy

 The Mutation Timeline

Jun 14 2025

Mutability × Time: The Compound Risk series.
\r\nThe anatomy of object decay over time. Examines how instances progress through Birth, Initialization, Drift, Contamination, and Corruption—and why each stage compounds the previous problems.

Best Practices Design Philosophy

 The Lifespan Paradox

Jun 14 2025

Mutability × Time: The Compound Risk series.
\r\nWhy longer-lived mutable instances become exponentially more dangerous over time. Explores the counterintuitive relationship between object longevity and system reliability through a real-world state management failure.

Best Practices Design Philosophy

 A philosophy of software design - John Ousterhout

May 1 2025

I read A Philosophy of Software Design about 18 months back. It's a well-structured, concise read about managing complexity in software design. I don't think the suggested approaches are applicable in all situations (and John Ousterhout says this himself IIRC), but I recognised a lot of the problems described in the book and found it provided some useful ways to articulate concepts during code reviews (eg. whether adding a shallow function is increasing complexity in a codebase, if complexity can be pulled down into an implementation, or where it's useful to have consistency in the code).

Design Philosophy Software Development

 Design Discovery In Existing Systems

Feb 18 2025

We all want the best design but often that is not directly obtainable. Our tools for understanding systems behaviour may lead us to the abstractions we would want to use in a rewrite but what about the abstractions that exist in the system now? Do they matter? What about the structure? Are there unnamed concepts we can see through the current cohesion and coupling in the system that will help us get to where we need to go? In this talk, Michael Feathers will describe cases where being aware of what currently exists leads to better solutions. We can often leverage what we have instead of building up a domain from a greenfield.

Abstraction Design Systems Video

 Evolution of software architecture

Dec 11 2024

Welcome to The Pragmatic Engineer! Today, I’m thrilled to be joined by Grady Booch, a true legend in software development. Grady is the Chief Scientist for Software Engineering at IBM, where he leads groundbreaking research in embodied cognition. He’s the mind behind several object-oriented design concepts, a co-author of the Unified Modeling Language, and a founding member of the Agile Alliance and the Hillside Group. \r\n\r\nGrady has authored six books, hundreds of articles, and holds prestigious titles as an IBM, ACM, and IEEE Fellow, as well as a recipient of the Lovelace Medal (an award for those with outstanding contributions to the advancement of computing). \r\n\r\nIn this episode, we discuss:\r\n• What it means to be an IBM Fellow\r\n• The evolution of the field of software development\r\n• How UML was created, what its goals were, and why Grady disagrees with the direction of later versions of UML\r\n• Pivotal moments in software development history\r\n• How the software architect role changed over the last 50 years\r\n• Why Grady declined to be the Chief Architect of Microsoft – saying no to Bill Gates!\r\n• Grady’s take on large language models (LLMs)\r\n• Advice to less experienced software engineers\r\n• … and much more!

Architecture Philosophy Video