Code with craft, architecture with judgement
Domain-Driven Design, hexagonal architecture and clean code to build robust, scalable systems that are easy to evolve. 28 years turning business requirements into technology that lasts.
Software architect: I design systems that keep entire companies running. And the curiosity that started it all is still intact.
The curiosity goes way back: a Commodore 64 at home, a kid of about 9, and a question that soon stopped being "what shall we play?" and became "how does this work inside?". I taught myself BASIC and never stopped.
Then came the 8086, Turbo Pascal, Turbo C and a spell in the demoscene: real-time graphics effects with engines written from scratch. That school —where every CPU cycle counted— shaped forever the way I understand performance and detail.
A computer engineer, I have been programming professionally since 1998. After years with Microsoft technologies, in 2014 I made open source —PHP and GNU/Linux— my home ground. Since then I design and build scalable software for very different businesses.
Today my craft is software architecture: DDD, TDD, hexagonal architecture, CQRS and modular monoliths. Technical decisions made with judgement and clean code that stands the test of time.
Where I add value
A true full-stack profile, forged over 28 years of craft. Strong in backend and architecture, with a complete view of infrastructure and product.
Principles, not fads
Trends come and go. What keeps a system alive over time are decisions made with sound judgement.
The domain rules
I model software around the business, not the other way round. The code speaks the language of the people who use it.
Truly decoupled
Ports and adapters: the business logic does not know whether there is a database, a queue or an API behind it.
Tests first
Business logic is always tested. Tests are the safety net that lets you evolve without fear.
Writing ≠ reading
I separate commands and queries when the system calls for it. Command Bus, queues and asynchronous processing.
No overengineering
A well-structured modular monolith beats a swarm of premature microservices. Judgement over hype.
Continuous learning
The more you learn, the more aware you are of what you do not know. Humility and curiosity as a method.
Things I have built
Real projects, told through the challenge and the solution. This is what best explains how I work.
Real time on top of an ERP with no source code
The heart of the business was a VB6 ERP, obsolete and with no source code available. I designed an event-driven architecture around it: SQL Server database replication, CDC with triggers and stored procedures to capture every change, and CQRS projections that the other systems consume in two ways: events published to RabbitMQ (push) and a GraphQL API (pull). The result: a change in the ERP is reflected across the other systems within seconds, without touching a single line of the original software.
Cloud ERP from scratch
A complete cloud ERP built from the first commit, with Laravel at its core: a well-modelled domain, separated layers and business processes orchestrated with care. Sales, purchasing, warehouse, invoicing, HR, technical service (SAT)... on a platform that grows module by module without piling up technical debt.
e3commerce: multisite engine
A multisite e-commerce engine built from scratch in Laravel —no CMS, no third-party platforms—, developed entirely by me. Each client registers their shop and gets their own online store, with a product catalogue, payment methods and shipping options configurable from the panel. Fully self-managed: the business runs its day-to-day shop without depending on a developer.
"Aparcar": car parks and pay-and-display
App and backend built for the municipal mobility company of Reus. The pay-and-display ticket is issued from your phone, with street and tariff geolocation, and you pay for exactly the time you were parked: more convenience, less cost. In car parks, entry and exit are fully automatic thanks to number-plate recognition (OCR). Launched in Reus in 2016, it now also runs in Cambrils and Tarragona.
Read the news ↗Where I usually lend a hand
The topics I enjoy the most and where experience lets me add something. If you are wrestling with one of these, write to me and we will look at it together.
Architecture and DDD
System design, hexagonal architecture and domain modelling: the decisions that shape a project for years.
Legacy systems
That legacy nobody wants to touch. How to modernise it without stopping the business, even when there is no source code: I have been there.
Events and CQRS
Queues, projections and real time. When they pay off, when they are just noise, and how to land them without pain.
Talks and mentoring
Sharing what I have learned in talks or training sessions, and walking alongside developers who want to grow.
Third prize in the demoscene with "No Form"
A demonstration of real-time graphics and sound, programmed entirely in C++ and Assembler. The most honest proof that performance and detail matter down to the very last CPU cycle.
Press play on tape█
Got a technical problem on your mind, or simply feel like talking architecture? Press play and tell me about it.
Let's talk →Shall we talk?
If you think I can lend you a hand with a problem, want a second opinion on an idea or are looking for someone to give a talk, write to me. I read everything that reaches me.