Skip to main content

Archive of published blog posts

Jira search engine in your browser

Instructions on how to configure Chrome to allow searching for Jira tickets from the URL bar.

Focusing and skipping tests

Some notes on how to tell your testing framework which tests to run.

Fixing keyboard navigation for MacOS browsers

Instructions on how to manually enable tabbing through all focusable elements on a page if you are using MacOS.

Testing asynchronous code

A brief intro to the different ways to set up your asynchronous tests and the reason behind it.

DOM traversal and manipulationExternal link

Cheatsheet for working with the DOM in Vanilla JS.

Getting clever with Array#reduce

A handful of rather unconventional yet interesting use cases for reducing arrays.

A simple Observable implementationExternal link

Let's write our own Observable interface implementation to understand what's going on under the hood when we work with RxJS.

DOM & BOM revisited

Reviewing DOM manipulation and talking to the browser with JavaScript.

Arrays, objects and mutationsExternal link

Some ideas on how to treat arrays and objects as if they were immutable.

A look at the inner workings of ReduxExternal link

Let's try to understand what's really going on under the hood when we use Redux by implementing a simplified version of it from scratch.

Making sense out of ContextExternal link

Learn how the this keyword works, and the different ways in which contexts are bound on function calls.

Manipulating event streams in Bacon.js

Here we'll explore how applying transformations to source streams produces new observables.

Event streams vs Properties in Bacon.js

Brief overview of what properties are and how they are different from event streams. We also cover how to create them and how to convert event streams into properties and vice versa.

Wrapping things in Bacon

Learn to create event streams from multiple sources, including DOM events, promises, timers and many others.