layout | title |
---|---|
cv |
CV |
-
Bachelor´s degree, Computer Science (Universitat Rovira i Virgili — 2008-2014)
-
Exchange Program (Universität des Saarlandes — 2012-2013)
-
Certified Kubernetes Application Developer – CKAD (February 2023)
-
Apache Kafka – Kafka Streams for data processing (September 2019)
-
AWS Certified Developer – Associate (May 2019)
-
Certified SAFe 4 Advanced Scrum Master (November 2018)
-
ISAQB Certified Professional for Software Architcture (October 2018)
-
Spring Professional v4.3, Pivotal.io (November 2017)
-
Professional Scrum Master I Scrum.org (April 2017)
-
Java SE 8 Programmer OCA (April 2017)
-
Professional Scrum Developer I, Scrum.org (November 2016)
-
Spanish - Native
-
Catalan - Native
-
English - Fluent
-
German - Business
Led the development and implementation of the backend infrastructure for the groundbreaking IoT product, Aladin - Smart Meter. Instrumental in architecting a high-performance system capable of measuring voltage and current consumption, pinpointing energy losses, and significantly reducing operational costs for clients.
Key Achievements:
- Engineered a robust backend infrastructure capable of efficiently processing millions of requests per second, ensuring optimal functionality and scalability.
- Implemented a comprehensive solution leveraging Dockerized Kubernetes, employing ThingsBoard, PostgreSQL, Cassandra, and Kafka to guarantee system reliability, resilience, and uninterrupted operation round-the-clock throughout the year.
- Orchestrated Google Pub/Sub integration for seamless telemetry data storage, coupled with Google BigQuery's powerful Data Warehouse solution. This enabled advanced analytics, real-time insights, and efficient data processing.
- Developed an automated reporting system providing regular status updates to customers at specified intervals, ensuring they remain informed about their device performance and energy efficiency.
- Incorporated intelligent diagnostics features within the device, empowering proactive identification and resolution of potential energy losses, thereby enhancing overall system efficiency and reducing operational costs.
Stack: Kafka, RabbitMQ, Google Cloud, Docker, Kubernetes, PostgreSQL, Grafana, Prometheus, Cassandra, Google Pub/Sub, Googe BigQuery
Worked for various customers as a lead developer / architect in Scrum teams. I mainly encourage and help the clients to apply the best practices available in order to ship to production with confidence and as often as possible. This includes:
A) Using the latest versions available of Java (e.g., 21) and Spring versions among other libraries in order to avoid future CVEs
B) Following the TDD principle in order to clarify the requirements since the beginning and avoid future bugs. This will also help with the cycle management upgrades and the code quality.
C) Design by contract (Contract Driven Development). By defining an agreement (e.g., OpenAPI, JSON Schema Registry, etc.) the consumers and producers know exactly the information which is going to be exchanged.
Stack: Java 17-21, Spring (Core, Reactive, AOP, Boot, Security), Kafka, AWS, Microsoft Azure, Docker, Kubernetes, PostgreSQL, MongoDB, JPA (Hibernate), ElasticSearch, AppDynamics, Git, Jira, BitBucket, Confluence, Maven, Gradle, Jenkins, Netty, JUnit, Mockito, Testcontainers, Intellij, Postman, SonarQube
Migration of the whole legacy system to the Azure cloud. The different components were integrated through Kafka by applying the Event Driven architecture.
The microservices were developed by following the methodology TDD with the help of the TestContainers library and the latest version of Junit (5). These services were packaged in Docker containers and deployed in a Kubernetes cluster. Deep knowledge on Kafka in order to migrate millions of customers/cards with the highest performance by using re-keying and partitions.
Stack: Java 11, Spring (Core, MVC, Reactive, AOP, Boot, Security), Kafka, Azure Service Bus, Microsoft Azure, Docker, Kubernetes, Rest-API, H2, MSSQL, PL-SQL, AppDynamics, JPA (Hibernate), Git, Jira, BitBucket, Confluence, Maven, Jenkins, Tomcat, Netty, Neuvector, JUnit, Mockito, Testcontainers, Intellij, Postman, SoapUI, SonarQube
In Germany, I started on a new project called "Deutsche Bank mobile application". I was in charge of the development of REST layer which provided services to iOS and Android mobile apps.
As the leader developer, I was responsible for coordinating the work of my team members in an agile environment while developing myself.
Stack: Java 8, Kotlin, Spring (Core, MVC, AOP, Hateoas, Boot, Security), Rest-API, Weblogic, MongoDB, Splunk, Git, Jira, BitBucket, Confluence, Maven, Jenkins, Jbehave, Gatling, Selenium, JUnit, Mockito, Powermock, IntellijJ, Postman, SoapUI, SonarQube, Findbugs, Checksyle
After being promoted to Senior developer I kept working for the Online Banking of Deutsche Bank.
Stack: Java 8, Spring (Core), Struts, JSF, PL-SQL, EJB, Git, Subversion, Jira, BitBucket, Maven, Teamcity, Weblogic, Jbehave, Veracode, Shell scripting, JUnit, Mockito, Powermock, Eclipse, Checkstyle
During this time I was involved in two different projects:
-
Nextgen: Providing financial information to bank clients about their liquidity. I was responsible of the development of the UI, middle layer and database.
-
Online banking of Deutsche Bank:
HTML based banking portal for Deutsche Bank. Development included client side as well service layer programming.
I was also in charge of scanning code for possible security flaws (Veracode) and implementing the necessary improvements.
Stack: Java 8, Spring (Core) Struts, JSF, PL-SQL, Git, Subversion, Jira, BitBucket, Maven, Teamcity, Weblogic, Veracode, Shell scripting, JUnit, Mockito, Eclipse, Checkstyle