Reactive Programming with Spring WebFlux
Understand how the reactive paradigm and non-blocking streams can transform the performance of your Java microservices.
// SOFTWARE ENGINEER
I value clarity and the long term. I build systems that are easy to understand, maintain, and evolve, where every decision has a clear rationale and doesn’t become fragile when things change.
// ABOUT ME
// APPROACH
These pillars define my approach to engineering. They are not technologies or frameworks, but design criteria that I apply independently of the stack.
C, Linux internals, processes, memory
Understanding how the operating system, memory management, and networks work at a low level allows informed decisions and efficient code writing.
provides
Technical depth and criteria
DDD, microservices, events, hexagonal
Design systems that are maintainable, testable, and evolve with the business. Separate the domain from the infrastructure for greater flexibility.
provides
Scalability and software clarity
Observability, CI/CD, resilience
Build systems that can be operated with confidence, with good observability and automatic recovery mechanisms.
provides
Capacity to deliver and maintain systems
// CAREER PATH
Throughout my career, I have worked on real-world projects that have allowed me to gain good practices in software development and understand how to take technical decisions in productive environments.
Jun 2024 - Present
Digital Value S.L.
Full-stack development in real production environments, including a booking system, an IoT management platform, and a headless CMS that played a key role in a complete municipal web portal renovation.
Mar 2023 - Jun 2023
VinfoVAL
Developed and maintained the Angular front end of a police management PWA, optimized for mobile use, used by law enforcment agencies to consult and manage operational information during real-time interventions.
Mar 2022 - May 2022
Inlogiq
Training and hands-on work with the Atlassian ecosystem, focused on advanced Jira configuration, process automation, and custom plugin development.
// PROJECTS
A selection of projects where I explain not only what I did, but how and why I made certain technical decisions.
A mini shell in C to deeply understand processes, pipes, redirections, and signals.
Movie search app with a reactive backend, hexagonal architecture, and modern Angular frontend.
Task and project management app with kanban boards, built with T3 Stack as a final degree project.
// MY SETUP
My environment is optimized for terminal-first work. Everything declarative, versioned, and reproducible on any machine.
Primary editor
With Nixvim, native LSP, telescope, treesitter. No unnecessary plugins.
Terminal emulator
GPU-accelerated terminal with panes, tabs and extensive customization.
Shell
User-friendly shell with fast prompt, git awareness and rich completions.
Search
Replacement for grep/find. Integrated with Neovim and custom scripts.
Desktop shell
I use Caelestia's config as a base and adapt it over time to match my daily workflow.
Backend IDE
For large Java projects when I need deep navigation, debugging, and advanced Spring integration.
Web browser
Primary browser for daily work, development, and debugging with strong privacy defaults.
API testing
Text-based API client, ideal for testing REST endpoints, organizing project collections, and versioning them with git.
Operating system
Fully declarative config. Flakes for total reproducibility.
Dotfiles
All user config managed with Nix. One repo, any machine.
Wayland compositor
Dynamic tiling, minimal setup and smooth animations on Wayland.
Containers
Containers and local orchestration of services for development and testing in reproducible environments.
Development assistant / LLM
Advanced debugging, PR reviews, system design, and help with technical decisions.
Pair programmer
Intelligent autocomplete, test generation, and refactors inside the IDE.
Code agent
Code agent integrated in the terminal, connected to GPT Codex 5.3 as the main LLM, to automate writing, refactoring, and code analysis within the development flow.
Technical notes, learnings and reflections on software engineering. No marketing, just what I find useful.
Understand how the reactive paradigm and non-blocking streams can transform the performance of your Java microservices.
Learn how to identify and solve the most common bottlenecks in the persistence layer of your Spring Boot applications.
A detailed guide on implementing the Ports and Adapters architecture to create robust and maintainable Java applications.
// CONTACT
Software engineer available to join new technical projects where architecture, code quality, and long-term sustainability are a priority, with a strong focus on building maintainable solutions and delivering value over time.