Andrei Pfeiffer logo

Talks & Live coding

During the past 13 years, I gave various talks at conferences, meetups and private events, most of them focused on JavaScript, UI Development, Web and Mobile.

Below you'll find a non-comprehensive list of topics I've spoken about.
  • Feb 2026
    Slides only

    The Complete Map of Project Anatomies

    After two decades of organising software projects, I’ve learned a simple truth: the way we structure our code should change as the project grows. Popular approaches, such as grouping by type or by domain, aren’t about preference or ideology. They’re about project scale. Each approach solves a different kind of problem at a different stage of growth.


    To make this easier to grasp, we’ll compare projects structure to hospitals distribution across settlements, from villages to entire countries.

  • May 2025
    Slides only

    The Code Etymologist

    In ancient times, knowledge was passed down through word of mouth, like an endless game of telephone where details changed with each retelling. Without a written record, information was often distorted or lost.


    This talk draws a parallel to software teams that work without documentation. Just like etymology traces the origins of words, documentation preserves knowledge, ensuring that all team members share a common understanding.

  • Jul 2024
    Live coding demo

    Modern SSR Streaming using Web Standards

    Few things are more annoying than waiting for a heavy webpage to load and not seeing any visual progress.


    In this talk we’ll examine how popular frameworks perform SSR Streaming, while showcasing a novel approach using Declarative Shadow DOM to load webpages progressively, out of order, without JavaScript, using Server-Side rendering and web standards.

  • November 2023
    Live demo

    All Frameworks Are Slow

    React used to be “fast enough”, but then it got compile-time out-of-the-box memoization. At the same time, fine-grained reactivity pledges to be the holy grail of performant JS frameworks. In this talk, we’ll analyze the rendering performance of multiple popular frameworks. We’ll see that performance is contextual, while frameworks have general applicability. That’s why all frameworks get to be slow at some point and the only way to create truly “performant” apps is to understand and circumvent the framework bottlenecks.

  • May 2023
    Slides only

    Waterbed Code

    In the mid-1980s, Larry Tesler stated that “every application has an inherent amount of complexity that must be dealt with, either in product development or in user interaction”.


    This adagio is also known as the WaterBed theory and is mostly referenced in product design. However, I believe that it equally applies to any type of “interface” between an author and its consumers, such as UI components, functions, API endpoints, and more.

  • April 2022
    Slides only

    The Evolution of Scalable CSS

    CSS is easy to learn but challenging to master. Writing and maintaining a large CSS codebase requires constant effort, strict rules, and proper tooling.


    This talk is a well-researched chronicle describing how CSS tools and techniques have evolved during the past 20 years. The goal is to present an objective view of the current and future state of writing maintainable CSS at scale, dissecting the weapons and tactics at our disposal in fighting against CSS entropy.

  • September 2020
    Slides and Live code

    i18n & l10n

    This talk explains the difference between Internationalization and Localization and how to implement translations and pluralisations using i18next.


    We'll also take a look at the ECMAScript Intl standard and how to use its APIs to apply localised formatting to numbers, currencies, dates and times.

Old and discontinued talks

  • February 2021

    A thorough analysis of CSS-in-JS

    Slides only

    There are more than 50 different CSS-in-JS libraries out there and each of them provides a unique set of features.


    Instead of reviewing each individual library, we’ll analyse the various features that these libraries have to offer, to better understand what approach better suits a specific use-case.

  • July 2020

    Simple vs. Easy

    Slides only

    Simple solutions usually require a lot of effort during their usage, but they also provide a high level of control. Complex solutions are usually easy to use, but retain the control for themselves. This theory applies both at high-level architecture and also at low-level, day-to-day code design.


    We'll explore different methods for tackling software complexity, by deeply understanding our users and deciding where to place the control: in the implementation, or in the consumer.

  • August 2020

    CSS layout tricks

    Live code

    This presentation walks through 3 different layout examples using CSS grids. We'll start by focusing on markup semantics, then sprinkle some lesser known CSS properties to implement solid and flexible layouts.

  • January 2020

    Memoization in React

    Live code

    React is fast enough, until it becomes slow. In this talk we'llexamine the limitations of React's rendering performance.


    We'll take a look at different situations when rendering bottlenecks can occur, measure rendering performance using React Profiler and optimize it using React.memo(), useMemo() and useCallback().

  • November 2019

    The False Dichotomy of UI Development

    Slides only

    We usually talk about 2 different types of Front-End/UI developers: the designer type focused on HTML & CSS, and the engineer type focused on JS and frameworks. This dychotomy matches perfectly the difference between client facing websites and back office applications.


    But, when dealing with wep apps that are also client facing, we witness a blend of design and engineering skills that are required to build such UIs.

  • February 2019

    Isolated Components Driven Development

    Slides and Live demo

    This talks describes the challenges of developing UIs that need to communicate with external APIs. Using tools such as React Styleguidist or Storybook can help us to eliminate the need for an integration, enabling us to develop components in isolation, outside the application.

  • October 2018

    Bridging Swift and React Native

    Live code

    This is a live coding session based on my Ultimate Guide for Swift in React Native. We'll create a native module in Swift and implement a React Native bridge, allowing us to exchange data back and forth between JavaScript code and native iOS code written in Swift.

  • July 2018

    Devtools breakpointing

    Lightning talk, Live code

    Code breakpoints is something we're all used to. But Chrome Devtools provide additional debugging methods that allow us to break on DOM manipulations, XHR requests, and various DOM events.

  • June 2018

    Mobx and friends

    Slides and Live demo

    This is an introduction to MobX, a complex state management solution. It takes the more popular and simpler Redux library as comparison, to highlight the key differences in concepts, syntax, features and performance.

  • November 2017

    How full is your stack?

    Slides only

    Developers want to become "full-stack". Companies hire full-stack developers. Some say that full-stack means "jack of all trades, master of none". The answer must be somewhere in the middle. We'll analyze the history of the term and debate what it really means from the developement and management point of view.

  • October 2017

    JavaScript is different

    Slides only

    Breaking changes are a great way to improve software, by changing poor design and removing the bad parts. It's what all languages do at some point. However, JavaScript cannot afford to do that. We'll explore why is JavaScript different in this regard and what options does it have for improvement.