Ken Muse
A Crash Course on Jest TestEnvironments with TypeScript
I needed a way to implement integration tests that would allow me to ensure that I could clean up the emulators I was using after each test cycle. Jest Test Environments provided a powerful way to do this, and TypeScript makes it easy to do (aside from a few quirks).

Read this article

Implementing Processes for GHAS using GitHub Probot
GitHub Advanced Security (GHAS) helps teams to shift left and secure their development practices. But what do you do when its process its processes and practices doesn’t quite fit your team’s approach? In this post, we’ll look at how to use GitHub Probot to implement your own process in a GitHub-native way.

Read this article

The Ultimate Tips for Working With Large Git Monorepos
As a monorepo grows in size, the performance often degrades. It’s the nature of Git. Thankfully, Git has some settings that you can use to improve the performance of your monorepo. This post covers some of the key settings and best practices for working with large monorepos.

Read this article

Planning Kubernetes Cloud Deployments
Last week we built an understanding of how Kubernetes reserves resources on a node. This week we’ll look at how cloud providers configure the resource reservations for their Kubernetes offerings.

Read this article

Understanding Kubernetes Resource Consumption
Surprised that you can’t fit as many pods on a node as you thought? Wondering why a node with 32 GiB of memory can’t hold four 8 GiB pods? It turns out that there’s a lot more to the story of how Kubernetes allocates resources. In this post, you’ll learn how resources are allocated and how to use that to plan your cluster.

Read this article

The Ultimate Debugging Hack for Developers
Developers usually want to be able to directly connect to a system, start the debugger, and step their way through the code. Being able to log into a machine and debug is the way most of us learn to troubleshoot and fix issues. But what if you can’t do that? And what if I told you there’s a better way to debug?

Read this article

Scaling ARC on a Schedule
In the past, ARC has a feature that enabled it to change the minimum number of runners based on a schedule: ScheduledOverrides. When ARC was modernized, this feature was not included in the new version. This isn’t an oversight. Instead, it’s a recognition that Kubernetes has a built-in feature that can handle this task: CronJob. Learn how to use the CronJob resources to change the settings for ARC scale sets on a schedule.

Read this article

How I Blog (or How I Learned to Automate Everything)
A surprising amount of effort (and automation) goes into creating this blog and publishing the content. Writing and hosting content required me to find a set of tools that would be portable and flexible. Over the last few years I’ve found an approach that works for me, and this week I thought I’d share some of the details.

Read this article

The Top 5 Things To Know About ARC
Actions Runner Controller (ARC) is a powerful way to manage ephemeral, self-hosted GitHub runners. If you’re considering ARC or starting to deploy it, there are five key things to know if you want to be successful using it.

Read this article

The Importance of Kubernetes Logs
There’s a lot happening under the covers with Kubernetes. If you really want to master your Kubernetes environment, it begins with understanding the value of a logging and how to implement good logging practices.

Read this article