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
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)
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
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
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
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
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 ScienceOpen University of Catalonia (UOC)2000 - 2006 GPA: 8.5
-
MasterCCNA (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
-
since 2024
-
since 2000
-
since 2014
-
since 2023
-
since 2023