Comunidad CODE

de comunidadcode

CODE es una comunidad virtual de desarrolladoras y desarrolladores de software. Nuestro objetivo es compartir conocimiento y experiencias de forma periódica a través de Hangouts emitidos por youtube. Puedes seguirnos en o suscribirte a nuestra lista de correo para mantenerte al tanto de novedades.

Episodios

Aventuras y desventuras de un mindundi en Spotify

por comunidadcode

Con Isidro López. Mucho se ha hablado, y se sigue hablando, del conocido como “modelo Spotify”. Pero poco se ha compartido sobre el estado actual de dicho “modelo”... Tanto para quien esté interesado en trabajar en Spotify, como para quien quiera conocer un poco mejor cómo funciona internamente a día de hoy (prácticas, organización interna, etc.), me gustaría compartir humildemente cuál fue mi experiencia “end-to-end”: desde la fase de contacto, el proceso de selección, el onboarding, la luna de miel… la de hiel y el posterior offboarding ;-)

Cachés distribuídas/datagrids. ¿Qué son y qué pueden hacer por ti?

por comunidadcode

Con Katia Aresti. Moviendome en diferentes conferencias y meetups, me sorprendo al constatar lo siguiente: para una gran parte de l@s programadore-a-s, las cachés distribuídas son todavía un misterio. Las cachés distribuídas, bases de datos clave valor y las datagrids existen desde hace años. Como programadora desde hace más de dos años en el equipo Infinispan/Datagrid - 100% open-source - y moviendome en diferentes conferencias y meetups, me sorprendo al constatar lo siguiente: para una gran parte de l@s programadore-a-s, las cachés distribuídas son todavía un misterio. En esta charla 50% teórica, 50% live-coding y utilizando Infinispan - siendo el contenido aplicable a otros productos - abordaré qué son las cachés distribuídas/datagrids, donde, cómo, cuando y porqué utilizarlas.

Cultura de trabajo remoto: individuos y equipos que teletrabajan

por comunidadcode

Ponente: Carlos Blé El teletrabajo es cada vez más frecuente en el sector TIC, por muchos motivos como la fuerte demanda de talento que existe. Es un gran ahorro de tiempo a diario y de energía pero también tiene sus inconvenientes. No es para todo el mundo ni en todas las situaciones. Al vivir en Canarias, donde el sector TIC es muy pequeño, llevo muchos años trabajando para clientes de todo el mundo desde aquí tanto a nivel individual cuando era freelance como a nivel de equipo con mis empresas. La idea es compartir mis experiencias y conversar sobre dudas que tengan las personas que asistan a la charla.

Pipelines de entrega continua multilenguaje con Jenkins y Docker

por comunidadcode

Ponentes: Julio Palma y Jorge Hidalgo En esta charla os contaremos nuestra experiencia trabajando en proyectos con múltiples lenguajes, en proyectos complejos en los que la estandarización y la flexibilidad son necesarias a partes iguales. Os mostraremos nuestra aproximación que nos permite utilizar las herramientas específicas de cada lenguaje pero en un marco común que nos permite estandarizar las acciones a realizar para cada uno de ellos.

Construyendo Pipelines Reactivos: Cómo ir de aplicaciones escalables a aplicaciones RIDÍCULAMENTE escalables

por comunidadcode

Ponente: Mark Heckler Migrar de código imperativo a un modelo de programación reactiva nos habilita escalar nuestras aplicaciones de maneras que serían imposibles con el método imperativo de "scale out", ¡y eso es una cosa buena! Pero con todas estas mejoras, se necesita examinar y abordar holisticamente el sistema o todo lo que logremos es mover los embotellamientos, creando o encontrando uno u otro mientras sintonizemos aplicaciones o servicios particulares. Esto no es tan bueno. En esta sesión, el ponente discute: Como el proyecto Reactor construye en la iniciativa Reactive Streams para ayudarte crear microservicios reactivos escalables de alto rendimiento Plataformas de mensajería como RabbitMQ & Apache Kafka Como Spring Cloud Stream utiliza Reactor para proveer pipelines enteramente reactivos para escalabilidad ridícula entre el sistema total ¡El ponente escribirá en código todos los ejemplos usando software de código abierto en vivo y en tiempo real! Esta no está una presentación abstracta, ¡venga para ganar conocimiento real y práctico!

DevUI: poniendo orden en el front

por comunidadcode

Ponente: Rubén Aguilera En esta charla vamos a poner de manifiesto la brecha que existe entre diseñadores UI y desarrolladores a la hora de plasmar en una aplicación front las ideas de Negocio. Vamos a definir el concepto de DevUI como vehículo conciliador para que ambos roles empaticen y colaboren para la creación de librerías de componentes listos para utilizar en los desarrollos y no "invertir" tiempo en adaptar maquetas estáticas; que sea poner la etiqueta conveniente y de un plumazo aplicar vistosidad, usabilidad y accesibilidad manteniendo una homogeneidad en la imagen corporativa; limitando también la "creatividad" de algunos desarrolladores y haciendo que el producto pueda estar en producción lo antes posible. Pero como esto es CODE no nos quedamos solo en la teoría y se propone el uso de StencilJS como vehículo facilitador de esta librería de componentes 100% reutilizables agnóstica al framework de turno (Angular, React, Vue). El resto de la charla es un live-coding de cómo empezar la librería con StencilJS desde cero, crear un par de componentes reutilizables y consumirlos en una aplicación con Angular.

Descomponiendo el build: patrones arquitectónicos para una pipeline más rápida

por comunidadcode

Ponente: Abraham Marín-Pérez ¿Alguna vez has tenido la sensación de que te pasas la vida recompilando y retesteando cosas que no lo necesitan? Si la respuesta es sí, esta charla podría ayudarte. La arquitectura del sistema define qué partes tendrán que ser reconstruidas cada vez que haces un commit, lo que significa que dicha arquitectura tiene que tener en cuenta el build. Hay veces que tienes demasiadas responsabilidades concentradas en un mismo módulo y te toca recompilarlas todas cada vez que cambias una de ellas, otras veces tienes una aplicación separada en tiers y tienes que tocarlas todas cada vez que añades una nueva funcionalidad. En esta presentación cubriremos escenarios como estos, y veremos técnicas para reestructurar la aplicación con el fin de minimizar todo trabajo innecesario.

Dando sentido a la World Wide Web. Desarrollando para todas las personas

por comunidadcode

Ponente: Juanjo Montiel Cuando desarrollamos un sitio web, uno de nuestros objetivos es que la experiencia de uso sea lo más satisfactoria posible, y los visitantes puedan conectarse de forma cómoda desde todo tipo de dispositivos. Pero ¿realmente estamos consiguiendo llegar a todo el mundo? Al hablar de accesibilidad en el desarrollo, casi siempre es para atragantar al desarrollador con un montón de reglas y recomendaciones abstractas y aburridas que a veces se le obliga a cumplir por no se qué dichosa ley... Pero sin entender el porqué y la importancia real, es algo que nunca acabará de calar en el ADN de los desarrolladores. ¿por qué ha de cumplirse? ¿a quién ayuda? ¿por qué es importante hacerlo así? En esta charla os responderé a todas estas preguntas, y os proporcionaré las herramientas y las referencias necesarias no solo para que podáis abordar de forma efectiva un desarrollo accesible, sino también para que podáis comprobar si lo habéis hecho bien, utilizando las aplicaciones que usan los distintos perfiles de discapacidad. «El poder de la web reside en su universalidad. El acceso para todos independientemente de su discapacidad es un aspecto fundamental» Tim Berners-Lee, director del W3C e inventor de la World Wide Web ¿Os apetece ayudara construir una World Wide Web realmente inclusiva? https://comunidadcode.com/2018-12-13-dando-sentido-world-wide-web/

Motivating teams

por comunidadcode

Ponente: Fina Pérez Un equipo de trabajo está motivado. O mejor dicho, un equipo de trabajo tiene que estar motivado. Estas son frases que se asumen, pero la realidad es que hay altibajos y nadie nos previene sobre ellos. ¿Y qué hacemos cuando esa realidad nos golpea y el equipo no está motivado? En esta charla, os quiero contar mi experiencia, y cómo me enfrenté a uno de los momentos más duros como manager: tener que recuperar la motivación del equipo. Un pequeño spoiler: esa tarea no solo está en las manos del manager ;) https://comunidadcode.com/2018-11-15-motivating-teams/

Tech Lead vs. Engineering Manager

por comunidadcode

Ponente: Félix López ¿Conoces el trabajo de un Engineering Manager? Y ¿el de Tech Lead?. ¿Conoces las diferencias entre ellos?. Pero, ¿no son el mismo rol? Para que sirve un Manager si tienes un Team Lead? Cuando hablas de Manager, te refieres a jefe, ¿no? Estas preguntas las escucho muchas veces, creo que en España no se entiende el trabajo que realiza un Manager y se suele ver como un jefe, cuando es todo lo contrario. La mayoría de empresas tienen un solo rol para las dos, pero no es lo mismo, aunque las dos cosas pueden hacerse por la misma persona. En esta charla revisaré los típicos jefes tóxicos que todos nos hemos encontrado y que haría en su lugar un Engineering Manager. Revisaré las herramientas que usan para hacer su trabajo, por qué son importantes. También veremos cual es el trabajo de un Tech Lead y las diferencias entre los dos roles. https://comunidadcode.com/2018-09-12-tech-lead-eng-manager/

Comparando Angular, React y Aurelia

por comunidadcode

Ponente: Azahara Fernández Cuando en Diciembre del año pasado me puse a escribir los própositos de año nuevo me anoté varias cosas en mi lista de TODOs. Una de ellas fue dejar de hacer tantos cursos de formación y tratar de llevar a cabo un proyecto personal en algún framework de Javascript. El elegido fue Aurelia y para comenzar decidí realizar una aplicación sencilla con él y posteriormente desarrollarla también en Angular y React a fin de compararlos. Gracias a ello puedo cumplir el segundo objetivo que era devolver a la comunidad parte de lo que me aporta a mí, transmitiendo mi experiencia aunque sea a nivel principiante. En esta charla tras realizar una introducción a los tres frameworks y mostrar alguna comparativa, enseñaré como fue el paso a paso de desarrollar la misma aplicación en estos tres frameworks y a que conclusiones he llegado. https://comunidadcode.com/2018-07-09-angular-react-aurelia/

El camino hacia Evolvable APIs

por comunidadcode

Ponente: David Gómez Los APIs están cada vez más en vigor, en un mundo cada vez más desacoplado y donde cada vez más y más sistemas colaboran e interactúan entre ellos. No importa si hablamos de aplicaciones corporativas, portales de contenidos o dispositivos IoT. En esta charla hablaremos sobre las ventajas de utilizar APIs REST Hypermedia para conseguir que tus APIs puedan soportar más fácilmente los cambios en clientes o incluso evolucionar sin necesidad de romper los clientes que ya las consumen. Incluso, apuntaremos como el diseño de APIs Evolvable puede cambiar la forma en la que los clientes consumen estas APIs de forma que, incluso, puedan prepararse para cambios futuros (esto hará que el cliente pueda tener preparada el comportamiento por anticipado de forma que automáticamente se habilite funcionalidad nueva cuando el servicio REST evolucione. Parece magia, pero en realidad todo consiste en saber qué reglas de desarrollo se pueden seguir en el servidor" https://comunidadcode.com/2018-06-28-evolvable-apis/

Microservices from the trenches

por comunidadcode

Ponente: Joaquín Engelmo Llevo varios años trabajando con [micro]servicios en Tuenti y quiero contar mi historia. Además no hace mucho tuve la suerte de asistir a un evento, From The Trenches donde pude aprender, recopilar y reafirmar algunas cosas relacionadas con este tema tan en boca de todos. De ahí el nombre de la charla. El espíritu de la misma es enseñar, desde una base teórica inicial a modo de introducción, el camino que seguimos nosotros para evolucionar toda una base de código hacía este paradigma y, de forma práctica, ver como estamos a día de hoy. Como soy de los que piensa que el código no lo es todo, también hablaré de equipos, componentes, responsabilidades, etc. y verás que está todo relacionado con los [micro]servicios. También me gusta ensuciarme las manos y enseñar "cosas reales" como herramientas de monitorización o contar como va todo nuestro workflow, desde picar el código hasta sacarlo a producción usando Docker y Kubernetes. Mundo real, problemas reales, soluciones reales y en producción durante años que dan servicio a millones de clientes. No serán los [micro]servicios más "artesanos" del mundo, y tampoco somos Netflix, pero hacen su función, controlando deuda técnica y tomando decisiones pragmáticas - siempre que se puede -. Motivación, partiendo el monolito, arquitectura, prácticas, testing, despliegues, monitoring, alarmas, etc. Pros vs Cons desde la experiencia en una base de código grande, bastantes [micro]servicios, un monolito y millones de usuarios potenciales. https://comunidadcode.com/2018-06-06-microservices-from-the-trenches/

Un viaje por CosmosDB

por comunidadcode

Ponente: Leonardo Micheloni ¿Te imaginas una base de datos que nos de la posibilidad de que los datos estén allí donde está el cliente? ¿y que además ha sido pensada desde el principio para ambientes distribuídos y de alta escala?. ¿Y si además esta base de datos soporta diferentes modelos y diferentes APIs? todo esto y mucho más es lo que nos da CosmosDB. CosmosDB es una base de datos NoSQL pensada para la alta escala y la flexibilidad, permitiendo seleccionar nuestra API preferida para interactuar con los datos, nuestro nivel de consistencia adecuado y poder cambiarlo en cualquier consulta. En esta charla haremos un repaso de las principales características de CosmosDB y las posibilidades que nos brinda, en qué casos es mejor este tipo de servicios que una RDBMS y en cuáles no, por último haremos una demo para demostrar la compatibilidad de la API de MongoDB. https://comunidadcode.com/2018-05-17-cosmosdb/

¡Larga vida al legacy!

por comunidadcode

Ponente: Modesto San Juan Siempre es divertido empezar un proyecto nuevo. Enfrentarte a la toma de decisiones incial: qué lenguaje vamos a utilizar, qué tecnologías, arquitectura, base de datos, cómo vamos a automatizar los despliegues y las pruebas… todo lo relacionado con ese momento de arranque es muy excitante, tenemos una oportunidad de dejar nuestra huella en ese software, de sentirlo nuestro y de hacerlo crecer poniendo en práctica todo el conocimiento que tenemos acumulado, tanto de éxitos como de fracasos. Pero, ¿qué pasa con el llamado “legacy”? Hay muchos intentos de definir qué es el software legacy, pero normalmente todas tienen una esencia similar: es ese sistema de olor rancio, que da pereza tocar, que tocas porque no te queda más remedio y lo haces con miedo. Con poco glamour, cuyas entrañas te son ajenas, con las que no te identificas a pesar de que puede que seas el artífice de la mayoría de las líneas de código que lo componen. https://comunidadcode.com/2018-04-25-larga-vida-al-legacy/

¿Por qué fallan los tests en Jenkins?

por comunidadcode

Ponente: Micael Gallego La pesadilla de todo desarrollador, llegar por la mañana a trabajar y comprobar que tienes unos cuantos tests de sistema en rojo. Ya sabes lo que toca, dejarte los ojos revisando logs del backend, logs de los servicios, la consola del browser… Bueno, eso si tienes los jobs de Jenkins perfectamente configurados para guardar todos esos logs y que no se pierdan como lágrimas en la lluvia. ¿No podría ser más fácil? ¿No hay herramientas que te faciliten el análisis de toda esa información? ¿Que te ayuden a ver qué ha cambiado en los logs de los tests que ahora fallan y antes no? ElasTest tiene como objetivo facilitar el desarrollo y análisis de los tests de sistema en software distribuido, y una de sus principales funcionalidades es el análisis de los logs registrados durante la ejecución de los tests. En esta sesión de CODE, Micael Gallego nos presentará cómo ElasTest puede hacer la vida más fácil a los desarrolladores. https://comunidadcode.com/2018-04-04-elastest/

Kubernetes 101: Una introducción al software que está revolucionando la nube

por comunidadcode

Ponente: Rober Morales Kubernetes se utiliza para desplegar software en ordenadores remotos, habitualmente en la nube, y está revolucionando la forma en la que se desarrollan muchos procesos en nuestra industria. Es uno de proyectos opensource con mayor desarrollo actualmente. Es una pieza de tecnología apasionante, que merece la pena conocer, entender, y usar. Comenzaremos desde cero, explicando la utilidad de kubernetes: cómo y para qué usarlo. Para seguir la sesión no es necesario saber absolutamente nada de kubernetes. Al finalizar, las personas que sigan la sesión sabrán cómo usar kubernetes para desplegar una aplicación de ejemplo. Se inventan o revisitan muchos conceptos que hay que explicar en detalle: node, pod, service, container, deployment, scheduler,… Por último, indicaremos cómo comenzar con la instalación y cómo buscar ayuda, para que sea fácil continuar el aprendizaje después de la charla. https://comunidadcode.com/2018-03-14-kubernetes-101/

Ilusionismo con Github Pages

por comunidadcode

Ponente: Cristina Fernández Spin-off de "Trucos fantásticos y dónde encontrarlos", en esta charla se va a profundizar en la técnica de transformación "GitHub Pages", que permite publicar una página web, crear un blog o hacer un tutorial con demos, código y notas, todo partiendo de un repositorio de código de GitHub. Para ilustrar esta técnica nos apoyaremos en trucos realizados por el ilusionista y cineasta Georges Méliès, uno de los primeros miembros de la escuela de Frontwarts (la escuela de magia frontend). https://comunidadcode.com/2018-02-15-ilusionismo-github-pages/

Continuous Delivery: germinando una cultura agile moderna

por comunidadcode

con Eduardo Ferro. Esta charla describe en detalle, cómo usando como hilo conductor Continuous Delivery se puede crear una cultura Agile moderna sana que evite silos, que mejore de forma continua y que responda al negocio. Continious Delivery es el dial que nos permite identificar los cuellos de botella en el proceso de desarrollo y operación de un sistema de software. Subes un poco, ves el problema, lo resuelves/minimizas y vuelves al primer paso. Describiré la cultura, sus características core (aprendizaje continuo, XP development, DevOps, Arquitectura Evolutivas), su necesidad en nuestro contexto (startup, cloud), y los pasos que dimos para introducirla. También identificaré los retos a los que nos enfrentamos y las reticencias más típicas. https://comunidadcode.com/2018-01-25-continuous-delivery-cultura/