- ElectromapsSenior PHP DeveloperENERGÍAjunio de 2022 - marzo de 2023 (10 meses)Barcelona, SpainI led the integration of the platform with Cognito authentication system. I analyzed the current system and proposed the solution and the tasks to develop for the three systems we had, allowing to migrate the existing user base in a transparent and seamless way, without having to reset user passwords. I implemented the required Lambdas using Python and Golang, applying hexagonal architecture. We used an event-driven architecture to keep our systems and external providers in sync.I developed a billing system to generate invoices for different currencies, taxes and countries. In order to generate the PDF, I used Latex, as it is a utility created specially for that purpose. I implemented a promotional code system with race condition checks and rate limiting to avoid abusing the system.Some other tasks developed:- CQRS applications development using PHP.- Taught several trainings for good practices: hexagonal architecture, DDD, CQRS, objectcalisthenics, regular expressions, testing...- Integrate quality tools such as mutation testing, static type analyzers, architecture layervalidators...
- FilminSenior PHP DeveloperCINE & AUDIOVISUALfebrero de 2021 - junio de 2022 (1 año y 4 meses)The company had a sudden increase in concurrent users due to the pandemic. My job consisted on designing and developing new systems within the company to allow it to scale in code. I also helped modernize the existing codebase to use good practices, such as SOLID patterns, hexagonal architecture, DDD, CQRS...I led a team of five people to redesign Filmin’s home page under a tight deadline. Filmin’s home page is accessed by millions of people using a variety of devices (mobile, tablet, web, video-game consoles, TVs), so performance was key. We developed an API using Symfony as framework with a hexagonal architecture, allowing Protobuffers and JSON request and response formats while keeping the domain clean. Features were fully tested using unit, integration and functional tests. We implemented several layers of caching systems. As we have external developers that integrate with the API, we used a design-first approach writing our specifications using OpenAPI, and then we generated documentation for clients to consume. We also generated Typescript and Protobuf objects that can be consumed by clients.I led the development of the new encoding system of the company, integrating an external provider into the existing backoffice to generate all the video format required by the encoding team.I led the development of in-app purchases integrations with AmazonPay and GooglePay. I designed the architecture of the system with the domain in mind, so any other provider could be added without needing to modify the domain layer.Some other tasks developed:- CQRS applications development using PHP.- Decouple legacy projects from Laravel using hexagonal architecture.- Taught several trainings for good practices: hexagonal architecture, DDD, CQRS, objectcalisthenics, regular expressions, testing...- Integrate quality tools such as mutation testing, static type analyzers, architecture layervalidators...- Wrote technical blog posts for the engineering team: https://dev.to/filmineng
- Unviersitat Popular de GranollersTeacherfebrero de 2019 - febrero de 2021 (2 años)Granollers, Barcelona, SpainCourses taught:- Filosofia contemporània: Course analyzing different aspects of our everyday life: chatter, boredom, image, ecofeminism, human supremacy, body and technology.- Filosofia de la negació: history of Philosophy course explaining aspects of negation of different traditions: Hellenism, Buddhism, Islamic Philosophy, Feminism and Modern and Contemporary thinkers (Hegel, Heidegger, Byung Chul Han).
- Master of PhilosophyUniversitat Autònoma de Barcelona2015Master of Philosophy - MPhil
- Bachelor of Engineering in Computer ScienceMolde University College2011Bachelor's degree, Computer Engineering
- Bachelor of Engineering in Computer ScienceUniversitat Autònoma de Barcelona2011Bachelor's degree, Computer Engineering