Principal Software Engineer

Software Engineer passionate about technology always looking for the best solution in terms of performance, scalability, resilience and security.

I am continuously focused on improving & mechanizing as many processes as possible within the software lifecycle by applying:

  • API First and automatic code generation (archetypes and conversion of OpenApi into source code) to follow best practices & establish OpenApi as source of truth.
  • Feature branch as strategy to reach the fastest way to work with multiple developers.
  • Github Actions to automate the CI/CD process.
  • Hard & strong automatic code review (CodeClimate) to ensure the quality and continuous delivery to production.
  • API versioning based on the major version & different instances for them.
  • Powerful integration test (over 90% coverage) and API contract test for quality assurance.
  • Automation testing in staging environment to ensure the stability of the production environment. An automatic regression test in production environment to guarantee uninterrupted service.
  • Notifications on social media (Slack, Google chat) and Personal Mobiles to guarantee 24/7 service.

Experience

Principal Software Engineer

Wefox Group
Jan.2023 - Present Barcelona (Spain)

Async RAG (AI) application to digitalise any insurance documents following regulatory rules & using different LLMs depending the use case.

  • End To End python AI implementation & solution.
  • Async digitalisation using Celery & Redis as message broker.
  • Haystack, Langchain, Weaviate, Flowise, FastAPI, Celery.

PaaS (Platform As a Service with Multi-tenant strategy) to simplify the relation between Distributors, Brokers, Manufacturers & Final Customers.

  • Lead the team to implement the foundations (control plane) of the platform.
  • Design the multi-tenancy architecture of the platform taking care:
    • Business OKR's to adopt the best solution in terms of performance & costs. The PaaS is a business based on economy of scale.
    • Document RFC's to adopt the best solution in terms of performance, scalability, resilience and security.
    • Data isolation in tenant level using Postgres-RLS (Row Level Security)
    • Tenant & Identity context propagation using an extra header in the request
    • New authorisation approach decoupled from authentication using custom new Permission API & Open Policy Agent
    • SDK library to ensure consistent multi-tenancy adoption in all the domains.
    • Migration plan to adopt multi-tenancy pool model solution
      • Database migrations
      • Broker migration
      • SDK library adoption
    • AWS infra definition to support multi-tenancy
      • EKS (4 clusters) as container manager using Karpenter. Ingress per domain as Load Balancer.
      • AWS API Gateway as Public gateway using lambda authorizers
      • Spring Cloud Gateway as domain gateways
      • RDS Postgres (as database) applying CQRS pattern (synchronized replicas to read/write)
      • Redis as distributed cache
  • Implementation of the foundations library & design of the platform architecture:
    • API services using Hexagonal to ensure decoupled modules.
    • Foundations library using Starter patterns & covering reactive (WebFlux).
    • Database Schemas & RLS (definition & modifications) under Liquibase.
    • Apache Debezium as CDC to inject data into the Data Lake using Kafka connectors and Kafka Streams.
    • JOLT to transform JSON's.

Technologies used:

  • Java 17
  • Spring Framework (Boot, Cloud)
  • Python (AWS lambda authorizers)
  • AWS RDS Postgres (RLS - Row Level Security)
  • Redis (distributed cache)
  • OPA (Open Policy Agent)
  • AWS Lambda / Step Functions
  • AWS API Gateway
  • AWS EKS
  • JOLT
  • python 3
  • Haystack
  • Langchain
  • Weaviate
  • Flowise

Principal Software Engineer (Claims domain)

Wefox Group
Jan.2021 - Jan.2023 (2 yrs) Barcelona (Spain)

Lead the Claims team to accomplish these goals:

  • New Claims API using ontology in the OpenApi definition of the damage (coverage extension) syntax definition.
  • Automatic fraud detection using AI.
  • Automatic car claim evaluation using AI.
  • Deprecate legacy payout system & design automatic integration with finance.
  • Google AI Dialogflow to facilitate the user’s input of claims.

Lead the Heroku Connect (sync Salesforce data with SQL database) deprecation project.
Design & implementation of a cheaper custom solution to reduce the high costs of Heroku Connect.

  • Bidirectional sync between Salesforce and RDS Postgres.
  • Kafka as a broker to work in async way.
  • Apache Debezium with kafka connector (as CDC) to synchronize from Postgres to Salesforce.

Technologies used:

  • Java 17
  • Spring Framework (Boot, Cloud Stream)
  • AWS Lambdas
  • AWS Step Functions
  • Apache Kafka (KStreams, KSql)
  • Apache Debezium
  • Google Dialogflow Chatbot (AI)

Senior Engineer

Wefox Group
March.2019 - Jan.2021 (2 yrs) Barcelona (Spain)

API first adoption as a methodology to work.

  • Automatic code generation for DTO’s & API controllers.
  • “Feature branch” as strategy to reach the fastest way to work with multiple developers.

Design a common Hexagonal Architecture for all the Microservices implementations.

  • Archetype for Maven lifecycle tool.

Microservice architecture (design and implementation) for ‘Backend For Frontend (BFF)’ to provide services to Mobile / Web Apps.

  • GraphQL API to connect Mobile and Web Apps with BFF.
  • gRPC (protobuf) to connect BFF against Core Microservices.

Microservice architecture (design and implementation) for backend core to provide business rules related with the new Insurance Company called ONE.

  • Step Functions and Camunda BPM for orchestration and Business Processes. Using BPMN notation. Claim coverage validation, Fraud detection. Calculate the costs of any claim.
  • gRPC (protobuf) for synchronous communication between Microservices.
  • Apache Kafka as a broker to work in async way.

Technologies used:

  • Java 17
  • Spring Framework (Boot, Cloud Stream)
  • GraphQL (Apollo)
  • RDS Postgres
  • Apache Kafka (KStreams, KSql)
  • Camunda BPM
  • gRPC (protobuf)

Senior Engineer

Financefox (Wefox Group)
Dec.2014 - March.2019 (4 yrs + 3 mos) Barcelona (Spain)

IOS Mobile App for Switzerland market to facilitate the switch process between Insurance Companies.

  • Viper architecture as a design pattern (View, Interactor, Presenter & Router).

Monolith architecture (design and implementation) for Backend For Frontend.

  • Design taking care the OKR’s & low budget.
  • RabbitMq for async operations.
  • Enterprise Java (Spring Extension) Common library for all microservices. Simplifying dependencies.
  • Decoupled microservices architecture into same Github repository.

Frontend for Backoffice (offers).

  • AngularJS as a framework.

Technologies used:

  • Swift
  • Cocoapods
  • AngularJS
  • Java 11
  • Spring Framework (Boot, Cloud Stream)
  • Spring Integration
  • Heroku Connect (Sync between Salesforce & Postgres)

Mobile Engineer

Ameu8 (Everis)
Jun.2012 - Nov.2014 (2 yrs) Barcelona (Spain)

B2B IOS Mobile App (ipad) for Monsanto (South Africa market).

  • Viper architecture as a design pattern (View, Interactor, Presenter & Router).
  • Possibility to work offline. Background synchronization.
  • Salesforce integration using a Java middleware (Backend For Frontend).

BCA (British Car Auctions).
Shoppers use the app to confirm bets placed by the moderator.

  • IOS Mobile App (ipad) to automate car auctions. Online App using custom gestures.
  • Viper architecture as a design pattern (View, Interactor, Presenter & Router).

BCP (Central Bank of Peru).
IOS Mobile App (ipad, iphone) that automates all daily tasks of any end user.

  • Viper architecture as a design pattern (View, Interactor, Presenter & Router).

Technologies used:

  • Swift
  • ObjectiveC
  • Cocoapods
  • SQLite
  • Java 11
  • Spring Framework (Boot)
  • Spring Integration
  • Salesforce

Senior system Analyst

Accenture
Jun.2008 - May.2012 (4 yrs) Barcelona (Spain)

B2B IOS Mobile App (ipad) for Colomer (Revlon - cosmetics).
Revlon’s sales team uses the app to sell in hairdressing salons.

  • Viper architecture as a design pattern (View, Interactor, Presenter & Router).
  • Possibility to work offline. Background synchronization.
  • SAP integration using a Java middleware (Backend For Frontend).

Backend Application (Technotree) - Helsinki (Finland).
Messaging Server for Telecommunications Operator (Swisscom, Sonera).

  • Voice mailbox (iphone), Video mailbox, SMS, Streaming, Alarms, Notifications
  • Developed using JAVA open source.

Technologies used:

  • Swift
  • ObjectiveC
  • Cocoapods
  • SQLite
  • Java 8
  • Spring Framework
  • JAX-WS-RS (cxf)
  • Hibernate
  • JBOSS
  • ESB (under JBOSS) as process orchestrator.

Skills & Tools

Frontend

  • Vue.js
  • AngularJS

Backend

  • Spring Boot
  • Spring Cloud
  • Java 17
  • Hibernate
  • Kotlin
  • Python
  • Typescript
  • PostgreSQL
  • MongoDb
  • Apache Kafka
  • AWS Step Functions
  • Camunda BPM
  • OpenApi
  • Git actions
  • UML
  • Kubernetes
  • Terraform
  • Open Policy Agent
  • Amazon Verified Permissions
  • Salesforce
  • Weaviate
  • Haystack
  • Langchain
  • Flowise

Other

  • Linux (Debian & Ubuntu)
  • macOS
  • Windows 10
  • JIRA
  • Scrum (agile)
  • Docker

Education

  • MS in Computer Science
    Open University of Catalonia (UOC)
    2000 - 2006 GPA: 8.5
  • Master
    CCNA (Cisco)
    2003 - 2003 GPA: 9.5

Language

  • English (Medium)
  • Italian (Advanced)
  • Spanish (Professional)
  • Catalan (Professional)

Interests

  • Home Automation
  • Table Tennis
  • Open Water Swimming
  • Cycling

Organizations