Move from Redux to MobX - reduce boilerplate

MobX is a statement management library. Unlike Redux it doesn’t require a lot of boilerplate code. In this post we’ll talk how you can benefit from using MobX vs Redux. More...

Shallow rendering & React Hooks. And why shallow rendering is good

Now you can use shallow rendering for testing React components with hooks. And a few words on why shallow rendering is good. More...

Gradual move to TypeScript. Running JavaScript and TypeScript side-by-side

TypeScript has a lot of advantages. However, it’s not often that you are starting a brand new project. More often though you are working on an existing codebase and simply don’t have luxury of rewriting everything from scratch. After all, we need to deliver new features and fix annoying bugs. But we shouldn’t despair - it’s possible to gradually move your projects to TypeScript - one module at a time - and run TypeScript and JavaScript side-by-side. More...

Testing MVP of B2C Product? You Need a Lot of Users

You have an idea for a B2C product, for a mobile app even. But you’re worried about bugs & bad reviews on app store. So, you only release it for a very limited audience. That’s probably wrong… More...

Value Hypothesis and KPIs

This post talks about setting a value hypothesis and related KPIs. It’s part of the ‘Product Management in the Open’ series. The goal of the series is describe the process of product managing a mobile app - Best in Town / Best in Edinburgh. Please, check this page to read more about the app itself. This post describes my thinking back in the beginning of 2017. Not everything I did at that time was correct and I also try to reflect on some of the mistakes here. More...

Idea

Elevator Pitch

A mobile app that helps to find places that do you favourite meal or drink the best. Unlike existing products (Google Maps, TripAdvisor, Yelp), you see ratings for meals & drinks, as opposed to the whole place. More...

Lean Startup and Inspiration

This is the first article in the series about working on a mobile application - Best in Town / Best in Edinburgh - and applying the Lean Startup methodology and other good product management techniques. More...

Split User Stories Ruthlessly - And Get Value Earlier

Why do you need to split user stories? Often, you hear that it is important to split user stories. You read articles that say it should be possible to complete a user story within a single sprint, ideally within a few days. That’s entirely accurate.
But the main benefit of splitting user stories is that you will deliver value faster!
More...

Writing a JavaScript Public Library? Validate Your Arguments

How many times have seen an obscure JavaScript error when using one 3rd party library or another? More likely than not, you’ve come across a message like:
TypeError: Cannot call method 'someMethod' of undefined
Your browser or the Node.js interpreter will tell you in which file and on which line that error has occurred. Then, you’ll start a very mundane task of examining the code of a 3rd party library, if it’s has not been minimised, of course. Eventually, you will find out that you have forgotten to provide one of the arguments required by a function. You may even see a more obscure error. More...

Practical Functional Programming in JavaScript

JavaScript is a multi-paradigm language with rich functional programming capabilities. Functional programming does not have to be difficult or hugely theoretical. Quite the opposite – it can help you to solve the most common programming challenges in a more concise and elegant fashion. In this video I focus on working with arrays in JavaScript. Normally, when dealing with arrays a developer would write a for loop and mutate a variable or two. However, JavaScript already comes with functions, such as, every(), filter(), map(), reduce(), etc. that help you to write better code for array operations. More...