Software Engineering, UPM Madrid
I earned my degree in Software Engineering from UPM, Madrid. The program covered Unix systems, C++, Java, web development, Android applications, project management, agile methods, testing, and quality.
Backend software engineer focused on Node.js, TypeScript, API design, and scalable cloud architecture on AWS.
Core stack
Backend systems, cloud infrastructure, and product-facing engineering tools used across the projects and roles shown below.
As a Senior Software Engineer at Criptan, opens in new tab, I develop backend services with Node.js and TypeScript on an event-driven AWS serverless architecture. I define and deploy services with AWS CDK and work across Lambda, ECS, DynamoDB, queues, and event buses.
I work with both SQL and DynamoDB data models and use database events to trigger downstream workflows. I also lead greenfield backend projects and the ongoing migration of core business logic from PHP to TypeScript.
My role includes close collaboration with operations and product teams to refine requirements and ship systems that stay aligned with product and client needs.
At Plingo, opens in new tab, I helped design the architecture and backend services for the mobile application. My work covered feature planning, API design, implementation, and backend testing.
I improved performance by refactoring the existing codebase and worked with a stack built on Node.js, MongoDB, Mongoose, Redis, and Socket.io. I also configured AWS services and handled deployments with Docker, ECS, Lambda, and CodePipeline.
Beyond the backend, I maintained internal Lambda functions, contributed to the React Native mobile app, and shipped admin features in React-Admin, deployed through S3 and CloudFront.
I started at Auth0 on the Sustainment team, where I investigated issues across the codebase, identified root causes, and implemented fixes in collaboration with other engineering teams.
I also documented incident analysis and solutions for internal knowledge sharing, and regularly helped teammates triage internal requests while working in a remote-first team.
Later I joined the Protocols and Sessions core team, where I worked on authentication protocols and session management with a strong focus on cross-system architecture and reliability.
I joined as a Full Stack Engineer and was promoted to Lead Software Engineer within three months. I helped design, build, and deploy a live cryptocurrency platform that included both an exchange and a trading product.
My work covered APIs built with Node.js, Express, and Swagger, frontend development with React and Redux, and real-time communication through websockets.
I also managed AWS and Docker deployments and worked across PostgreSQL, Redis, MongoDB, and Socket.io to support production-grade trading infrastructure.
I led the development of a single-page application using React, Redux, and Redux-Sagas, porting an existing Django and Bootstrap product to React while following Material Design guidelines.
I worked closely with the backend team in an Agile process, and also built Android applications in React Native plus supporting web applications in React to explore future product features.
Alongside the frontend work, I developed backend services with Node.js using both REST and GraphQL approaches and handled deployment with Docker.
At bbvaapimarket.com, I worked in a Scrum team building a developer portal for managing API access. I started with Selenium tests, then moved into frontend development on AngularJS and Liferay as the product expanded.
I also built Java-based Liferay portlets and worked on Node.js tooling that transformed RAML definitions into published HTML, CSS, and JavaScript documentation.
After the beta release, the product shifted from Angular on Liferay to a SPA backed by a REST API, and I joined the backend team to build internal services with Java and Spring.
During my master's degree, I worked in a student development team using Scrum and three-week iterations to build a socially oriented MOOC learning platform.
I contributed to both design and implementation across AngularJS, Node.js, CoffeeScript, Neo4j, and MariaDB. On the backend, I built REST APIs and worked with both graph and relational data models.
The project gave me my first real-world experience on a full web product and helped me build a practical understanding of the software development lifecycle.
Formal background
Training across software engineering, distributed systems, and earlier technical studies that shaped a practical, systems-first mindset.
I earned my degree in Software Engineering from UPM, Madrid. The program covered Unix systems, C++, Java, web development, Android applications, project management, agile methods, testing, and quality.
In my final year, I joined a group internship project where I developed a desktop application for refactoring source code after SQL query changes. That work became the basis for my graduation project.
I later completed a Masterβs in Computer Engineering focused on Distributed Software and Services, with deeper study in cloud technologies, distributed systems, and a full-stack university internship.
Before university, I completed a two-year program in Maintenance and Management of Industrial Equipment, with training in quality assurance, process management, planning, development, and testing.
During this project I worked as a backend software engineer, including:
Through this experience, I strengthened my expertise in AWS cloud architecture and scalable backend system design.
As part of my role, I primarily focused on server-side development where I was responsible for designing and implementing various functionalities and services on AWS.
I was responsible for both the server and client sides of the project. Starting from scratch, I began by building basic functionality on the server side and then moved on to the client side once the server had been set up.
I worked closely with the CEO to implement functionality based on market-specific requirements, while also ensuring that the project was fully customizable using SQL triggers and functions at the database level.
My goal was to create a system that could be adapted to different fiat currencies and cryptocurrencies for trading. As a result, I made the project fully customizable to meet the needs of various clients.
First deployed crypto exchange: Exir , opens in new tab , since December 2017.
I was responsible for both server and client-side development on this project. My main task was to refactor and migrate the codebase to a new structure.
On the server side, I migrated the codebase from mongoDB to PostgreSQL and refactored the existing code to use promises instead of callbacks.
On the client side, I built the skeleton of the current design and developed core components for the trading screen while contributing product and UX feedback with the designer.
During the first stage of the project, I contributed across frontend development with AngularJS, SASS, and jQuery, CMS development with Liferay, and scripting for internal services using Bash, Python, and Node.js.
In the second stage, my focus shifted to backend development using Java and Spring. A significant part of my contribution was processing RAML files to generate static API documentation that was published on the portal.
You can see one example here , opens in new tab .
A guide to building GraphQL APIs with Node.js and Couchbase spatial views.
A tutorial on designing REST APIs with Node.js and hapi.js using Couchbase as the database.
Available for backend roles
If you are hiring a backend software engineer, send me an email at jmn8718@gmail.com or reach out through the platforms below.