Talks & Live coding
Below you'll find a non-comprehensive list of topics I've spoken about.
- Feb 2026Slides 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 2025Slides 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 2024Live 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 2023Live 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 2023Slides 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 2022Slides 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 2020Slides 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
Intlstandard 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 onlyThere 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 onlySimple 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 codeThis 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 codeReact 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()anduseCallback(). - November 2019
The False Dichotomy of UI Development
Slides onlyWe 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 demoThis 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 codeThis 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 codeCode 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 demoThis 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 onlyDevelopers 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 onlyBreaking 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.