Ignacio.
Telecommunications & software engineer
A telecommunications engineer who developed a passion for software engineering. I tend to make use of modern backend and CI/CD technologies to build solid web applications.
I have strong knowledge and a solid portfolio in the Node.js and TypeScript ecosystem, but I consider myself a polyglot developer with a strong interest in learning new technologies and programming languages. I have experience in backend development, CI/CD integration, and some infrastructure management. I’m passionate about software engineering and enjoy working on challenging projects that require innovative solutions.
Currently learning Rust, because I really miss compiled languages. Also Terraform, due to my recent interest in Infrastructure as Code (IaC) and cloud computing.
I am searching a workplace where I can grow as a software engineer, and where I can contribute with my knowledge and experience. I am open to new opportunities and challenges, and I am excited to be part of a team that values innovation and creativity.
I worked as a Tech Lead Software Engineer at Bether, where I was responsible for leading the development of a new web application. Starting from a demo frontend prototype, I have been involved in the design and implementation of the backend architecture, including the development of a RESTful API and serverless functions, offering a scalable hybrid architechture. I also performed database schema design, integration with third-party services, CI/CD integration and frontend development supervision.
A handful of significant projects I’ve contributed to (completed and in progress) include:
Main REST API monolith: Developed from scratch a NestJS monolith that serves as the main API for the application. This monolith is responsible for handling business logic and data storage, and it is designed to be scalable and maintainable. I have been involved in the design and implementation of the API endpoints, database schema, integration with third-party services, full CI/CD integration and publishing the API endpoints with a DNS subdomain record and a load balancer.
Serverless functions: I decided to build serverless architechture for functionalities that I wanted to isolate from the main monolith and allow them to scale independently, using AWS Lambda service.
Main website: Publicated the website on a custom domain via Cloudflare DNS, and developed full CI/CD integration with Cloudflare Pages, allowing automatic deployment of the website when changes are made to the codebase. I also contributed with some little development tasks.
Bether app: Developed full CI/CD integration with Cloudflare Pages, including automatic SDK generation for the repository, being aware of the environment (development, production…). I also contributed with SDK fetch calls integration, development of some additional functionalities and transversal refactorings.
Matrix: IaC repository to handle properly infrastructure management with Terraform CI/CD integration.
I have been working on the development of new features and improvements for the Wattwin web application. My role has involved collaborating with cross-functional teams to design and implement scalable new backend systems, involving backend engineering, libraries development, CI/CD integration tasks and some infrastructure management. My team also brought the use of good development practices, such as unitary, E2E and integration testing.
Some relevant projects I have worked on are:
Legacy API monolith: Developed new endpoints, refactored existing ones, implemented new features (mixins), fixed bugs and updated outdated dependencies in this repository built with Loopback framework. Relevant technologies used were AWS S3 for generated files storage, AWS SQS for batch processing of heavy tasks and Deepstream client for real-time communication (WebSocket).
Webhooks microservice: I migrated with my team a legacy Webhooks microservice developed with Express using AWS SQS queues, to a new microservice built with NestJS. This work included performing a deep refactoring, full CI/CD integration, unitary and integration testing, the migration of CRUD endpoints related to Webhooks data from the legacy monolith and the implementation of a dynamic SDK generator in the front-end repo that onboards easily new microservices without disrupting the existing legacy-monolith integration. I performed optimizations on data payloads in internal CRUD operations, reducing the average transaction size by 50%.
Customer API: Implemented an Infrastructure as Code repository that, through CI/CD integration, managed infrastructure deployment (AWS API Gateway), updating of a Postman workspace documenting the API and the generation of API documentation with a readme.io web page. Due to the environment aware nature of the CI/CD integration, this repository reduced in more than 75% the time required to deploy changes to the API and eliminated 100% of the time required to perform (previously) manual API documentation.
Backend components: A NodeJS custom package built by our team with almost 100% coverage with unitary testing. I built some library components that are used in the backend monolith and microservices, such as a wrapper of Analytics API SDK library and a Service-Repository pattern implementation of Elasticsearch NodeJS SDK library. Those components are used in the backend monolith and microservices, isolating the responsability of external dependencies upgrade and handling custom business logic inside the library, allowing upgrade external dependencies without breaking changes in the codebase and enforcing DRY development.
Nest components: Another NodeJS custom library of NestJS components that are used in NestJS microservices, including its unitary and integration testing. Some relevant components I developed are:
Completed my final semester internship at ITNow, where I worked on an existing database credentials management microservice. I developed additional features that enabled the integration between multiple new and existing internal microservices, improving system efficiency and interoperability.
Internship evaluated with a 10/10 score.
Specialization in Audiovisual Systems. Gained expertise in designing, implementing, and operating audiovisual products, systems, and services, including acoustics, image, audio, video, and multimedia environments. Discovered a passion for software development and deepened my understanding of audio and electronics.
Some relevant subjects related with software development and network communications:
Final Degree Project (TFG) in Telecommunications Engineering, supervised by Dr. Jorge Mata Diaz and Dr. Francisco Javier Ozon Gorriz.
The purpose of this project was to study the routing of voice signals in LEO satellite constellations, with a focus on the A* algorithm and heuristics in order to save computation time versus Dijkstra algorithm in shortest path between satellites calculation. Also, Yen Algorithm has been used with multidimensional graphs in order to provide routing solutions that provide extreme delay stability during a voice communication, and protected against satellite (node) failures.
10/10 score.
The development of the project has been contextualized in LEO satellite constellations and the possibilities they offer as a communications network, with particular focus on ground-to-air communications (aircraft).
The initial objective of this thesis has been the research of the A* shortest path routing algorithm, trying to find heuristic models that generate competitive performance versus the optimal path routing provided by the Dijkstra algorithm. At the same time, a graphical environment has been developed in order to show the algorithm’s behaviour.
Secondly, another algorithm (Yen) to provide alternatives to the shortest path without necessarily considering disjoint paths has been searched and developed.
To conclude, a jump into spatiotemporal domain perspective has been made, developing a methodology to establish routings that are able to provide real-time voice signals, while the delay steps through time are minimised, offering a reliable communications system. The results offer a new research framework, analysing the feasibility of the offered solutions.
The website you are currently visiting 😉. I’ve decided to build a fresh, dynamic and interactive portfolio, which I consider better than a static CV PDF file.
As a backend engineer, building this portfolio felt like sneaking into the art room: A completely frontend project — no APIs, no databases, no Dockerization in sight — just me, Hugo, and an embarrassing number of hours adjusting padding. It was a chance to “draw and paint” a little, design something visual, and flex muscles I don’t usually get to use.
I’ve used the fantastic Hugo Profile template to start with. Check it out in the git repository below!
I would like to thank also the is-a.dev project for providing this domain name for free.