Tomás Hidalgo

Senior Software Engineer

As a Software Engineer with over 4 years of experience in work and personal projects , I can assure that I have the experience and knowledge to be able to tackle new challenges.

My blend of professional experiences and rigorous academic background, balancing studies in Computer Engineering with an Advanced Technician Degree in Web Development, has honed my ability to work effectively under pressure and overcoming difficult moments of time management.

About

I am a young professional passionate about computer science, with a special focus on Backend Web Development. With over 4 years of experience, I have programmed in various languages, including Typescript, C++, Java, PHP, .NET, and Python.


I have also self-taught myself in several advanced topics, such as Event Modeling, Event Sourcing, Domain-Driven Design (DDD), Test-Driven Development (TDD), Continuous Integration/Continuous Deployment (CI/CD), Hexagonal Architecture, Docker, Command Query Responsibility Segregation (CQRS) and Event-Based Architecture.

Experience

May 2023 - Present
Tech Lead · Eunoia Digital
  • Mentoring several Junior Fullstack Developers and reviewing their decision-making processes.
  • Maintenance of various projects built with React, Django and NestJS.
  • Nestjs
  • NextJs
  • Django
  • MongoDB
  • RabbitMQ
October 2023 - May 2023
Mid-Senior Backend Developer · Newe
  • Migration to an Event-Driven Architecture.
  • Integration of mail service, carrier service and insurance service in our REST API.
  • Developing and desing stock control in our REST API.
  • Developing a marketplace for final clients and integration with our backoffice.
  • Resolving bugs in our business and refactor code using some pattern designs like Strategy.
  • Nestjs
  • Docker
  • MongoDB
  • RabbitMQ
February 2023 - October 2023
Mid-Senior Fullstack Developer · VentureLabs
  • Maintenance of various projects built with .NET and ReactJs.
  • I decoupled some Telegram and email services using RabbitMQ in a microservices architecture with workers.
  • Mentoring several Junior Fullstack Developers and reviewing their decision-making processes.
  • .NET
  • React
  • MySQL
  • RabbitMQ
October 2022 - January 2023
Junior Frontend Developer · Atmira
  • Implemented enhancements and new features for a Spanish bank's website. Utilized Angular for the frontend along with NGRX for state management, following the Redux design pattern. Worked within a SCRUM methodology and employed tools such as Git, BitBucket, Microsoft Teams, Jira, among others.
  • Angular
  • React
  • Redux
  • NGRX
January 2022 - October 2022
Junior Fullstack Developer · AllPentesting
  • Modified the frontend of a cybersecurity and email services web app using Docker, React, and Spring Boot.
  • Developed a RESTful API in Python using Flask and consumed it within a React application for a potential customer.
  • Spring Boot
  • React
  • Flask
  • MySQL
  • Docker

Projects

Fixtrack, a device repair app with NextJS and NestJs (Computer Engineering Final Project)
  • I developed a device repair application control and monitoring app using the NX monorepo template.
  • I implemented a hexagonal architecture in NestJS, DDD (Domain Driven Design), and CQRS (Command Query Responsability Segregatition) with Event Sourcing which has been designed following Event Modeling.
  • I used EventStore as the write database and MongoDB, Redis for reading database.
  • I built the frontend using NextJS, Storybook, and ChakraUI to offer an intuitive interface.
UcoLib, a mobile library backoffice with NestJs
  • I developed a mobile library backoffice with other classmates using React Native and Nestjs with microservices.
  • I implemented a hexagonal architecture in NestJS and DDD (Domain Driven Design).
  • I used MongoDB as a database and RabbitMQ for connect all microservices each other.
Connect 4 with Sockets with C++
  • I implemented a Connect 4 game using the C++ programming language.
  • I used sockets for client-server communication (TCP protocol).
  • The server hosts and manages multiple simultaneous games between different clients.
  • I implemented the Connect 4 game logic, including the detection of winners and ties.