Third party library interfaces are often loosely typed to support edge cases. However, there can be great benefits to layering more explicit types over the existing interfaces.
Speaking

ngTemplateOutlet: The secret to customisation
ngTemplateOutlet is a powerful tool for creating customisable components
Understanding NgRx Component Store Selector Debouncing
NgRx component store selectors has a 'debounce' option that lets the state settle before emitting. But what does this mean and how does it work?

Regex search and replace with VS Code
I wanted to upgrade ag-grid across many apps. Standard search and replace did not work, I needed something more powerful.
NgRx 9: Introducing strictActionWithinNgZone runtime check
NgRx 9 brings us a brand new runtime check: strictActionWithinNgZone. Let's see what it does and why you would use it.

NgRx Selector Performance
NgRx selectors promise performance gains via memoization but make sure you do not fall into this trap.
Change Detection: Getting in the (Angular) Zone!
Who knew an event binding in one component could cause a display bug in another?

Introducing TestCases to Typescript
Testing functions with lots of varied inputs to ensure good coverage but without copy and paste.

Restructure with ease thanks to Typescript path mappings
The hardest part about restructuring a Typescript project is updating all the import paths but it doesn't have to be this way.
Change Detection: When using setTimeout() is not your best option
If you have been working with Angular then the chances are pretty high that you have run into the ExpressionChanged AfterItHasBeenCheckedError. Let's fix it.
Why routing from a form button broke my app
This week I was making a demo app for our internal company trade show at G-Research but I had an odd form submit bug that taught me something new.

Using Betterer To Track NgRx Upgrade
Learn how you can use Betterer to ensure you complete your NgRx upgrade.