Hi, my name is

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.

About Me

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.

Experience

Tech Lead Software Engineer
Bether
Dec 2024 - Apr 2025
Typescript TypeScript Javascript JavaScript Rust Rust Shell scripting GNOME Terminal NodeJS NestJS NestJS Docker MongoDB MongoDB AWS DynamoDB Amazon DynamoDB Jest Jest Bitbucket Pipelines Bitbucket Swagger Swagger React React pnpm pnpm npm npm AWS Lambda (Serverless architecture) AWS Lambda AWS Route 53 Amazon Route 53 Amazon Web Services Amazon Web Services GoDaddy GoDaddy Cloudflare Cloudflare Pages Cloudflare Pages Stripe Stripe Terraform Terraform Asana Asana macOS macOS

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.

    • Newsletter subscription: Endpoint that handles subscription of potential new clients (unregistered). This function involved the use of a particular Amazon DynamoDB instance and hCaptcha for human verification. Developed with NodeJS and Javascript.
    • Stripe Event Listener: Function that listens to Stripe events, validates its signature and payload and adds them to a FIFO queue, for batch processing. It is designed to handle unpredictable notification bursts as fast as possible. Developed with Rust.
  • 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.

Backend Software Engineer
Wattwin
Oct 2023 - Nov 2024
Typescript TypeScript Javascript JavaScript Shell scripting GNOME Terminal NodeJS Loopback LoopBack Express Express NestJS NestJS Elasticsearch Elasticsearch Docker MongoDB MongoDB Jest Jest Bitbucket Pipelines Bitbucket Swagger Swagger Angular Angular pnpm pnpm npm npm AWS S3 Amazon S3 AWS SQS Amazon SQS AWS API Gateway Amazon API Gateway Amazon Web Services Amazon Web Services Jira Jira macOS macOS

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:

    • Modules:
      • ApplicationEventEmitter: Handling of an event emitter that allows the dispatch of events through AWS Simple Notification Service easily using decorators.
      • Elasticsearch: A module that, interconnected with @nestjs/mongoose module, provides full and silent parallelization of data storage in MongoDB and Elasticsearch asynchronously based on MongoDB repository interactions.
      • STS: Use of AWS STS (Security Token Service) to assume roles in AWS accounts dynamically, in order to provide proper roles being aware of application environment (development, production) and developer credentials.
      • Custom config module: Wrapper of ConfigModule that handles the loading of environment variables from AWS Parameter Store, being aware of deployment stage (development, production…) and execution context (local or deployed). The purpose of this module is to provide a single point of configuration for the application, allowing the use of environment variables in a consistent way across all environments and applications, and eliminates the need to persist production credentials on the repositories. It also allows to load non-sensitive credentials from the repository in non-production environments and local context.
      • CrudModule: Integration with @nestjs/mongoose module, providing repositories that might implement repository/schema mixins offered in this module too (workspace based sharding, soft delete through status field…).
    • Guards: Custom guard responsible for request authentication and authorization, forwarding all checks to the existing authentication service.
    • Others: Multiple interceptors, pipes, etc., promoting the use of SOLID principles and DRY development.
Fullstack Software Developer
CROS Ingenieros
Mar 2023 - Oct 2023
Java Java Spring Boot Spring Boot Typescript TypeScript NodeJS MySQL MySQL Angular Angular npm npm
  • Backend Specialization: Although proficient in full-stack development utilizing Spring Boot (Java) and Angular (TypeScript, HTML, CSS), my primary focus and expertise are in backend development. I have contributed to the creation of robust and scalable server-side solutions, including work on a medical web application used by B Braun GmbH.
  • Windows GUI Applications: Developed user-friendly Windows applications using WinDev, with a particular emphasis on backend logic and system integration.
  • Database Management: I managed relational databases using Transact-SQL, executing complex queries across multiple SQL servers through OPENQUERY and Linked Servers to optimize data retrieval and storage.
  • Statistical Analysis Software: Designed backend systems for statistical analysis software, ensuring efficient data processing and user-friendly interfaces.
  • Hardware Troubleshooting: Proficient in resolving hardware issues, including access points, wired links, and power supplies, to ensure seamless industrial system operations.
Backend Software Developer Internship
ITNow
Sept 2022 - Feb 2023
Java Java Spring Boot Spring Boot Shell scripting GNOME Terminal MySQL MySQL PostgreSQL PostgreSQL Jira Jira Linux Linux

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.

Education

Bachelor's degree in Telecommunications Technologies and Services Engineering
C C Java Java Ruby Ruby Python Python Pandas pandas NumPy NumPy LaTex LaTeX

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:

  • Object Oriented Programming
  • Fundamentals of Computers
  • Introduction to Networks
  • Telematics Applications and Services
  • Audio and Speech Processing
  • Audiovisual Content Coding
  • Multimedia Communications
Certificate of Higher Education in Sound for Audiovisual and Shows
Centro Politécnico Villar
Sep 2015 - Jun 2017
This advanced specialized program provided extensive training in audiovisual and broadcast audio, including audio recording, mixing, mastering, live sound, and post-production. It significantly strengthened my skills in audio physics, frequency management, and advanced audio techniques, laying a strong technical foundation that has greatly enhanced my academic and professional growth in engineering.
Vocational Education and Training in Consumer Electronics
La Salle Barceloneta
Sep 2012 - Jun 2014
Specialized program in the installation and maintenance of electronic equipment, focusing on sound, TV, video, microinformatics, and telecommunications. Developed soldering skills, the ability to analyze electronic circuits, the capacity to repair and design analog audio processing circuits and a initial understanding of time and frequency dimensions in audio context. Gained expertise in fixing electrical installations and providing post-sale technical service with high-quality standards.

Projects

Strategies for Network Routing in LEO Satellite Networks providing voice services
Python Python Pandas pandas NumPy NumPy LaTex LaTeX

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.

Show abstract

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.

José Ignacio Portfolio website
Hugo Hugo Javascript JavaScript CSS CSS Cloudflare Pages Cloudflare Pages Cloudflare Workers Cloudflare Workers Github Actions GitHub Actions

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.

Achievements

Selection in Telefónica Acelera Startups Programme in Barcelona (Bether)
Bether project has been selected for Telefónica’s Acelera Startups programme in Barcelona (April 2025), where I performed the tech lead engineer role. One of only 10 projects chosen from hundreds of applications in this highly competitive initiative with Wayra. (More info about the programme)
Excellent mark in Fundamentals of Computers
Mastered procedural programming in Fundamentals of Computers subject, with C language.
Honors in Object Oriented Programming
Awarded with honors in Object Oriented Programming subject in my degree, where I learned those concepts with Java language.

Get in Touch

My inbox is always open. Whether you have a question or just want to say hi, I’ll try my best to get back to you!