So you think you know state management?

Loading talk preview

This is a talk about how client side application's state is inherently relational and hierarchical. Current tooling in JS state management allows for flat model states and global actions availability which results in an increase in cyclomatic complexity. The flat shape of state also brings its own set of integration problems. these issues could be tackled using a modeling language that considers this relation, gives lifecycle to the parts of state and invalidates automatically, is deterministic and whitelists allowed transitions instead of blacklisting on runtime guards.

Podcast Guest @ Webbidevaus Podcast

Listen to the podcast here

A podcast episode about React finland 2019 state management talk sections

Podcast Guest @ Devchat (React Roundup) Podcast

Listen to the podcast here

A podcast episode and a friendly chat around my talk at React finland 2019 on using state machines to model UI behavior abstractly

Experiments with State machines and Overmind @ Christian Alfoni

Loading talk preview

A friendly dev chat with Christian Alfoni about supporting Finite state machines in Overmind which is a tool Christian is working on actively

A hitchhiker's guide to Svelte JS @ HelsinkiJS Meetup 2019

Loading talk preview

It's been a while since SvelteJS was introduced as yet another Javascript solution to build fast and robust web applications. in this talk, we'll dive into what svelte is and try to fashion a high level understanding of its building blocks. if you don't know Svelte yet or you've heard of it but haven't had the chance to get to know it yet, fear not, I'm like you. let's do it together.

In Pursuit of Finite States @ SkyHacks Poland 2019

Loading talk preview

A talk about explicitly thinking about states of GUI components. Implicit vs Explicit state, finite vs infinite state, logic modeling and logic visualization.

The art of explicit and consistent user interfaces v2 @ HolysJS Moscow 2019

Loading talk preview

There are many reasons why developing user interface is hard. No matter which platform we target or the way we present our UI, the user interface is hard to develop due to different reasons. One of the hardest problems of UI development that has been shining more and more in recent years is the state management. In this talk, Farzad will show how using current tooling isn't the complete solution and how our current approaches lack a whole modeling layer in between and what are the most critical mistakes we make in modeling our user interfaces these days. He will demonstrate how this modeling problem can be enhanced using state machines and statecharts in particular.

Tackle React component complexity using Reactive Statecharts @ ReactJS Day Italy 2019

Loading talk preview

There are many UI components that carry a huge deal of complexity. Usually, we deal with complexity in UI without noticing it. As truly said, the devil is in the detail. We usually don't notice this until it's too late! That's why no matter how clean our components and their API surface looks when the first attempt is out, many bugs pop out soon and adding new features gives us a hard time! In this talk, I will try to demonstrate how we underestimate the complexity in React UI components and propose an approach to simplify this effort by modeling the behavior of the component using Reactive Statecharts. I'll go through the thinking model of how to tackle this complexity in developing the component, how to think properly about the edge cases and how to model this explicitly using Reactive Statecharts.

The art of explicit and consistent user interfaces @ 404Fest 2019

Loading talk preview

The user interface is challenging to the core. There are many UI components that carry a huge deal of complexity. Usually, we deal with complexity in UI without noticing it. As truly said, the devil is in the detail. We usually don't notice this until it's too late! That's why no matter how clean our UI and their API surface looks when the first attempt is out, many bugs pop out soon and adding new features gives us a hard time! As animals, we might not have a great tool (sarcasm towards our own brain) to think, consider and compute. we tend to forget. we can't consider everything. we are unable to foresee and predict software. we carry assumptions that aren't correct all the time. This might be a reason why our software starts as an explicit, great looking codebase until the moment reaches when this so-called software transitions from evergreen to ever failing and legacy. By thinking about the history of UI development and trying to explore different complexities, we might be able to find better ways to develop UI.

Introduction to modeling with Finite state machines @ GDG Helsinki 2019

Loading talk preview

Finite state machines are a mathematical means of computation. In this talk, we’ll go through why using them might help us simplify the challenges we face in day to day UI development and how they help us communicate better with people from different backgrounds in the same team. Although the talk will focus mostly on UI development, the concept is abstract and can apply to any problem solving process. Developers, Designers and even product related roles can take something out of this talk.

Explicitness and Consistency in UI @ Futurice Tech weeklies 2019

Loading talk preview

A talk about hidden complexities of UI, proper domain modelling and how we underestimate this complexity.

React Hooks vs Reactive Statecharts @ TampereJS, 2019

Loading talk preview

A talk comparing React Hooks to Reactive statecharts in developing a service called HSLZone

React Hooks vs Reactive Statecharts @ React Helsinki June, 2019

Loading talk preview

A talk comparing React Hooks to Reactive statecharts in developing a service called HSLZone

Abstract component modeling in React @ React Finland 2019

Loading talk preview

Often when we need to develop user interfaces, we model the interface behaviour based on a visual design or the platform we ship onto. However, since the behaviour of the component is the same, it would be beneficial to find a practical way to share this behaviour between different platforms, styling systems, state containers, data transmitters and any other sort of integrations.In this talk, I'll be showing a set of techniques to model a semi complicated React component, independent from the common integrations.

Statecharts driven UI development @ ReactJS community 2019

Loading talk preview

A talk about why UI development is hard and how Statecharts can help us with that

Boost state containment with Redux Observables @ React Helsinki 2019

Loading talk preview

A talk about RxJS, Redux observables and their benefits

Headless React @ ReactJS Community 2018

Loading talk preview

A talk about developing Headless React components in order to boost reusability and composability of UI components

React without React @ Futurice Tech weeklies 2018

Loading talk preview

A talk about Using React or any other UI library on development and wipe them out on compile time in order to save bundle size and a boost in performance on runtime

Test Driven Development (Software Talks) @ Software Talks 2018

Loading talk preview

A talk about TDD on Youtube show SoftwareTalks

The state of Frontend development (Software Talks) @ Software Talks 2018

Loading talk preview

A talk about State of Frontend development on Youtube show SoftwareTalks

The life of a software developer in Finland @ CoderConf 2018

Loading talk preview

A talk about State of The life of a software developer in Finland