Thoughts on software design, team building, and ethical technology

Here you can find my articles, thoughts and reflections on technology, software design and tutorials.

Replace vs Replace All

There is a good chance that replace does not work how you think: const numbers = "10.00.00.0000" const replaced = numbers.replace(".", "_") console.log(replaced) // '10_00.00.0000' Wait what? It only replaced the first instant, replace is a simple ...

Folding Results

Kotlin is a fantastic language. Every day, I find a new function or method that makes programming in it a breeze. One of my go-to functions I keep reaching for recently is fold. You can think of fold like a reduce; however, reduce starts with the fir...

Padding Strings

We have been messing with arrays in the last few blogs, so let's switch gears and look at some string methods. There are a lot of built-in methods on a string, but two you might not know are padStart() and padEnd(). So what do they do? They pad a str...

What's In My Array

Arrays are some of the most common data types you work with as a programmer. We filter them, we map over them, we edit them and more. As we spend so much time with them, JavaScript has created some great helper functions to make them easier to work w...

Testing Array Elements in JavaScript

There are so many functions in JavaScript, especially in arrays, that it can be hard to keep track of all of them. You may not have used every before, but it is a simple way to ensure each element in the array passes a test. The array method returns ...

Errors in TypeScript

Throwing a custom error in JavaScript is easy. Want to add a status field to all errors thrown by networking code, no problem. Need to add a further info field? Anything goes in JavaScript, but in TypeScript, things are different. So what's the best ...

Reversing Arrays in JavaScript

JavaScript has two built-in functions for reversing arrays. The first method is Array.prototype.reverse() which reverses the array in place, meaning we change the original array. const numbers = [5, 10, 15, 20, 25, 30] const reversed = numbers.rever...

Crafting Error Trails In JavaScript

Intercepting Errors and returning a new error with a more end-user-friendly message is a staple of JavaScript. However, this can cause us to lose steps in the stack trace or make debugging harder. Now thanks to Error.prototype.cause we can provide a ...

JavaScript Find Last

We all have used find before on an array, but what if we wanted to start from the end of the array? Well, thanks to findLast you no longer need to perform some weird logic or use an external library to pull this off. In this example, you can see how ...

Nullish Coalescing Operator

We often use the or operator || in JavaScript to create a fallback value. However, this comes with risks, and you should try to use nullish coalescing operator instead ??. When we use the or operator, it will default to the value provided if the valu...

JavaScript Last Item in an Array

The new method at allows you to return an item in an array at the given index. You might be thinking I can already do this with brackets. The great thing about at is it can take negative numbers and count back from the end of the array. The way at wo...

Practical Use Cases for Edge Computing

Following on from my last blog post on WTF is Edge Computing, let's take a practical look at some of its use cases. We will cover frameworks and tools, where they shine and some drawbacks. Fullstack Frameworks The easiest and best example of where ed...

Arithmetic Series

Recently I found myself having to find a missing number in an array. After some searching on the internet, I found a simple and efficient answer. I wanted to know why it worked and dug further into the math. Most explanations hit me with pages and pa...

WTF is Edge Computing

What is edge computing? What do those words even mean? With all the hype around AI unleashed on our Twitter and LinkedIn feeds, it may be hard to remember that edge computing was the new bandwagon we needed to jump on not long ago. However, before we...

Deploying Bilbies on the Edge

I love building APIs and Deno, a new JavaScript runtime, has me excited about making APIs that run on the edge network. Even if you don't have a use case for an API on the edge network, it's fun to play with new things. This blog will show you how ea...

Modern API Deployment Options in the Cloud

Creating an API for your backend doesn't need to be complicated. Let's explore some options for bootstrapping an API using modern tools.

Fetch, Networking and Async Functions

Disclaimer: I created this blog and content to help my 2022 SheCodes Australia Plus cohort understand the basics of using fetch in React. How do we fetch data from an API in React? When JavaScript is run in the browser, it has access to a fantastic b...

URLs, Routes and React Router

Disclaimer: I created this blog and content to help my 2022 SheCodes Australia Plus cohort understand the basics of URLs and React Router Update Feb 2023: Updated for my 2023 cohort You click a link, a button or a navigation element, something loads ...