curriculum vitae
This is a description of my professional background and skills. You can download my CV in PDF format clicking on the icon.
Contact Information
| Name | Miguel Angel Medina |
| Professional Title | Software Engineer |
| mediagui@gmail.com | |
| Location | Madrid, Spain |
Experience
-
2026 - present Madrid, Spain
Senior Software Engineer
Base 100 S.A.
-
2023 - 2026 Madrid, Spain
Senior Software Engineer
InAtlas S.L.
I have developed and evolved several REST based microservices and a monotlith which is being converted into other services, extracting the security core and other parts as the reporting logic. I used to use sing Java 11/17, Spring Boot 2, PostgreSQL as database and Snowflake as datawarehouse. All of them deployed on an externalized AWS Cloud.
- Evolving and maintaining GeoBiz platform.
- Develop a GeoCRM platform, which is a CRM for the the defined industry areas for the GeoBiz platform, with a microservices architecture and an API first approach.
- Data selling API, which is a microservice that provides an API to sell data to customers, with a microservices architecture and an API first approach. Using GraphQL as query language and Spring Boot 2 as framework.
- Api Gateway, which is a microservice that will provide and check the authentication for the current and the future microservices, with a microservices architecture and an API first approach. Using Spring Boot 2 as framework and Keycloak as identity provider.
-
2022 - 2023 Madrid, Spain
Technical Lead
Neoris
Technical leadership of greenfield micro-services project for Zara. Responsible for architecture, technical guidance and mentoring of multidisciplinary team of 6 developers (2 interns). In parallel, making evaluations and giving regular feedback to a group of 15+ people
- Backlog management alongside the PO
- Design and implementation of microservices using MVC and hexagonal architecture with DDD.
- Successful technical management of critical project for workshop operations (pressing, packaging).
- CI/CD automation with Spinnaker and quality gates with SonarQube.
- Junior developers mentoring
-
2017 - 2023 Madrid, Spain
Senior Consultant
Neoris
Analysis, design and development in multidisciplinary agile team. Technical leadership in architecture of critical solutions for cash management and payments.
- Log4Shell vulnerability mitigation (CVE-2021-44228). Implementation of temporary solution until update to a secure version for all projects. Solution deployed to production in 1 day.
- Real-time cypher/decypher database in replacement to Oracle Transpaent Data Encryption (Oracle TDE) to comply with the Spanish LOPD.
- Development of a Java library/maven dependency that centralises and automates prevention of critical vulnerabilities (XSS, CSRF, SQL injection) in Java applications.
- LATAM payments platform integrated with 12+ banks (acceptance of cash, mixed and card payments).
- Cash order manager for Portugal (banking integration).
- Smart Cash System. user/role/permission management for cash machines. Real-time REST encryption/decryption service (performance-critical).
- Secure reverse proxy (iframe replacement, XSS/CSRF/SQL Injection prevention).
- OAuth 2 implementation and Azure Cloud integration.
- Mentoring in best development and unit testing practices
-
2012 - 2017 Madrid, Spain
Functional Analyst/Developer
TCS (Tata Consultancy Services)
Complete analysis, design and implementation of enterprise projects. Responsible for enhancements and maintenance of different projects.
- Design and implementation of enterprise CI/CD system using Jenkins + SonarQube + Maven + Archiva + SVN
- Complete architecture from taking requirements → use cases → design → implementation Security testing automation (OWASP ZED, Jenkins).
- Monolithic intranet application security improvements XSS/CSRF/SQL Injection prevention
-
2004 - 2012 Madrid, Spain
Head of IT Division
Madrid City Council (IT Department - IAM)
In charge of the IT division of the Madrid City Council, responsible for the design and implementation of the IT strategy and architecture of the city council. Responsible for the management of a team of 20+ people. Responsible for the design and migration of legacy systems to modern Java and Spring architecture.
- RPT Vista Software. Tool used search and query economic/professional data from 10,000+ employees (nowadays still in production).
- Legacy systems architecture migration from Visual Basic 6 to Java/Spring.
- Linux servers administration Debian + Apache + MySQL.
-
2000 - 2004 Madrid, Spain
Functional Analyst/Developer
Alfa Multimedia
Analysis, development and implementation of medical management solutions. In charge of the network infrastructure of the company. Responsible for the design and implementation of the IT strategy and architecture of the company. Responsible for the management of a team of 5+ people. Responsible for the design and migration of legacy systems to modern Java and Spring architecture.
- Medical office management software (GestMed). Deployed in 15+ clinics. Management software for Medical Associations from analysis to operational support.
- Ethernet infrastructure design and implementation.
- Windows NT/2000 and Linux servers administration.
Summary
Software engineer with over 20 years of experience in Java backend development, specialized in Spring Boot and JPA/Hibernate, now also proficient in Go, PostgreSQL, and cloud environments such as Snowflake. I have designed and maintained high-performance REST APIs, complex integrations, and scalable architectures for demanding production environments. I focus on backend development, software architecture, code quality, and practical system improvements.
Education
-
2000 - present Madrid, Spain
-
1995 - 1997 Madrid, Spain
Technical Degree in Computer Systems
CENEC Formación - Virgen de la Paloma (Vocational Training Center)
IT
Skills
Backend Development (Expert): Java SE/EE, Spring Framework (Core, MVC, Batch, Data, Security), Spring Boot, Microservices, Hexagonal Architecture, Hibernate/JPA, GraphQL, Redis
Database Design (Advanced): PostgreSQL, Snowflake (Data Warehouse), Oracle 11g-19c, MySQL, SQL Server, Redis
Frontend Development (Intermediate): JavaScript ES6+, Vue.js 2-3, jQuery 3, Bootstrap 3-5, Angular, TypeScript
Cloud & DevOps (Advanced): Docker, Jenkins, CI/CD, Git/GitHub, GitHub Copilot, Kibana, AWS Cloud, Azure Cloud, Spinnaker, SonarQube, Go/Golang (In progress)
Testing & Security (Advanced): JUnit 5, Mockito, OWASP Top 10, RSA Encryption, OAuth2, XSS/CSRF/SQL Injection Prevention, ESAPI, Vulnerability prevention and mitigation
Management Tools (Advanced): Jira, Wrike (issues), Notion (documentation)
Professional Tools (Advanced): Git/GitHub, Maven, Postman, SonarQube, JMeter, IntelliJ IDEA Ultimate, Jira, Confluence
Languages
Spanish : Native speaker
English : C1 Level - EOI Madrid (in progress)
Interests
Programming: Software development, software architecture, code quality, design patterns, clean code, refactoring, software craftsmanship
Certificates
- Advanced Features of Java 21 - LinkedIn Learning
- Complete Guide To Java Testing with JUnit 5 & Mockito - LinkedIn Learning
- Functional Programming with Java - LinkedIn Learning
- Java Profiling - LinkedIn Learning
- Java Memory Management Values and References - LinkedIn Learning
- Java Refactoring Best Practices - LinkedIn Learning
- Java Advanced Concepts for High-Performance Development - LinkedIn Learning
- Java Lambdas and Streams - LinkedIn Learning
- Java Tips and Tricks - LinkedIn Learning
- Aprende Unit Test en Java con Junit 5 y Mockito - Udemy
- JPA Avanzado - Uso profesional de JPA con Hibernate - Udemy
- Java Application Performance Tuning and Memory Management - Udemy
- Modern Java Mastering Features from Java 8 to Java 25 - Udemy
- Programacion funcional en Java con Lambdas y Streams - Udemy
- Spring Framwork y Spring boot - Udemy
- Master Java. Unit testing (JUnit) - LinkedIn Learning
- Test-Driven Development in Spring Boot with JUnit and Mockito - LinkedIn Learning
- Go Practice Functions - LinkedIn Learning
- Go Standard Library - LinkedIn Learning
- Transition from Java to Go - LinkedIn Learning
- Unit Testing in Go - LinkedIn Learning
- Master Python - LinkedIn Learning
- Python Advanced - LinkedIn Learning
- Python Advanced 2 - LinkedIn Learning
- Python Essential Training - LinkedIn Learning
- Python Common mistakes and how to fix them - LinkedIn Learning
- 8 Git Commands You Should Know - LinkedIn Learning
- Ditch Your Git GUI. Customize Terminal - LinkedIn Learning
- GitHub Quick Tips - LinkedIn Learning
- Git Github todo un sistema de control de versiones desde cero - Udemy
- Como implementar GitFlow en Gitlab y Github - Udemy
- Curso de Git y Github - GIT PROFESIONAL desde cero - Udemy
- Master GitHub Copilot - LinkedIn Learning
- Advanced Design Patterns. Design Principles - LinkedIn Learning
- AWS Certified Cloud Practitioner (CLF-C02) Cert Prep - LinkedIn Learning
- Azure Functions Essential Training (2019) - LinkedIn Learning
- Azure. NoSQL development with CosmoDB - LinkedIn Learning
- Design Patterns. Creational - LinkedIn Learning
- Master Apache Kafka - LinkedIn Learning
- Programming Foundations. API and Web Services - LinkedIn Learning
- Software Architecture. Creating Sustainable Systems Essential Training - LinkedIn Learning
- Apache Kafka con Java, Spring framework y AWS - Udemy
- Arquitectura Software Moderna DDD, Eventos, Microservicios - Udemy
- Big Data y Spark - ingenieria de datos con Python y pyspark - Udemy
- Snowflake - The Complete Masterclass - Udemy
- Docker de principiante a experto - Udemy
- Kubernetas para desarrolladores - Udemy
- Working with Docker - OCI Containers using Podman - Udemy
- SOLID and Clean Code Principles - Udemy