Speaker

David Gomez G.

David Gomez G.

Java Champion, Developer Advocate at @Axon_IQ

Java Champion, Developer Advocate en @Axon_IQ

Madrid, Spain

With a CS degree from the Polytechnic University of Madrid (UPM), David has been working in Software development for more than 20 years, taking part in projects for different projects in sectors like Banking, Defense, Services & Retail, Maritime and ground transport. Currently, David holds the position of Developer Advocate at AxonIQ.io

David also participates regularly in training sessions: he has been a Certified Spring Source Instructor from 2010 to 2015. Since 2011 he is one of the instructors for the advanced JavaSpecialist Courses in Spain.

Since 10 years ago, David has been also involved regularly with several tech communities, events and conferences both as organizer or/and as speaker. Currently is one of the organizers of the Madrid Java User Group and part of the technical committee for Lambda World (a functional programming conference) in Cadiz, South Spain. He was recognized as JavaChampion in January 2020.

He has been speaking at conferences like OpenExpo Europe 2019, Open Source Lisbon 2019, T3chFest (2014, 2016), JBCNConf (2015, 2016, 2017, 2018, 2021), Codemotion Madrid (2012, 2019), Codemotion Milan (2016), Voxxed Days Zürich (2016), OpenSouthCode (2017), Spring I/O (2011, 2012 2015), Liferay DEVCON (2018), Software Crafters Barcelona (2018).

He is also a regular speaker at several Java User Groups and local tech meetups like MadridJUG, MálagaJUG, CastellónJUG & deCharlas.com, MilanJUG, ValenciaJUG, VigoJUG, BarcelonaJUG, comunidad hispana de JUGs, MadridJS, Hackathon Lovers…

Ingeniero Técnico en Informática de Sistemas por la UPM, David lleva más de 20 años dedicado al desarrollo de software y ha participado en proyectos para Banca, Defensa, Servicios y Transporte marítimo y terrestre. Actualmente David desarrolla su labor como Developer Advocate en AxonIQ.io.

Además de como desarrollador, David realiza labores habituales de formación, ha sido Instructor Certificado para Spring Source y actualmente imparte los cursos avanzados de Java de JavaSpecialists en Español.

En los últimos 10 años, también ha estado involucrado de forma habitual y constante con varias comunidades tecnológicas de desarrollo, eventos y conferencias como ponente y organizador. Actualmente es uno de los co-organizadores del grupo de usuarios de Java en Madrid, del grupo de usuarios de Liferay y también es parte del comité técnico de Lambda World en Cádiz.

Ha sido ponente en conferencias como OpenExpo Europe 2019, Open Source Lisbon 2019, T3chFest (2014, 2016), JBCNConf (2015, 2016, 2017, 2018), Codemotion Madrid (2012, 2019), Codemotion Milan (2016), Voxxed Days Zürich (2016), OpenSouthCode (2017), Spring I/O (2011, 2012 2015), Liferay DEVCON (2018), Software Crafters Barcelona (2018). También ha dado charlas en varias comunidades locales como MadridJUG, MálagaJUG, CastellónJUG & deCharlas.com, MilanJUG, ValenciaJUG, VigoJUG, BarcelonaJUG, comunidad hispana de JUGs, MadridJS, Hackathon Lovers…

Awards

Area of Expertise

  • Media & Information

Topics

  • Java
  • Concurrency
  • Java and Server-side
  • Java user Group Leader
  • Developer Advocate
  • Developer Relations
  • Developer Communities
  • Event Sourcing
  • CQRS & Event Sourcing
  • Event Streaming
  • Event Driven Architecture
  • Event driven systems
  • distributed systems
  • Distributed Software Systems

Sessions

Hey Debugger! Follow that Message! en es

As we move from monolithic systems to distributed or "event-driven" systems, one of the challenges we may face is following the execution thread of the business logic for a particular case.

In traditional monolithic systems, it is somewhat easier to follow the execution flow by simply following the code and the calls between components/methods.

But when we move to distributed, asynchronous, or event-driven systems, we will find ourselves at a point where we send a message and feel like the one who reaches a deep river with no bridge to cross it... we will see our message disappear without an easy way to follow it.

Or we will feel like in those movies where the bad guys run away at full speed and the good guys have no car to follow them....we will be left with the urge to get in the cab and tell the driver... Follow that message!

In this talk, we will explore the problem of debugging distributed systems and look at some important things to keep in mind when debugging distributed systems.

¡Hey Debugger! ¡Sigue a ese mensaje! en es

Cuando pasamos de sistemas monolíticos a sistemas distribuidos, o a sistemas "Event-Driven" uno de los retos que nos podemos encontrares el de seguir el hilo de ejecución de la lógica de negocio para un caso concreto.

En los sistemas monolíticos tradicionales es algo más fácil seguir el flujo de ejecución simplemente siguiendo el código y las llamadas entre componentes/métodos.

Pero cuando nos movemos a sistemas distribuidos, asíncronos o basados en eventos, nos encontraremos en un punto en el que enviamos un mensaje y nos sentiremos como el que llega a un profundo rio que no tiene un puente para cruzarlo... veremos nuestro mensaje desaparecer sin una forma fácil de seguirlo.

O nos sentiremos como en esas películas donde los malos se escapan a toda velocidad y los buenos no tienen coche para seguirlos.... nos quedaremos con esas ganas de subirnos en el taxi y decirle al conductor.... ¡Siga a ese mensaje!.

En esta charla exploraremos la problemática de la depuración de sistemas distribuidos y veremos algunas cosas importantes a tener en cuenta en la depuración de este tipo de sistemas.

Hidden gems and traps that you probably haven't thought of using Event Sourcing. en es

Most likely you have heard many concepts about Event-driven architecture, which is so popular these days. In this session we will focus on Event-Sourcing: and we will put it in context and compare it with other event-based communication mechanisms.

More specifically, we will answer three very precise questions:
- What: What exactly is Event Sourcing? And how does it differ from other techniques relating to Event-Driven Architecture?
- Why: What can Event Sourcing do for you?
- How: What should you be aware of and how should you implement Event-Sourcing to get the most out of it? But we will also mention things to be aware of if you want to avoid some uncomfortable pains and problems.

Finally, we will look at three real-world examples where event sourcing has delivered real benefits.

Beneficios y dificultades que (quizá) no pensaste de usar Event-Sourcing en es

Es probable que hayas oido muchos conceptos relacionados sobre las Event-Driven architectures tan utilizadas estos días. En esta sesión vamos a centrarnos en Event-Sourcing, y la pondremos en su contexto y compararemos con otros mecanismos de comunicación basada en eventos.

En concreto, responderemos a tres preguntas muy concretas:
- El qué: ¿Qué es exactamente Event-Sourcing? ¿Y cómo se diferencia de otras técnicas relacionadas con Arquitecturas Event-Driven?
- El Porqué: ¿qué te aporta Event Sourcing en tu caso?
- El cómo: ¿Qué debes tener en cuenta y cómo debes implementar Event-Sourcing para obtener lo máximo de sus beneficios (y evitar algunos dolores y problemas incómodos)?

Acabaremos mostrando tres ejemplos prácticos donde Event-Sourcing aplicado nos proporciona beneficios reales.

Building Monoliths that could scale (easily) to Microservices (only if they need to) en es

Today, many projects and applications are started with the goal of deploying them in the cloud to support a large requests load and be prepared to scale easily. When we look at large projects and get carried away by fads (or the hype), it's easy to fall into the temptation to start designing your entire application with a microservices architecture... Because that's what everyone's doing, right? But are microservices an end in themselves or a means to an end?

In this talk, we'll take a different approach: we'll go back to basics, look at the journey rather than the destination, and see how following DDD, CQRS, and event-sourcing practices will allow us to design and evolve our application starting with the simplicity of a monolith, but giving it the ability to scale to microservices when (and most importantly, only when) we need it.

Construyendo monolitos modulares que puedan escalar a microservicios (sólo si lo necesitan). en es

Hoy en día muchos proyectos y aplicaciones se arrancan con el objetivo de desplegarlas en la nube, de soportar una gran cantidad de carga y permitir escalar fácilmente. Si nos fijamos en los grandes proyectos, y nos dejamos llevar por las modas (o el hype), es fácil que acabemos cayendo en la tentación de comenzar a diseñar toda su aplicación con una arquitectura de microservicios ... Porque, ya sabes, eso es lo que todo el mundo hace, ¿verdad? Pero... ¿Son los microservicios un objetivo en sí o un medio para lograr un propósito?

En esta charla pensaremos en un enfoque diferente: volveremos a la base, nos fijaremos más en el camino que en el destino final y veremos cómo siguiendo las prácticas DDD, CQRS y Event-Sourcing nos permitirán diseñar y evolucionar nuestra aplicación comenzando con la sencillez de un monolito pero dotándole de la capacidad de escalar a microservicios cuando (y, sobre todo, sólo si) lo necesitamos.

JCON WORLD 2023

November 2023

DevBcn 2023

July 2023 L'Hospitalet de Llobregat, Spain

Codemotion Madrid 2023

May 2023 Madrid, Spain

David Gomez G.

Java Champion, Developer Advocate at @Axon_IQ

Madrid, Spain