Arrange Act Assert

Jag Reehals thinking on things, mostly product development

Don't repeat yourself: Why you should use child loggers in Node.js

20 Feb 2023

Logging is an essential part of any application, providing insight into the what's happening behind the scenes. However, as your codebase grows, it can be challenging to keep track of all the different log statements and where they're coming from. This is where child loggers come in.

Child loggers are a feature of many of the Node.js logging libraries such as Pino, Bunyan and winston have that allow you to create a new logger that inherits the configuration of its parent logger.

This means you can create child loggers that are pre-configured with specific options, making it easier to log messages without repeating the same configuration over and over again.

In this blog post, we'll take a look at an example of how child loggers can help cut down on repetition in TypeScript and Pino.

Read More →

Data-Driven vs Assumptions : Why Engineers Should Take a Doctor's Approach

10 Feb 2023

Engineers are responsible for designing and building complex systems that are expected to perform optimally under different conditions. However, without a deep understanding of how these systems behave, they risk making assumptions that can result in inefficiencies or even system failures.

In this post, we'll discuss why understanding a system like a doctor helping a patient is essential for engineers and by taking a proactive and data-driven approach, engineers can ensure that their systems are performing optimally and can make informed decisions that result in improved performance and reliability.

doctor talking to patient

Photo by Zach Vessels
Read More →

Why Engineers Should Try to Reproduce Production Issues Locally

23 Jan 2023

As engineers, one of our primary responsibilities is to ensure that the systems we build are stable and reliable.

However, despite our best efforts, issues and issues will inevitably arise in production environments. When this happens, it can be tempting to try and patch the problem and move on quickly.

However, recreating production issues locally is a critical step in the debugging and resolution process.

In this post, I'll explain the benefits of reproducing production issues locally.

engineering examining an engine

Photo by Aaron Huber on Unsplash
Read More →

Teams should communicate like a team fielding in cricket

08 Nov 2022

When working with clients, how teams communicate tells me more about the culture than anything else.

Successful teams should communicate like a team fielding in a game of cricket who work together towards the same goal giving each other support and encouragement.

By sharing information about the batters, pitch, conditions and strategy, a feilding team agree on a plan on how to bowl and position themselves.

Teams playing cricket

Read More →

Facilitation is an art

15 Jun 2022

A good facilitator seamlessly keeps the flow of conversations fluent and relevant, encouraging people to engage and have equal participation while remaining impartial and patient.

It's a role similar to a conductor orchestrating a choir.

conductor orchestrating a choir

Read More →

Why great products need strong foundations

12 May 2021

You've probably heard someone quote Norm Kerths' Prime Directive during a retrospective

Regardless of what we discover, we understand and truly believe that everyone did the best job they could, given what they knew at the time, their skills and abilities, the resources available, and the situation at hand.

In my experience, engineering teams doing their best at that time inevitably end up having to shoehorn features as requirements change or new information becomes available.

In this post, I'll discuss why great products need strong foundations.

Read More →