03 / experience

Work Experience

My professional journey and key contributions

01 / role

Backend Developer

Sidetours S.L.
February 2024 — Present

Legacy System Migration (AS400 → Laravel Microservices)

LaravelVueTailwind

Active participation in the progressive migration of the main system based on AS400 and DB2 to a microservices architecture using Laravel, Vue, and Tailwind.

  • Delivered 500+ features across 20+ microservices by applying DDD principles and Ports & Adapters architecture, contributing to the full migration of 100+ AS400 modules off the legacy system.

  • Enabled reliable asynchronous communication between 20+ microservices by integrating RabbitMQ into a shared internal library, applying choreography, command/fact events and SAGA patterns for distributed error handling.

  • Reduced duplicated code across 20+ microservices by building a shared library with global Value Objects and a query DSL with filtering, improving query performance by 42%.

  • Cut static analysis issues by 62% and critical SonarQube issues to 0 by introducing SonarQube and PHPStan level 4 into the development workflow.

  • Reduced deployment time from 6+ hours to 2 hours by automating CI/CD pipelines with Jenkins and containerizing microservices with Docker.

  • Shortened incident diagnosis time by centralizing logs with the ELK stack (Elasticsearch, Logstash, Kibana).

  • Saved half a week per cycle and reduced operational errors by automating a previously manual process.

Price Discrepancy Detection System

FastAPIVue.js

Internal tool built with FastAPI and Vue.js that detects and analyzes discrepancies between internal and supplier prices.

  • Replaced 20 hours per month of manual price review by building an automated dataset comparison service with FastAPI, processing 1000+ prices per run.

  • Identified 450+ anomalies and €10,000+ in price inconsistencies by generating structured reports with the Gemini language model, improving traceability of commercial discrepancies.

Batches Migration & Architecture Improvement

LaravelInertiaReact (TypeScript)Redis

Migration of batch processes from AS400 to a modern Laravel environment using Inertia, React (TypeScript) and Redis.

  • Migrated 200+ batch processes from AS400, redesigning business workflows to reduce legacy dependency and improve maintainability.

  • Processed 100+ jobs per day with a 99%+ success rate by implementing an asynchronous queue system with Redis, Laravel jobs and the scheduler.

  • Reduced time to detect failed emails and scheduled tasks from 3 hours to 15 minutes by building automated monitors and error dashboards with shadcn/ui.

Internal Ticket & Projects Analytics Platform

FastAPIReact (TypeScript)

Analytics platform giving IT project managers a global view of tickets and projects through KPIs and interactive dashboards, built with FastAPI and React (TypeScript).

  • Delivered the full-stack platform in 3 days by orchestrating a multi-agent AI workflow with Claude, using 5 specialised roles (tech lead, backend, frontend, data visualisation and code quality), each with its own documentation and defined communication protocol.

  • Minimised architectural rework during implementation by running structured AI-assisted design sessions to define the architecture, data model, design system and patterns before writing code.

  • Achieved a maintainable, scalable codebase with 90%+ test coverage and 0 Ruff/ESLint errors by applying clean architecture, SOLID principles and an automated code-quality review agent.

  • Gave project managers visibility over 10,000+ tickets and 70 projects across 5 IT teams by building interactive dashboards with KPIs, filters and trend analysis.

side quests

Personal Projects

Things I've built exploring ideas on my own time

BigDSA — Code Complexity Analyzer

PythonFastAPINext.jsMongoDBRedisGroq

A web tool that analyses source code to estimate its time and space complexity (Big-O) and explains the results with AI.

  • Estimated time and space complexity of Python code by building a static analysis engine based on AST traversal, with dedicated visitors for loops, recursion and allocation.
  • Reduced response time for repeated analyses from 100 ms to under 2 ms by implementing a Redis caching layer as a reusable mixin across services.
  • Made complexity results understandable for learners by integrating Groq-hosted LLMs to generate step-by-step explanations of each Big-O estimate.
  • Built secure user accounts with JWT authentication and bcrypt password hashing, on a feature-based FastAPI architecture with MongoDB.

Wine Classifier — KNN from Scratch

PythonNumPyPandas

A command-line K-Nearest Neighbors classifier built from scratch with NumPy to classify wines by type from their chemical features, as a hands-on way to learn the algorithm.

  • Implemented KNN from scratch using only NumPy — Euclidean distance, k-nearest lookup via argsort, and majority-vote classification with a closest-neighbor tiebreaker.
  • Applied min-max feature scaling so no single feature dominates the distance calculation due to a larger numeric range.
  • Validated the model with leave-one-out cross-validation across odd k values from 1 to 15, reporting per-k accuracy to find the best fit.
  • Built an interactive CLI with a classification mode and an --evaluate mode for comparing k values on the wine dataset.