Juan Luis García López
Software Engineer
In Madrid, Spain
General information
Introduction
Introduction
Senior Software Engineer with 17+ years of experience designing and evolving distributed, event‑driven systems. Strong product‑oriented mindset, combining platform engineering and domain ownership with close collaboration with product and stakeholders to deliver reliable solutions for both internal teams and end‑customers. Actively leveraging AI to enhance product capabilities, improve the Software Development Life Cycle (SDLC), and increase team effectiveness, while driving engineering best practices (TDD, CI/CD) and making pragmatic architectural trade‑offs.
Core Expertise
- Distributed systems and platforms designed for scale, reliability, and team autonomy
- Product‑driven engineering for internal platforms and customer‑facing solutions
- Event‑driven architectures and synchronous vs asynchronous trade‑offs
- Software quality, TDD, CI/CD, and long‑term system maintainability
Side Project
Exploration at the intersection of technology and music, including a data‑driven project for chord progression recommendation to support songwriting.
My best practices
I strongly believe in software that embraces an evolutionary design approach. There is no single architectural solution that fits every context, and maintaining a strong design requires continuous effort. This is why testing, supported by practices such as test-driven development (TDD), and ongoing refactoring, are essential to sustain quality over time.
I also believe in true CI/CD, minimising the time it takes to move code into production. This requires fast feedback cycles (e.g. pair programming), safe deployment techniques such as feature flags and shadow testing, and a solid test pyramid.
With the rise of AI, these practices become even more critical. AI enables teams to move faster and generate more code, increasing productivity. The downside only materialises when engineering practices are not strong enough to control complexity and maintain quality—making discipline in software engineering essential to fully benefit from this speed while ensuring long-term sustainability.
Languages
Technologies and tools
I master
- AWS
- C#
- C++
- Confluence
- Cucumber
- Cypress
- Docker
- Java
- JavaScript
- Jira
- JUnit
- Jupyter
- Kafka
- Keras
- Kotlin
- Makefile
- MQTT
- .NET
- .Net Core
- Numpy
- Pandas
- Pytest
- Python
- Spark
- Spring Boot
- TensorFlow
- TypeScript
I want to work with
- AWS
- AWS Lambda
- Azure
- Cypress
- Datadog
- Docker
- GraphQL
- JUnit
- Jupyter
- Kafka
- Keras
- Kotlin
- Kubernetes
- MongoDB
- MQTT
- .Net Core
- NodeJS
- Pandas
- PostgreSQL
- Pytest
- Python
- React
- Serverless
- Spark
- Spring
- Spring Boot
- SQL
- Tableau
- TensorFlow
- Terraform

