Yesterday I announced a new open source library I created:


Wait, but why?

You know how sometimes you feel that the “default way” of doing things could be better?

Have you ever searched for “Observable testing” or “Testing RxJS”?
Chances are you probably ended up in an article about “Marble testing”.

Well… personally, when I tried to learn about how to properly write marble tests for my advanced observable chains, I got overwhelmed.

I thought to myself:

“There’s got to be a simpler way to test the most common use cases I have in my production app without jumping through all these…

SPOILER ALERT: I’m back at speaking in this year’s ng-conf 2020

SPOILER ALERT #2: Get a 100$ discount + dinner with me here


“Why Shai?”


“So… what’s so special about ng-conf?”


“How come?”

Well... to tell you about that, let’s go back in time to 2014…

It was a Tuesday afternoon — there I was, sitting with a couple of snacks in front of YouTube and just about to start watching the videos from this new thing called “ng-conf”.

“The first Angular conference…

“Fly Shai! Fly like the wind…”

I believe that one of the reasons people struggle with writing tests is a lack of a systematic approach.

Personally, when I write tests, I don’t like the feeling of getting stuck and not knowing what’s the next step to take.

That’s why over the years I developed a system which is basically a series of questions I ask myself each time I write new tests.

This system is documented in the “HiRez TDD Guide” which I give each student of my Angular Testing Basics course.

In this post I’d like to share one short principle from that TDD guide.

Where should I start from?

2018 was one of the most important years in my life in terms of lessons learned and life changing realizations.

Some of them were: discovering how to truly feel fulfilled, finding meaning in what I’m doing, deciding what’s essential and what’s not, better time management, and more…

And here are some of the decisions I made 2019:

1. Focus on my strengths, hack my weaknesses

Focusing on my strengths as Reactive Teacher Man (ng-conf 2018)

Recently I went through a mind blowing experience.

After learning about the “Myers Briggs personality test” in the book Principles (by Ray Dalio) and also hearing about it from a good friend, I decided to take the test myself.

Before taking the test…

It’s been a while since my last post because I’ve been busy cooking you people some pretty interesting Angular testing learning material.

But today, I read the following tweet:

And it got me inspired to share my pattern of configuring routes in large scale Angular apps.

Since the beginning, when I read the Angular Routing docs, and saw the “Routing Module” pattern suggestion, I was confused.

“Why do I need a separate module for routing?” I asked.

Nobody answered because I was alone. 🙁

But then I said: “What the hell, let’s try it!” 😎

And I started applying…

Last month I went to ng-conf 2018 together with Mike Brocchi and Pete Bacon Darwin to give a talk called:

“I switched a map and you’ll never guess what happened next…”

(if you want to read about the behind the scenes leading up to the event,
check out my last post about it).

Before you continue, watch our “how switchMap works” talk:

DISCLAIMER: no Backbone or Angular developers were harmed during this talk

Pretty unusual huh? 😜

BTW, if you’re interested in the post talk “behind the scenes” stories- check out my personal story from this Adventures in Angular podcast interview and our live RETROSPECT post talk meeting chat…

Not a lot of people know this about me, but I am an experienced and certified procrastinator. (With a diploma and all…)

For the past few years I’ve got the opportunity to come and speak at ng-conf, the world’s largest Angular conference.

And every time I managed to get my slides ready just at the last moment.

For example, at ng-conf 2015, for the “ng-wat” talk, my slides + script were (completely) ready only 90 minutes before the actual talk.

Working on the slides + script of the ng-wat talk, on the flight to Salt lake city. [ng-conf 2015]

For ng-conf 2016, for the “ng-show” the script + static slides were finally done only 2 hours before (after rewriting…

Hello, I’m Shai, and today I’m quitting my perfectionism.

“I love you Shai”

Thanks mom! ❤️

Who The Hell Are You Shai?

“When your face clearly doesn’t match the sign…” (pic credit: Stephen Fluin)

A few years back I started a tiny, unknown technical Wordpress blog.

It was mainly to keep bookmarks of cool new JavaScript lectures I ran into and new things I learned along the way.

At some point I switched a hosting provider, but I never took the time to migrate my blog, so it basically died.

For years I was telling myself I should migrate or create a new blog, as every now and then I got this itching urge to write about something…

Shai Reznik

Developer, Entertainer, Crazy person, Founder & teacher of the Angulars at

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store