I'm a product-minded software engineer who believes in the perfect balance between technical excellence and business value. This mindset, combined with my experience in Domain Driven Design (DDD) and Clean Architectures, allows me to build systems that are not only technically sound but also align perfectly with business objectives.
I count with more than 8 years of experience in software development, spanning backend, frontend, and mobile development; although most of them developing backend systems. I've always been involved in the full software development life cycle, from architectural design and solution devising to implementation, continuous integration, deployment and delivery.
While I'm technology-agnostic and comfortable across the full stack, my true passion lies in backend development. I excel in Elixir, Golang, and Node.js with TypeScript, using these tools to craft clean, maintainable, and well-tested code. With my experience spanning backend, frontend, and mobile development, I bring a comprehensive perspective to every project I undertake.
I believe in building software that stands the test of time through simplicity and pragmatism. My commitment to clean, well-tested code leads to powerful but also maintainable software. Whether I'm designing microservices architectures or building user-facing applications, I focus on delivering practical solutions that solve real problems without unnecessary complexity.
Skills
Continuos learning
Mentoring ability
Analytical thinking
Problem solving
Team player
Conflicts resolution
Time management
Leadership
Work Experience
Dec 2022 — Now
2 years, 2 months so far
Cabify connects private users and companies with the means of transport that best suit their needs. Its main objective is to make cities a better place to live. For this, it seeks to decongest the streets by providing, through technology, a safe and quality transport option.
Started as part of the Business Growth team, where we care to bring the best value to new customers and ensure customers acquisition in a B2B environment. After one year in the company (January 2024), I moved to our big brother team: Business Experience.
In the Business Experience team, we take care of improving the customer experience with our platform and services, and focus on the retention and happiness of our clients, also trying to increase the invoicing via developing new features and add-ons they can subscribe to. Those new features are either generic ones (available to all clients that pay for them) or custom, tailor-made ones (asked by a big client).
I make this possible from the engineering side by:
Developing back-end services with Golang and Elixir.
Breaking a Ruby monolith into microservices
Being an important part of the technical and architectural decisions.
Doing my own DevOps. Making the code and the infrastructure work together.
Shipping services with the help of Docker and Kubernetes.
Monitoring for a good SLA with Grafana and Prometheus.
Technologies
Jun 2022 — Dec 2022
5 months
TaxDown is the first company that simplified and democratized the tax declaration in Spain, through a mobile and web app meant for people who don't know about taxes, laws and finances.
They have quickly grown to positioned as the Spanish industry leader.
As a member of the team, I'm part of the developers that make this possible in a user-friendly but also fully-automated way, which allows us to get the best result at the lowest costs.
Some of my work here includes:
Developing back-end services using Domain Driven Design (DDD) and Hexagonal Architecture.
Being an important part of the technical and architectural decisions.
Doing my own DevOps. Making the code and the infrastructure work together.
Using serverless for a better scalability and performance.
Fully AWS cloud integration.
Technologies
Sep 2021 — Jun 2022
10 months
Leading multidisciplinary teams with designers, DevOps, back-end and front-end developers.
Creating projects from scratch for Venture Builders.
Using agile methodologies, such as Kanban or Extreme Programming (XP).
Taking customer requirements and giving them advice to create the product they need.
Technical definition of the product, including functionalities, design, architecture and infrastructure.
Task and team workload management. Resource management.
Software's security and quality assurance.
Assisting my teammates and mentoring new hires.
Contact point and technical reference for the client.
Managing the final delivery of the software.
Technologies
Dec 2019 — Sep 2021
1 year, 10 months
Acid Tango is a digital product design & development studio that helps funded startups and venture builders innovate.
As a full-stack engineer, I help companies create their product from scratch or improve their current ones.
I do that mainly in the back-end, using technologies such as NodeJS, NestJS and Docker. I work closely to the client, along with the front-end and design team, to build high-quality software.
From time to time, I also help with the front-end using technologies such as React, Next.js or Expo.
Usually we use AWS as the infrastructure for our applications, creating them with Terraform and deploying them using continuous delivery pipelines with Travis, Github Actions, or Gitlab CI tools.
Technologies
Jan 2018 — Dec 2019
2 years
Administration and maintenance of GNU/Linux servers.
Implementation and virtualization of services through Docker and Vagrant.
Development of distributed applications with React, Python and Go.
Continuous delivery and continuous integration.
Automation of tasks in Linux systems (python and bash scripting).
Use of relational databases such as MySQL and PostgreSQL.
Technologies
Jan 2017 — Jan 2018
1 year, 1 month
Python developers team leader at the Delegación de Estudiantes (DE) of my university. During that year under my leadership we obtained the following achievements of what I am proud of:
To migrate the old infrastructure from Python2 to Python3.
To remodel the entire infrastructure to a micro services architecture by developing and REST-API-driven system.
To integrate the DE infrastructure with the university one, in collaboration with the University IT services, in order to get closer to the students.
Technologies
Achievements
During these years I have obtained several achievements I'm proud of, starting from the most recent ones:
At Cabify, we had an small but very old service and codebase, that was untested and undocumented. This service was in charge of calculate corporate users spending and apply spending limits. Most members of the team were aware of what the service did, but not how it worked. Also, we had a few problems with the behavior of the service that leaded to some annoying random issues for our users that happened from time to time and we were not able to reproduce. As a Senior Software Engineer, I proactively asked to my manager to let me work on this service for 3 days, which he agreed. On that time, fulling dedicating my working hours to this service, I was able to:
Add tests to the codebase, covering unit, integration, acceptance and end-to-end tests. I was able to cover most of the codebase, achieving a 80%+ code coverage from zero in only 3 days.
Type each public function call of the service, which was untyped before as the programming language (Elixir) didn't support it when the service was initially developed. This helped us to find unhandled runtime errors and edge cases that were unnoticed before, and better take advantage of the language features and the IDE linters.
Document each public function call of the service, treating documentation as first-class citizen, which in the other hand, is something Elixir embraces. Like with the previous bullet, this help us to take advantage of the IDE features and speeds up the work for those that may come after me.
Write a comprehensive documentation of the service, describing the architecture, the design, the patterns used and the most important details of the implementation. This documentation, that rests as Markdown files in the codebase, is now the main source of information for the service, and it's used as a reference for new developers that join the team.
As a Project Manager & Tech lead in Acid Tango, I managed a multidisciplinary team of up to seven people, including a designer, a DevOps, and multiple front-end and back-end developers, to build from scratch a fully software solution and digital product for an Acid Tango client. From ideation to the MVP release and further improving. At the same time, I was an active developer of the team, and also mentoring new hires.
In my first project at Acid Tango, I was one of the main promoters of a mayor refactor of the entire IT infrastructure of one of our clients, migrating from a failing AWS-lambda environment to a fully-working, cohesive, scalable, tested and maintainable microservices architecture, using distributed REST APIs with Kubernetes, domain driven design and hexagonal architecture.
While working at the Laboratorio del Departamento de Informática, at the UC3M university, I detected a space for improvement in the services provided by the Laboratorio to the students, related to IT infrastructure, and I was able to propose a solution and to implement it from the initial idea to the final and fully-working production environment. I used that work as my Bachelor's Degree final thesis, for which I got honors.
Education
Sep 2019 — Sep 2022
3 years, 1 month
90 ECTS Master's Degree. Partial-time enrollment (three years duration instead of one and a half year), due to studying it while full-time working at Acid Tango.
Finished it with honorable distinction, obtaining honors in my Master's Thesis.
Sep 2015 — May 2019
3 years, 9 months
I studied my Bachelor's Degree in Computer Science and Engineering at the Universidad Carlos III de Madrid (UC3M), with a specialization in computer science (areas: maths, AI, data analysis, computational complexity).
Finished it with honorable distinction, obtaining honors in my Final Degree Project.
During my time at UC3M, I also actively participated in multiple students associations and projects like:
The Delegación de Estudiantes (DE UC3M), during the four entire academic years. In fact, I was elected Campus Delegate during my second year.
The Linux Users Group (GUL UC3M).
A famous students-made event for new technologies: T3chFest UC3M.