Agenda

25 Thursday

  • 15:00
    Check-in and credential pickup
  • 16:00
    Open Space

    An Open Space focuses on the collaboration and active participation of the people who participate in the conference, where the agenda and discussion topics are generated and determined by these same people.

    Unlike a traditional conference format, where there are predefined presentations, in an Open Space, those who participate have the freedom to propose and lead discussion sessions on relevant topics for each one.

    Here the principles of self-management and self-organization prevail.

    At the beginning of each session, a physical space is set up with different spaces designated for discussion sessions. The people who participate are then invited to propose topics and create a collaborative agenda. These proposals can be presented in the form of questions, ideas, problems or simply topics of interest.

    Once the agenda is set, participants are free to join the sessions that interest them most.

    The sessions are usually open and participatory discussions, where the exchange of knowledge, ideas and experiences is encouraged. Multiple sessions can run in parallel, allowing participants to choose the ones that best align with their interests and needs.

    In short, an Open Space in the context of software development is a participatory and collaborative event format where attendees set the agenda and lead discussion sessions, promoting collaboration and knowledge sharing among participants.

    Track:1
    speaker Sandrina Pereira picture
    • Sandrina Pereira
    Accessibility in Javascript Apps

    Often we see JavaScript damaging the accessibility of a website. In this workshop, you’ll learn not only how to avoid that, but how to use JS to make your web apps accessible! We will explore real-world scenarios with hands-on exercises. From finding bugs with the keyboard, learning how ARIA works, exploring the Accessibility Tree and even using a Screen Reader. My teaching style is all about practice. The exercises pace will be fast. I don't expect you to complete all the exercises on time. The main goal is to show you new concepts, try them out, make you think about it, and then spend most of the time in Q&A and demos as we go through the materials. All the materials will be available, including the exercises, solutions and specific resources for each topic learned. Let me show you how accessibility doesn't limit your solutions or skills. On the contrary, it will make them more inclusive!

    LevelIntermediate
    Language:English
    Track:2
    speaker Kent Dodds picture
    • Kent Dodds
    Advanced React Patterns

    Whether it's the dreaded "apropcalypse" of a component with tons of props, or a custom hook with too many options, it's not fun for maintainers or users alike. Inevitably, the incidentally-abstracted "reusable" React hooks and components will ultimately slow you down or be abandoned for duplication. It doesn't have to be like this. At the end of this workshop you'll be able to do all of these things yourself: create components that work together, expose the right level of control and invert control.

    LevelIntermediate
    Language:English
    Track:3
  • 19:00
    Session completed

26 Friday

  • 15:00
    Check-in and credential pickup
  • 16:00
    Open Space

    An Open Space focuses on the collaboration and active participation of the people who participate in the conference, where the agenda and discussion topics are generated and determined by these same people.

    Unlike a traditional conference format, where there are predefined presentations, in an Open Space, those who participate have the freedom to propose and lead discussion sessions on relevant topics for each one.

    Here the principles of self-management and self-organization prevail.

    At the beginning of each session, a physical space is set up with different spaces designated for discussion sessions. The people who participate are then invited to propose topics and create a collaborative agenda. These proposals can be presented in the form of questions, ideas, problems or simply topics of interest.

    Once the agenda is set, participants are free to join the sessions that interest them most.

    The sessions are usually open and participatory discussions, where the exchange of knowledge, ideas and experiences is encouraged. Multiple sessions can run in parallel, allowing participants to choose the ones that best align with their interests and needs.

    In short, an Open Space in the context of software development is a participatory and collaborative event format where attendees set the agenda and lead discussion sessions, promoting collaboration and knowledge sharing among participants.

    Track:1
    speaker Sandrina Pereira picture
    • Sandrina Pereira
    Accessibility in Javascript Apps

    Often we see JavaScript damaging the accessibility of a website. In this workshop, you’ll learn not only how to avoid that, but how to use JS to make your web apps accessible! We will explore real-world scenarios with hands-on exercises. From finding bugs with the keyboard, learning how ARIA works, exploring the Accessibility Tree and even using a Screen Reader. My teaching style is all about practice. The exercises pace will be fast. I don't expect you to complete all the exercises on time. The main goal is to show you new concepts, try them out, make you think about it, and then spend most of the time in Q&A and demos as we go through the materials. All the materials will be available, including the exercises, solutions and specific resources for each topic learned. Let me show you how accessibility doesn't limit your solutions or skills. On the contrary, it will make them more inclusive!

    LevelIntermediate
    Language:English
    Track:2
    speaker Patty O'Callaghan picture
    • Patty O'Callaghan
    Hands-on introduction to TensorFlow.JS

    In this workshop we will make two smart webcam applications with pre-trained Machine Learning models that run on the browser, using the most popular Machine Learning framework for Javascript: TensorFlow.js

    LevelIntroduction
    Language:English
    Track:3
  • 19:00
    Session completed

27 Saturday

  • 08:00
    Check-in and credential pickup
  • 08:45
    Opening ceremony
  • 09:00
    speaker Kent Dodds picture
    • Kent Dodds
    Making Felix Felicis (Opening Keynote)

    Bring your wand and potions ingredients, because we're going to make liquid luck! In my career, I've worked extremely hard, but I've also experienced a lot of what some might call "luck." Some of what I've done is reproduceable, and some of it is not. But I've learned a lot about how to increase my "luck surface area" and then make the most of the opportunities that come my way. In this talk, I'll share the ingredients I've used to make my own luck, and I hope it can help you make yours. Don't forget to bring your spell book!

    LevelIntroduction
    Language:English
    Track:1
  • 10:00
    speaker Tejas Kumar picture
    • Tejas Kumar
    Zod and TRPC for the Rest of Us

    Zod and TRPC have received some attention recently in the world of full-stack Node.js development. This talk explains why, and shows how they might even be better than GraphQL by enabling safe data fetching at scale for our applications.

    LevelAdvanced
    Language:English
    Track:1
    speaker Nataly Rocha picture
    • Nataly Rocha
    Are promises our only choice?

    Promises are the standard approach to handling asynchronous operations in JavaScript and TypeScript. While they are flexible and fun to program in, important downsides make our codebase less maintainable. For instance, errors in a promise are typed as any, they use eager evaluation, and you can completely omit a catch operation for error handling. So there should be something else we can use, shouldn’t it? In this talk, we will be learning how to use functional programming and some alternative asynchronous computations like Tasks, TaskEither, and Futures to show how we can handle side effects and create more robust applications.

    LevelIntermediate
    Language:English
    Track:2
    speaker Matheus Albuquerque picture
    • Matheus Albuquerque
    Hydration, Islands, Streaming, Resumability… Me, Oh My!

    Our ecosystem can be overwhelming! First, we had the rise of SSR and SSG—and each had its own gigantic pile of frameworks and tools. Then partial hydration enabled us to hydrate only some of our components on the client, which we've seen in React Server Components. But what about islands? Do they relate at all to Streaming SSR? Also, what is resumability, and why do I keep hearing about it? […] Oh, did anyone say rendering on the Edge? Well… There are many approaches out there, and all of them argue that their philosophy is best. In this session, we’ll go over these architecture/rendering patterns, to help shed some light on how some are implemented and the concepts behind them.

    LevelIntermediate
    Language:English
    Track:3
  • 10:45
    Coffee break
  • 11:15
    speaker Roy Derks picture
    • Roy Derks
    GraphQL Explained Through Performance Testing

    For many companies, performance is the main reason to go with GraphQL. But is that a valid argument? Often developers compare GraphQL to REST APIs and see the N+1 requests (or over-fetching) as an important reason to go for GraphQL. Let's put that to the test and explore if GraphQL APIs actually can outperform existing REST APIs. But there's much more to GraphQL. In this talk I'll be explaining the key concepts of GraphQL and compare these to REST APIs, by applying performance tests in JavaScript to both.

    LevelIntermediate
    Language:English
    Track:1
    speaker Anna Sala picture
    • Anna Sala
    Storybook, the best friend we all need

    As frontend developers, we always have trouble managing, reusing and maintaining UI components. My proposal for this talk is to show "Frontenders" the magic and potential of Storybook library. I will expose the different approaches we can take on when using storybook as well as the many benefits it can have to our day to day work. I hope people can use the information I will share to apply it to their projects even if they were already using storybook before hand.

    LevelIntermediate
    Language:English
    Track:2
    speaker Sylwia Vargas picture
    • Sylwia Vargas
    Running Node.js inside your browser

    In this talk, I'd love to talk about pushing the limitations of web development running Node.js inside the browser and how the web dev community used this to make the future happen faster. Let's look at what opportunities are unlocked when you are empowered to think outside of the box of limitations!

    LevelIntroduction
    Language:English
    Track:3
  • 12:15
    speaker Braulio Diez picture
    • Braulio Diez
    • Daniel Sánchez
    speaker Daniel Sánchez picture
    Rerenders vs surgical updates, what's the fuss about?

    So far most of the modern frameworks (Angular, Vue, React) has been built on top of following a re-render approach, ... in the last few years, the idea of surgical updates has been gaining traction, and it's been implemented in libraries like Svelte or SolidJs. Why are we so obsessed with re-rendering? What are the benefits of surgical updates? In this talk we are going to compare both approaches and why surgical updates seem to be the future of web development.

    LevelIntermediate
    Language:English
    Track:1
    speaker Erik Rasmussen picture
    • Erik Rasmussen
    Model-Based E2E Testing With State Machines

    This talk will demonstrate how to use "model based testing" techniques with @xstate/test to generate your end-to-end tests for you.

    LevelIntermediate
    Language:English
    Track:2
    speaker Concha Asensio picture
    • Concha Asensio
    Junior XP: Cómo practicar eXtreme Programming y no morir en el intento.

    Es fácil obsesionarse con el framework o lenguaje de programación que se van a convertir en los más demandados, sin valorar en la misma medida las metodologías de trabajo y, como consecuencia, parece que no somos del todo conscientes del impacto que pueden llegar a tener, tanto en el aspecto técnico como en el día a día de nuestra relación con el equipo. En esta sesión trataré de transmitir los beneficios que me ha aportado a mí, como junior, haber comenzado mi camino en el mundo del desarrollo aplicando eXtreme Programming, centrándome en sus valores (comunicación, feedback, simplicidad, coraje y respeto), sus principios y algunas de sus prácticas. La charla estaría orientada o podría ser útil principalmente a personas con poca experiencia profesional, que están interesados en aprender mecánicas ágiles de comunicación y trabajo en equipo, aunque veremos que buena parte del contenido puede aplicarse también a perfiles con más experiencia.

    LevelIntroduction
    Language:Spanish
    Track:3
  • 13:15
    Technical round table discussion

    LevelIntermediate
    Language:English
    Track:1
  • 14:00
    Lunch
  • 15:00
    speaker Daniel Ramos picture
    • Daniel Ramos
    Outside-in TDD con Nestjs

    En el mundo del TDD (Test Driven Development) existen dos escuelas, Outside-In e Inside-Out. En esta charla vamos a ver la diferencia entre ambas y cómo podemos usarlas para conseguir un código de mayor calidad, más robusto y otro montón de beneficios. Además aquello de “me funcionó a la primera!” se convertirá en la norma.

    LevelAdvanced
    Language:Spanish
    Track:1
    speaker Jenny Truong picture
    • Jenny Truong
    The Unexpected States of Burnout

    What does state management and mental health have in common? We tend to think in the moment in life - I'm tired, I'm hungry, I'm burnt out. But we sometimes fail to think about the transitions between the states - how did I become tired, burnt out, and how do I transition to a better state? Then, how do I avoid taking the transitions back to states I don't want to be in? Thinking in terms of states and transitions is a useful mental model not only for software development, but for understanding yourself and having better control of your life.

    LevelIntroduction
    Language:English
    Track:2
    speaker Liran Tal picture
    • Liran Tal
    Char Wars: The Path Traversal Strikes Back (your Node.js apps)

    These days of cyber warfare and targeted supply chain attacks on open source packages we developers are more attentive to security vulnerabilities. Yet writing secure code to avoid security vulnerabilities is an entirely different paradigm that needs to be mastered. One such vulnerability is Path Traversal, and while it may sound harmless, it is in fact ubiquitous and presents a significant risk. My session will teach you how path traversal vulnerabilities manifest in everything from code in your own applications to code in dependencies to core modules in the Node.js runtime. Additionally, path traversal vulnerabilities may endanger your local development setup and lead to insecure Node.js applications risking your production environment. Join me to gain a new secure coding skill and learn how to mitigate this set of security vulnerabilities.

    LevelIntroduction
    Language:English
    Track:3
  • 16:00
    speaker David Khourshid picture
    • David Khourshid
    The two types of state management

    There are two kinds of state management libraries: easy and simple. Direct and indirect. Quick and maintainable. When you’re quickly prototyping apps or writing robust app logic, which do you choose? Is there a right answer? In this talk, we’ll traverse the evolution of state management, from mutation to statecharts and signals and take a walk through the state-of-the-art state libraries. From state mutation to statecharts, we’ll explore the various ways developers manage state and learn how we can choose the best strategy for efficient, robust, testable state management that satisfies all kinds of use-cases (and edge-cases, too).

    LevelIntermediate
    Language:English
    Track:1
    speaker Jorge Aguiar Martin picture
    • Jorge Aguiar Martin
    Mejorando nuestros test con aserciones sobre nuestro dominio

    ¿Alguna vez has leído un test y has pensado que era muy complejo de entender lo que estabas aseverando? A mi si me ha pasado, y tras tiempo dándole vueltas, he encontrado la forma de que nuestros tests hablen el mismo idioma que nuestro código. Veremos cómo podemos usar Jest, para mejorar las aserciones de nuestros tests creando las nuestras propias

    LevelIntermediate
    Language:Spanish
    Track:2
    speaker Carlos Blé picture
    • Carlos Blé
    Testing y Diseño Simple con TypeScript

    Cuando empezamos un proyecto nuevo, un greenfield, vamos muy rápido implementando las primeras funcionalidades. Pero esto no dura mucho, al poco tiempo el código acaba degenerando y vamos mucho más lento… En esta charla te cuento algunos principios y técnicas concretas para evitar que esto te suceda.

    LevelIntermediate
    Language:Spanish
    Track:3
  • 16:45
    Session completed

28 Sunday

  • 08:30
    Check-in and credential pickup
  • 09:00
    speaker Aleksandra Sikora picture
    • Aleksandra Sikora
    TypeScript Performance: Going Beyond the Surface

    Do you ever ponder how to identify and address performance issues in TypeScript to maximize the effectiveness of your code? If so, join us for a talk on the performance of TypeScript and the techniques you can use to get the most out of your code. We'll delve into various ways to debug performance, explore how to leverage the power of the TypeScript compiler to detect potential performance issues and use the profiling tools available to track down the underlying bottlenecks.

    LevelIntermediate
    Language:English
    Track:1
    speaker Nidhi Kumari picture
    • Nidhi Kumari
    Let's Talk Generators and Iterators

    Generators and iterators are a fundamental part of Javascript that allow developers to create sequences of values. With the added bonus of being able to handle asyncronous operations in a more intuitive way, they also help to reduce memory usage when working with large data sets. In this talk, we will take a deep dive into understanding generators and iterators and how they can make work easy for you. We will also take a look at the new additions coming to generators via the TC39 iterator helpers proposal which adds improvements like map, filter, reduce to write more terse code when using iterators.

    LevelIntermediate
    Language:English
    Track:2
    speaker Gabriela García picture
    • Gabriela García
    • David Melendez
    speaker David Melendez picture
    La Roomba Hacker

    Sabías que puedes convertir una roomba normal en un elemento de hardware hacking para realizar mapas de calor wifi? Hemos tomado el control de un robot de limpieza y cambiado su SO para aprovechar funcionalidades ocultas y generar mapas de calor de intensidad de señales WiFi representables en JSON

    LevelIntermediate
    Language:Spanish
    Track:3
  • 10:00
    speaker Fernanda  Andrade picture
    • Fernanda Andrade
    Going Beyond the Test Pyramid in TypeScript: Achieving Stronger Code Correctness with More Expressive Types and Powerful Formal Testing

    Testing is a crucial step in the software development process, but it's not always enough to ensure code correctness. Even with the most thorough testing or powerful type systems such as TypeScript, bugs can still slip through the cracks and cause problems in production. Formal methods techniques provide an alternative way to formally prove the correctness of a program, which can lead to more robust and reliable software. In this talk, we will explore a variety of formal methods techniques that can be applied to our development process, including refinement types, SAT/SMT solvers, model checking and other techniques of formal testing. We will also look at real-world examples and discuss the trade-offs and challenges of using formal methods in development. This talk is aimed at developers who are interested in taking a more formal approach to software development and want to explore alternative ways of checking code correctness using more expressive types and powerful formal testing.

    LevelAdvanced
    Language:English
    Track:1
    speaker Fran Palacios picture
    • Fran Palacios
    Bajando a tierra la web3

    En esta charla vamos a explicar cómo hemos llegado hasta la web3, una pequeña introducción a la blockchain de Ethereum, cómo se comunica una aplicación web con un contrato inteligente y mediante qué herramientas (ethers & web3js + React). Finalmente hablaremos acerca de la evolución de esta area y la tendencia de los desarrolladores en la misma. Si te dedicas al frontend o cualquier otra rama del ecosistema de JS/TS y quieres iniciarte en el desarrollo de web3, esta es tu charla!

    LevelIntroduction
    Language:Spanish
    Track:2
    speaker Anna Migas picture
    • Anna Migas
    Web performance optimisations for the harsh conditions

    Small web performance tweaks and optimisations might not make a difference for some of the users: there can be physical barriers that will make it impossible to achieve the fast page load and the smooth browsing. After working for over a year on a project directed towards emerging markets (namely Nigeria and Kenya), I came to realise that the popular web performance metrics are all centred around a specific type of person: someone who is used to the fast and reliable connection. But when the conditions are not ideal on daily basis, what are our choices? In my talk we will chat about the improvements that will have real impact on the user experience for users browsing the web in the harsh conditions. I will also share details about the background of users in Africa and how their perception might differ from the users we typically develop for.

    LevelIntermediate
    Language:English
    Track:3
  • 10:45
    Coffee break
  • 11:15
    speaker José Manuel Lucas picture
    • José Manuel Lucas
    Programación funcional en TypeScript con fp-ts

    ¿Quedaste con ganas de más programación funcional tras mi charla de 2019? ¿Quieres aprender a aplicar conceptos avanzados de FP con TypeScript? ¡Abróchense los cinturones! En esta charla veremos cómo mejorar la seguridad y confianza de nuestro código gracias a la Programación Funcional en TypeScript.

    LevelAdvanced
    Language:Spanish
    Track:1
    speaker Elena Coazzoli picture
    • Elena Coazzoli
    Design systems: when and how to use them to improve the developer experience

    Design systems are critical to creating attractive, consistent, and effective websites and applications. It can often be difficult to decide which design system definition is right for a project, especially when working in teams with developers and designers. In this talk, we'll explore how to build a design system based on our needs and goals, and how we can use tools like Figma and Storybook to effectively and collaboratively assemble our design system.

    LevelIntroduction
    Language:English
    Track:2
    speaker Alexandra Spalato picture
    • Alexandra Spalato
    How to build a super fast headless shop using Hydrogen components

    Shopify Hydrogen is the super hot new tech stack for building headless Shopify stores. Let’s see how easy and fun is to build our collections, products, and shopping cart functionalities using Hydrogen React components that are ready to be seamlessly integrated, improving the developer’s experience and making it more enjoyable!

    LevelIntermediate
    Language:English
    Track:3
  • 12:15
    speaker Adrián Ferrera picture
    • Adrián Ferrera
    • César Alberca
    speaker César Alberca picture
    101. How to build bad Software

    There are too many talks talking about what Good™️ Software looks and feels. However, creating Bad™️ Software requires a true level of expertise, dedication and craftsmanship. In this talk we’ll guide you how to truly create deceiving, nay, nefarious code, that’ll make your teammates rethink their career path. After this talk you will come up with new bad habits that you will integrate in your day to day developer life and change how you perceive Software development for the better. Join us and let’s make bad code great again!

    LevelIntermediate
    Language:English
    Track:1
    speaker Adrian Bolonio picture
    • Adrian Bolonio
    Este código es una ruina: Estrategias de accesibilidad web en proyectos no accesibles

    Es tu primera semana en tu nuevo trabajo, abres tu editor de código, empiezas a investigar el código del producto y te das cuenta de que nadie ha tenido en cuenta la accesibilidad web y el producto es complemente inaccesible. Empiezas a pensar: ¿Por dónde empezar? ¿Cuál es la mejor estrategia para convertir un producto maduro en un producto accesible? ¿Cómo aplicar los principios de accesibilidad web en un equipo que nunca los tuvo? ¿Qué herramientas uso? En esta charla compartiré consejos, estrategias, y experiencias personales sobre cómo abordar un proyecto que no es accesible y por dónde empezar para conseguir un producto accesible y un equipo comprometido.

    LevelIntermediate
    Language:Spanish
    Track:2
    speaker Azahara Fernández picture
    • Azahara Fernández
    • Juan M. Rdguez.
    speaker Juan M. Rdguez. picture
    ¿Necesitas una aplicación web para Industria 4.0? Entonces Angular es tu framework.

    Desde hace algunos años parece que la popularidad de Angular en el sector tech ha ido disminuyendo, aunque sigue siendo muy usado en los desarrollos. Puede que te preguntes: ¿por qué? Pues porque entre otras razones, ofrece muchos puntos positivos a la hora de desarrollar ciertos tipos de aplicaciones. En esta charla te contamos que ventajas tiene para un sector tan concreto como el de la industria y que arquitectura base nos gusta a nosotres usar.

    LevelIntroduction
    Language:Spanish
    Track:3
  • 13:15
    speaker Tally Barak picture
    • Tally Barak
    Tale of Two Repos - Strategies for managing monorepos

    Not all monorepos are made the same, and not all teams are equal. Managing a monorepo is way more than just "let's select this tool or that tool". It comprises many design decisions that you need to make for the product and for the developers. In this talk, I will go over the main monorepos challenges - packages installation and linking, development and deployment processes - and describe the possibilities that exist for each stage. At the end of the talk, you will have a simple and powerful model that will help you in making the right choice of tools and processes for your monorepo.

    LevelAdvanced
    Language:English
    Track:1
  • 14:00
    Lunch
  • 15:00
    speaker Thomas Steiner picture
    • Thomas Steiner
    From Web SQL to SQLite implemented in Wasm and backed by the Origin Private File System

    The Web SQL Database API, which allows you to store data in a structured manner on the user's computer, was introduced in April 2009 and abandoned in November 2010. While it was implemented in WebKit and remained active in the Blink engine, Gecko never implemented this feature and WebKit removed it in 2019. Web SQL access in insecure contexts is no longer available as of Chromium 110 and the final step will be to remove Web SQL completely in all contexts. In this talk, I will put the focus on a replacement technology that Google is working on with the SQLite community based on SQLite implemented in WebAssembly (Wasm) and backed by the highly performant Origin Private File System (OPFS). I will show how you can make use of this approach and explain how this allows you to fulfill your storage and querying needs on the web.

    LevelAdvanced
    Language:English
    Track:1
  • 15:45
    Closing ceremony
  • 16:15
    Session completed