Talks & Live coding
Below you'll find a non-comprehensive list of topics I've spoken about.
- May 2023Slides only
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.
- February 2021Slides only
A thorough analysis of CSS-in-JS
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.
- September 2020Slides and Live code
i18n & l10n
This talk explains the difference between Internationalization and Localization and how to implement translations and pluralisations using
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.
- July 2020Slides only
Simple vs. Easy
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 2020Live code
CSS layout tricks
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.
- April 2020Slides and Live demo
Game of Life and Performance
This is a 2-part talk. The first part is an introduction to John Conway's Game of Life and some of it's practical applications today. The second part walks through an implementation of Game of Life in React.
We'll measure rendering performance and code execution performance, identify bottlenecks and optimize our solution to run at 60fps.
- January 2020Live code
Memoization in React
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
- November 2019Slides only
The False Dichotomy of UI Development
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 2019Slides and Live demo
Isolated Components Driven Development
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 2018Live code
Bridging Swift and React Native
Old and discontinued talks
- July 2018
Devtools breakpointingLightning 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 friendsSlides 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