Conversación con Eduard Montserrat
En primer lugar quería saber qué te llevó a fundar Stream Hatchet. ¿Fue tu pasión por los esports? ¿Las ganas de tener tu propia empresa? ¿El potencial que le veías al mundo de los datos?
El potencial que veía en el sector de los videojuegos, en particular esports y gaming media. Siempre he jugado a videojuegos, poder desarrollar una carrera en esta industria me resultaba muy interesante. Por aquel entonces, en 2016, nos parecía claro que los esports seguirían creciendo a un gran ritmo. Se trataba de un concepto nuevo, con muchas oportunidades para nuevos proyectos.
Durante los dos primeros años, no lo veía como un trabajo. Sencillamente, me resultaba muy motivador crear algo desde cero combinando data y gaming.
Y desde una perspectiva de Data & Analytics, ¿cuál fue el principal reto que supuso la creación de la empresa?
Al principio, como buenos ingenieros, buscábamos el sistema perfecto. Lo más nuevo y potente. Hablamos con Oscar Romero, nuestro profesor de bases de datos en la facultad, la UPC-FIB. Nos dimos cuenta de que estábamos haciendo over-engineering. No necesitábamos montar un sistema de datos tan sofisticado. Tuvimos que relajar mucho la ambición del proyecto, o si no nos hubiésemos quedado a medias.
Otro reto fue coger fluidez con sistemas cloud, como AWS. Esas plataformas eran demasiado complejas para recién licenciados. El primer producto usaba instancias virtuales simples en Digital Ocean.
Imagino que en la actualidad usáis multitud de fuentes de datos (APIS de plataformas de streaming, etc). ¿Podrías contarme cuáles son las principales fuentes que usáis?
Sí. Empleamos decenas de APIs como las que proporcionan las plataformas de streaming. Aunque no se trata de agregar todas las APIs disponibles, la clave para nosotros ha sido dar contexto a los datos. El reto es combinar los datos de manera que el resultado aporte algo nuevo y mejor, como mínimo 10x lo que se tenía antes. Nosotros intentemos ofrecer un análisis propio. Creo que no basta con ofrecer datos en crudo. A nuestros clientes solemos decirles que nosotros ofrecemos varias lentes para leer los datos. Ellos eligen la lente que les conviene más. Intentamos que nuestros clientes lo tengan fácil para interpretar los datos.
Y de estas fuentes ¿cuáles son las más complicadas de gestionar y procesar? ¿Por qué?
Al ser nosotros quienes decidíamos qué hacer y cómo, no hemos tenido serios problemas gestionando datos. Hemos ido a nuestro ritmo. Haciendo lo que creíamos que tenía sentido. Evitando definir metas poco realistas.
Dicho eso, la innovación es constante. Cada año procesamos más información de manera más rápida y permitiendo consultas más complejas. En los últimos 2 años hemos pasado de analizar 25 billones de métricas diarias a 100 billones.
Hemos sido afortunados porque hemos tenido tiempo para diseñar y mejorar. Muchos proyectos no tienen tiempo para madurar los sistemas.
En términos de herramientas y plataformas de gestión y almacenamiento de datos ¿en qué consiste vuestro stack actual?
Nuestra infraestructura se encuentra mayormente en AWS. Solemos usar varios de los servicios gestionados por AWS. De esta manera nos ahorramos mucho tiempo en mantenimiento. Como dijo Steve Jobs: “el código más rápido, que no da errores y que no necesita mantenimiento es el código que nunca necesitas escribir”.
Bromas aparte, podemos definir el stack de manera cronológica:
Ingesta de datos combinando varias instancias EC2 y Amazon Kinesis Firehose
Todos los datos son almacenados en S3
Airflow ejecuta tareas programadas en funciones lambda y Athena
Los datos extraídos son almacenados en distintas bases de datos, dependiendo del uso. En particular usamos RDS, ElasticSearch, MongoDB y SingleStore
El objetivo que tenemos es expandir la operativa con SingleStore. Hemos mejorado la performance hasta 10x en comparación con motores de SQL tradicionales. Este servicio utiliza almacenamiento columnar que acelera algunas operaciones, especialmente agregaciones.
Los datos son consultados por nuestros clientes a través de dashboards o Business Intelligence. La web es propia y programada desde 0 en Nodejs. La comunicación entre la web y las bases de datos se realiza por medio APIs propias.
Usamos Amazon Glue y Athena para análisis ad-hoc para clientes
Por último, y casi diría que lo más importante es tener un buen sistema de avisos. Monitoreamos todos los procesos. De manera automática recibimos informes diarios por email y Slack. El sistema incluso puede hacer llamadas autónomamente al teléfono del CTO, Albert, si alguna cosa va realmente mal.
En muchas ocasiones a la gente le encanta explicar historias de éxito. Pero yo creo que de los errores se aprende muchísimo. Te voy a pedir que me digas los dos-tres grandes errores que en términos de Data & Analytics cometisteis en Stream Hatchet
Hemos hecho muchas cosas mejorables, pero no considero que sean errores. Mirando a posteriori, es fácil señalar. Me gusta la palabra inglesa trade-off, me veo que hago tradeoffs todo el día. Teniendo en cuenta las limitaciones que uno tiene hay que intentar sacar el máximo provecho. Nosotros éramos buenos en programación y teníamos mucha motivación por hacer algo por nosotros mismos. Éramos conscientes que no teníamos mucho conocimiento de negocio, ni prácticamente experiencia. Eso nos limitaba mucho. Así que apostamos por dedicar nuestros esfuerzos a hacer algo en lo que podíamos marcar diferencia. Sabiendo que muchas otras cosas no irían bien. Y no pasa nada. Cuando uno empieza hay que quitar hierro al asunto y divertirse, si no, no es manejable. En el peor de los casos, estábamos aprendiendo mucho solo con intentarlo.
Para no dejarte sin respuesta, con la vista puesta atrás, hubiese sido mejor dedicar más tiempo al business model e interactuar más con los clientes/usuarios. Crear una comunidad alrededor de un proyecto es muy recomendable. Digamos que no hay una solución buena y una mala, depende del uso que el cliente haga.
Hablemos ahora de personas. ¿Qué tipo de perfiles son necesarios para un buen trabajo de Data & Analytics? (Nota: aquí la idea es que hables de perfiles tipo Data Engineer, Data Scientist y puedas añadir una pequeña descripción de su función)
No puedo hablar de manera genérica, hay muchísimas situaciones. Pero puedo hablarte como nosotros, como startup, hemos ido creciendo:
El Data Engineer ha sido el rol clave para nosotros al principio, ya que delimita lo que es posible hacer y lo que no. El data engineer diseña las bases del proyecto. Cualquier fallo a nivel de diseño se magnifica significativamente en posteriores etapas. Es fundamental tener el tiempo para hacer pruebas. Hacer benchmarks con datos muy parecidos a los reales para así asegurarse de una óptima arquitectura.
Una vez diseñada la arquitectura es turno del Data Analyst o Scientist hacer puente entre engineering, cliente y project manager. Es en ese momento, con toda la información encima de la mesa, que se toman las decisiones importantes para el futuro del proyecto.
Otra pieza fundamental para nosotros es él Data Curation. Nos dimos cuenta de que en los datos que ofrecíamos había huecos considerables. El data curation tiene como objetivo limpiar los datos, mejorar la taxonomía y coordinar la entrada de datos manualmente. Nosotros hemos apostado con determinación por la curación de datos. Creemos que aporta un valor añadido importante y nos diferencia de los competidores.
Si el proyecto es lo suficientemente grande se puede incluir un experto en Machine Learning. Esa persona tendrá que buscar maneras de obtener insights imposibles de conseguir con métodos tradicionales de analytics. Por ejemplo hacer predicciones o buscar anomalías
Hay otros roles que me dejo. Pero en el mundo startups, previsiblemente no habrá presupuesto para tener tantos roles especializados. Hay que escoger bien y buscar perfiles más polivalentes. En empresas más grandes, habrá más posibilidades para desarrollar un equipo completo de data desde el primer momento. Pero habrá mucha menos flexibilidad para experimentar.
Termina esta frase. Un buen Dashboard es aquel que…
Buena pregunta hehe. Es aquel que el cliente tiene en las páginas más visitadas del navegador.
Más allá de lo que hacéis en Stream Hatchet. ¿Qué casos de uso de Data Analytics en el mundo de los esports te parecen más potentes? Yo recuerdo haber visto algún video sobre el uso de datos para que los “gamers” mejoran su estrategia mientras juegan partidas, pero supongo que tiene que haber otros muchos
Exacto, el tema de coaching para gamers tiene un buen tirón. Hay muchas opciones, algunas son el eye tracking, medir la rapidez con el teclado y analíticas de rendimiento dentro del juego. Incluso he visto que se usa la medición de pulsaciones para reducir estrés y aumentar la concentración. Hay una combinación muy chula de hardware, data analytics y entender las particularidades de cada juego.
Pero en general diría que ya hay muchas empresas desarrollando esos temas.Si estuviera empezando de nuevo miraría de hacer algo en un sector nuevo. Por ejemplo en VR. Las posibilidades de juntar esports con VR son muy interesantes.
Es una pregunta un poco tópica, pero la tengo que hacer ¿Qué es para ti la Inteligencia Artificial? ¿Qué casos de uso actuales te parecen más espectaculares?
Tenía unas expectativas muy altas con el GPT3 de Open AI. Hace unos meses tuve la oportunidad de probarlo y me decepcionó. Aún comete errores inverosímiles. La IA es otra herramienta a tener en cuenta para manipular grandes cantidades de datos. Funciona muy bien para tareas muy concretas. Pero no va a solucionarte los problemas.
Hay que definir muy bien qué resultados esperamos que la IA nos ofrezca. No usarlo como un comodín. Mi conocimiento de IA es limitado. Puedo decir que desde el Alpha Go no he visto un proyecto llamativo. Creo que el hecho de hacer un documental con mucha épica ayuda :P
Y si miramos al futuro ¿qué grandes podemos esperar en los próximos 5-10 años en el mundo de Data & Analytics?
Aunque 5-10 años parecen mucho, no lo es. Twitch tiene más de 10 años y parece que llegó a España hace 2. Creo que para los próximos 5-10 años el uso de datos será mucho más proactivo y universal. Con proactividad me refiero a que las aplicaciones y servicios que usamos a diario comunicarán información relevante sin que nosotros lo pidamos. Pueden ser cosas tan corrientes como auto-proponerte un día y hora que va bien en tu calendario para renovar el DNI cuando esté próximo a caducar.
Con universal me refiero a que los datos se interconectarán mucho más. Por ejemplo, autorizar a que tus datos gestionados por la empresa X se compartan con la empresa Y. Esa integración permitirá a comercios y entidades locales competir con grandes corporaciones tecnológicas. Creo que habrá una legislación aún más bien definida para fomentar la interoperabilidad de los datos y así evitar los monopolios de gestión de datos. Considero que especializarse en privacidad de data, gobernanza de datos y compartición de datos es una muy buena elección para el futuro.
Soy optimista en que los datos continuarán mejorando el día a día de las personas. Y que además todos seremos mucho más conscientes de lo que hacemos con los datos, habrá un control incluso superior a cuando toda la información se transmitía en papel.
Recientemente entrevisté a Gema Parreño, una programadora que ha diseñado Deep Asteroid, y que es también contribuidora en el proyecto de StarCraft 2 Pysc2 de Deepmind. Le pedí que hiciera una pregunta para la siguiente persona a entrevistar. Su pregunta fue: ¿Qué tipo de modelos predictivos y soluciones de machine learning pueden ser útiles para e-sports ?
Los esports es competición al máximo nivel. Es bien sabido que los juegos no están al 100% balanceados. Es decir, que hay elementos en el juego que objetivamente son mejores que otros. Con modelos de ML sería posible encontrar esas pequeñas imperfecciones para dar ventaja al equipo que las use. De la misma manera, los desarrolladores de videojuegos pueden usar esa tecnología para balancear más el juego.
Y tú ¿qué pregunta le harías a la próxima persona entrevistada?
¿Crees que en el futuro próximo el acceso a datos estará monopolizado por grandes empresas? ¿O que, por lo contrario, se llevará a cabo una gran descentralización de acceso y uso de datos?