About Me

I’m a software developer with over 15 years of experience building scalable web applications. I specialize in developing event-driven services and managing asynchronous communication between (micro)services.

I advocate for DevOps, Clean Code, SOLID principles, and TDD, applying DDD, Hexagonal Architecture, CQRS, and Event Sourcing for complex projects.

I’ve contributed to high-performance systems, supporting applications with up to 20M monthly active users and APIs handling 200K requests per minute. I have experience working in FinTech and payments departments within startups, building systems that process millions of daily events.

As a technical mentor and engineering collaborator, I enjoy guiding teams, working with product stakeholders, and driving initiatives that deliver business impact. I thrive on learning and exploring new technologies and programming languages.


Work Experience

💵 Thunes

Senior Software Engineer @ Global Accounts
[Dec 2022 - Present]
Barcelona

👔 Business: Thunes is a B2B company that powers payments for the world’s fastest-growing businesses; from Southeast Asia's super app Grab and Gig Economy giants, to Fintech leaders such as PayPal and Remitly. With a single, simple connection, your business and customers can send payments to and get paid in every corner of the world. Instantly. We support 79+ currencies, enable payments to 130 countries, and help you accept 300+ payment methods.

⏱️ Challenge: The global accounts team provide the global accounts solution allowing our partners to collect money abroad using a regular bank account. Our solution provides all required security checks as sanction list screening (SLS), transanction monitoring, safeguarding, etc.

⚙️ Tech: We developed web services using Go and following hexagonal architecture and event-driven architecture. The second allowed us to prevent data inconsistencies while dealing with complex money and data flows. We also owned our internal UI tool which used VueJS.

🤼 Team: The team was formed by one tech lead, one software engineer and myself as senior software engineer.

💵 Impact: Our team impact was mainly in money and data flows. Providing a solution that was compliant with any regulation in the country where we integrated.

#golang #postgresql #event driven #sqs #sns #kubernetes #gitlab #vuejs #docker #typescript

⚡ Wallbox Chargers

Senior Backend Developer @ Core/Platform Squad
[Aug 2020 - Nov 2022]
Barcelona

👔 Business: Wallbox makes electric vehicle (EV) smart chargers that can be remotely controlled from the MyWallbox site and Wallbox mobile app. Also, the chargers can take energy from the EV using them as a power source for the building.

⏱️ Challenge: Wallbox is growing super fast which makes us go the extra mile every day so we are ready to manage the active users increase. Also, the team is growing fast too so this challenges how everything is organized.

⚙️ Tech: We created and maintained services mostly based on Go and PHP. We also had some old NodeJS services just to maintain where we didn't add new features. We were creating more new isolated services that came from a big legacy monolith. We went for an event-driven communication fully asynchronous that gave us reliability enough to deal with problems we might have faced in one of the services. We applied Hexagonal Architecture, DDD and Clean Code because we felt that was the way to have a good codebase that was easy to extend and to understand.

🤼 Team: I was on the platform team. A one that was growing fast having already 12 members which 10 of them were backends. Our main purpose was maintaining the legacy monolith doing big refactors so got easy to add new features, splitting part of it on new services, helping the TechOps team deal with our infrastructure, having proper monitoring and alerting in place so we caught any problem before our users.

Impact: From the backend team we had a huge impact on the company since any business logic of the chargers was inside our services ecosystem: remote charger actions, authorization, authentication, group of users management, charging metrics, user notifications, payments... I also had an impact on our team members mentoring some of them for the new architecture we were implementing.

#php #golang #symfony #ddd #hexagonal architecture #cqrs #event driven #sqs #sns #terraform #ecs #gitlab #behat #docker

🤝 Letgo

Senior Backend Developer @ Monetization Squad
[Apr 2019 - Aug 2020]
Barcelona

I was maintaining and developing new features for all payment (micro)services of Letgo which includes Bump Ups, Subscriptions (We created this (micro)service when I was on Verticals squad), and payments (Apple, Google Play Store, and Stripe).

All the services were developed using PHP 7 and Symphony, most of them used No-SQL databases over DynamoDB, a few though had some RDS database with MariaDB.
We also had several Golang lambdas to handle some scheduled jobs and to react to events. Also, for the sake of speeding up some features, we implemented some features on other team projects made with Scala.

A part of the main projects, I created and maintained a Golang CLI tool to help us with some fixes and maintenance that needed to be applied to a big volume of data.
Also, I was in charge of migrating two of our main services to Kubernetes: payments and bumps.

The devs in the squad were also handling part of our Terraform setup, so we could create and modify SQS queues, SNS subscriptions and filters... in a faster way.

The squad used scrum and was formed by backends, sysadmins, iOS developers, Android developers, QAs, TPM, POs, and BIs.

#php #golang #symfony #ddd #hexagonal architecture #cqrs #event driven #sqs #sns #terraform #kubernetes #jenkins #behat #docker
Senior Backend Developer @ Verticals Squad
[Aug 2018 - Apr 2019]
Barcelona

I joined one of the squads in charge of preparing the app to be able to sell new kind of products and to handle the new subscriptions system that works with Google and Apple purchases.

The squad used scrum and was formed by 4 backends, 1 sysadmin, 2 iOS developers, 2 Android developers, 1 QA, 1 TPM, and 1 PO.

We used PHP 7, MySQL for the write model, Solr for the projections of the read model, Symfony 3, Doctrine... we designed all the services following DDD and CQRS.
To communicate between (micro)services of our squad and the ones of other squads we used domain events, through AWS using SQS and SNS, so we got reactive systems with very low number of direct HTTP calls.
We tested our API's and consumers with Behat and our code with PHPUnit.

We also used Golang to develop small lambdas and processes to handle and manipulate data.

#php #golang #symfony #ddd #hexagonal architecture #cqrs #event driven #sqs #sns #terraform #kubernetes #jenkins #behat #docker

🗒️ CMP Group

Backend Developer @ Mainstream Squad
[Mar 2017 - Jul 2018]
Barcelona

I was Backend Developer in one of the company teams in charge of two projects.

The first project was based on PHP and Node JS, and we did unit tests over PHPSpec and PHPUnit.
It was a background-checking site, operative only in the USA.
The interesting part of the project was getting all the needed information from several providers via API.
Also since it was kind of legacy project that was done fast and without tests we were increasing unit tests coverage, and doing TDD with the new features.
Another problem was MySQL performance, a bad design was making that service consume 80% of CPU. We solved that by adding proper indexes and updating some wrong-configured fields.
Also, I created NodeJS Lambdas over AWS, which were importing data from third-party APIs to a No-SQL database over DynamoDB.
This project had three services:

  • A PHP service that managed all the frontend and the API in charge of creating any content, access control... We migrated that project from PHP 5 to PHP 7, and from Silex 1 to Silex 2... we had fun doing that.
  • A NodeJS 4.7 service that did all the searches.
  • A new NodeJS 8 service where we were migrating all the searches. TDD with Mocha, Chai and Sinon.

The second one was a new project made from scratch following TDD and DDD. It was fully developed with PHP, using Symphony 3. The unit tests were made over PHPUnit.
It was a website that provided security for personal identification. It was also a product only available in the USA.
In that case, we had 2 services:

  • One static content service with Nginx, where we had all the front end. That frontend was fully HTML and JS, so we didn't have PHP mixed there, our API was fully separated.
  • One PHP 7 service with an API secured with OAuth using JWT tokens. The API was RESTful level 2 (see Richardson Maturity Model) starting adding hypermedia, so the idea was to jump to level 3.

The team was following Kanban, and we also used Event Storming for big features or new projects, like we did with the second one.

#php #symfony #mysql #datadog #newrelic #docker

🛎️ Enables Concierge

Backend Developer @ Core Squad
[Jan 2017 - Mar 2017]
Barcelona

I was a Backend Developer in a scrum team of 5 devs. We were creating new modules of API Rest based on PHP 7.

The API centralize all data management of the business and sales too.

We used Symfony 2 but only as an application layer. All the business logic was isolated and structured following DDD and Hexagonal Architecture.
Otherwise, we were following CQRS, so we had a read model and write model isolated. And we were using Event Sourcing on majority part of the project.

Security was over OAuth 2.0 using JWT.

After joining them, it turned out that the company wasn't in good financial health and they closed 3 months later.

#api #rest #php #symfony #ddd #cqrs #event sourcing #mysql #docker #json #ansible #oauth #docker

⛑️ Freelance

Fullstack Developer @ _
[Jun 2015 - Mar 2017]
Remote

Projects:

  • Motocard: New ERP to handle website products. Website connection with ERP SqlServer database.
  • Inforsa: Develop new API to read data from their data providers from API calls, FTP files... Develop new ERP to handle client and providers liquidations.
  • Pans&Company: Website and background processes maintenance.
  • Ribs: Website and background processes maintenance.

#php #laravel #angular #sqlserver #oauth #mysql #wordpress

📱 Nodo Ambar

Fullstack Developer @ _
[Feb 2013 - Dec 2016]
Sabadell

Migrate old TT2 to new NodoGestion.
Prepare the ERP for new sectors like energy and fishing distributors and factories.

#php #javascript #jquery #ajax #json #mysql #css #html #docker

📱 Codalia Research

Fullstack Developer @ _
[Feb 2010 - Dec 2013]
Sabadell

Maintain GestorTT which was a telephony ERP for Telefonica, Vodafone and Orange stores.
I was specifically working on logistics, commissions and liquidations sections.
Migrate old GestorTT to new TT2 based on PHP.

#php #javascript #jquery #ajax #json #mysql #css #html #vagrant ##asp #vbscript

NiWebTo Studio

Fullstack Developer @ _
[Oct 2008 - Jan 2010]
Manresa

Tailor-made websites from scratch and Drupal adaptations. Also, Drupal plugins creation.
I did corporate websites, social networks, back offices, online shops...

#php #drupal #javascript #jquery #ajax #json #mysql #css #html

Info PC Manresa

Fullstack Developer @ _
[Jul 2007 - Oct 2008]
Manresa

Tailor-made websites from scratch and Drupal adaptations. Also, Drupal plugins creation.
I did corporate websites, social networks, back offices, online shops...
Also, I was doing server administration for web, DNS and mail services over Debian servers.

#php #drupal #javascript #jquery #ajax #json #mysql #css #html #sysadmin #debian