All blog posts
350 posts, newest first.
-
Building the Matcha Byron Bay website
A rundown on the design, technology and wholesale work behind the new Matcha Byron Bay website
-
Building the Pocket Rice marketing website
A rundown on some of the designs and working behind the Pocket Rice marketing website
-
Two Pointers
Learn how to spot two-pointer problems and walk through pair sum variants with interactive visuals
-
Software Interview Guideline 2026 (Australian edition)
A collection of links, ideas and approaches to interviewing for software companies in 2026.
-
Using BuildKite with AWS CodeBuild
A working proof-of-concept for using BuildKite with AWS CodeBuild with the AWS CDK
-
Using AWS Bedrock with opencode
Setup your opencode CLI to work with AWS Bedrock foundational models
-
Interface-based functional optionals in Golang
A pattern to pass optional settings to build flexible constructors without a ton of parameters.
-
Adding Swift packages in Xcode
Learn how to add the popular Swift networking package Alamofire in a Swift Xcode project
-
Swift from the command line
An introduction to using Swift without Xcode
-
Building TUIs with Golang and tview
A practical walkthrough for your first steps on building TUIs with Golang and tview
-
Implementing more manageable transform streams in Node.js
After working through async generators and class streams, I'm sharing my conclusion on making these streams more manageable
-
Configuring Omarchy on Beelink
This walkthrough describes the steps taken to load Omarchy, an opinionated archlinux/Hyprland setup, onto my new Beelink SER5.
-
TypeScript Private Elements vs Private Modifiers
We explore private elements in classes and why you should use them over modifiers
-
Tail Recursion
Understand what tail recursion with this visual aide and example in Zig.
-
Data Classes in TypeScript
Learn how classes focused on holding data can clean up type definitions and provide discriminants for your TypeScript code.
-
Isolating PostgreSQL Tests with PGLite
Learn how to rapidly extend your test boundaries to the database without losing speed or introducing flaky tests.
-
PostgreSQL Performance
Learn more about PostgreSQL indexing practices and performance measurement in this blog post.
-
Multi-tenant testing
Exploring Uber multi-tenancy paradigms and seeing how they can impact testing in TypeScript.
-
Retries, timeouts and spans for TS Rest clients
Customize your TS Rest API calls to enable capabilities such as retries, timeouts and span information
-
Well Known JSON Web Key Sets (JWKS)
Understand how JSON Web Key Sets served from .well-known endpoints enable you to dynamically verify JSON Web Tokens (JWTS).
-
Mutual Transport Layer Security (mTLS)
Understand how mutual transport layer security works (mTLS), configure your own chain of trust and see real-world use cases.
-
Roll Your Own API Keys
Ever wondered how to configure your own API keys? This blog post explores API key design options and trade-offs.
-
The Boundaries of TypeScript Testing
Learn how to increase your testing confidence vector with principles and tools like MSW and testcontainers.
-
Effective TypeScript Principles in 2025
A set of guidelines to reduce code management and improve developer experience in 2025
-
Better .NET Controllers with OneOf
A reflection on a recent codebase change where the choice came between handling exceptions from middleware or controlling responses from the controller.
-
AWS Aurora DSQL in Action
Take a look into AWS' recently announced distributed Aurora SQL solution, now in preview!
-
Exploring Git Worktree
An exploration on how Git Worktree makes stash redundant and saves you headaches across large changes.
-
Expressing Your Thoughts in Software
Learn to express your thoughts and opinions better with this guide.
-
Resource Management in TypeScript
We look into implementing the Acquire and Release Pattern in TypeScript for creating a sequence of operations with compensating actions on failure.
-
Creating a Result Type in TypeScript
In this blog post, we take a look at libraries such as EffectTS, Zod, Valibot and Joi to understand how they approach a Result-like type and how we could approach building our own.
-
Node.js Streams in Action with the AWS CDK
We tie together everything that we've learned so far about Node.js streams and apply it through a practical example using the AWS CDK, AWS S3 and AWS Transfer Family.
-
Stream Pipelines in Node.js
We looking into the pipeline function from the Node.js stream module.
-
Transform Streams in Node.js
What are Transform streams in Node.js? How do they work? We cover the fourth and final fundamental stream type in this post.
-
Duplex Streams in Node.js
What are Duplex streams in Node.js? How do they work? We cover the third fundamental stream type in this post.
-
Writable Streams in Node.js
What are Writable streams in Node.js? How do they work? What are some common use cases for Writable streams? We continue our exploration into streams in this post.
-
Readable Streams in Node.js
What are readable streams in Node.js? How do they work? What are some common use cases for readable streams? Let's explore these questions in this post.
-
Understanding Node.js Streams
Everything you need to prepare yourself to know Node.js Streams.
-
Node.js Buffers Explained
Learn what a Buffer is in Node.js, how to think about it and how it is useful.
-
Dependency Injection with InversifyJS
Learn how we can use InversifyJS to help dependency injection with it's inversion of control container.
-
Up and running with Go 1.22's new built-in router
Go 1.22 comes a brand new built-in router option for more complicated server applications. This is a basic dive in for Golang first timers.
-
Type-safe usage of React as a prop for flexible components
Ever wondered how design systems provide an 'as' prop for their components that you can use to inject or change the component type? Let's look at how we can do this with TypeScript.
-
Mounting Your Own Cloud Storage With Cloud Mounter and AWS
After another failed hard drive meant losing data, I decided to look into mounting my own cloud storage. Here is how I did it.
-
Using Prisma For Migrations And DrizzleORM For Querying
This post is for you if you are migrating across from a Prisma application or just want to check out the performance difference with DrizzleORM.
-
Node.js --prof and --process-prof flags
Understand the Node.js profile flag by improving an inefficient approach to getting unique elements from an array.
-
Explaining CJS vs AMD vs UMD vs ESM
One of the JavaScript ecosystems biggest pain points. What are they and why do library maintainers hurt inside when they have to support them all?
-
Mastering API Testing with Supertest, Express.js, and Jest
A walkthrough on setting up a basic Express.js application and writing tests using Supertest for robust APIs.
-
Diving Into Typescript's Type System: Type Operators
Join me as we dive deep into TypeScript's type operators, including keyof, index types, and index signatures. I'll be guiding you through practical examples that you can follow along with in the TypeScript Playground. Master these powerful tools with me to boost your TypeScript's code reliability and predictability with an advanced type system.
-
Typescript And Promises: Conquering Asynchronous Programming
See how TypeScript is used with async promises.
-
Typescript And Functional Programming
Implement your own map function with TypeScript.
-
Advanced Union And Intersection Types In Typescript
A practical explanation of how union and intersection types work.
-
Typescript Modules For Organizing And Sharing Code Effectively
This post covers the basics of modules in TypeScript.
-
Harnessing The Power Of The keyof Operator
See how we can use the TypeScript operator keyof to dig into our types.
-
Advanced Typescript Generics In Practice
A look at different implementations of generics for more specific use cases.
-
TypeScript Decorators: An Introduction To Metadata And Annotation
Decorators, a proposed feature for JavaScript, are already available as an experimental feature in TypeScript. See an example of decorators in action in this post exploring the topic.
-
Ensuring Type Safety With Type Guards
Implementing custom type guards for a complex type validation with deep object structures.
-
Next.js + Vercel AI Package In Action
Get started with the new Vercel AI SDK in this quick demo with NextJS.
-
Exploring Typescript Mapped Types And Transformations
Mapped types are a powerful feature that enable us to take existing types and generate new types from them on the fly.
-
Mastering Conditional Types In Typescript
See the T extends U ? X : Y syntax in action with simple examples.
-
Understanding Advance Type Inference In Typescript
Advanced Use Case: Exploring type inference with conditional types and more complex generic patterns.
-
The Benefits of Combining Static Site Generation with Incremental Static Regeneration
Learn how you can statically generate pre-determined Next.js pages using a database for improved build times while still allowing for dynamic content to be generated on the fly.
-
A Practical Look At The "Unknown" Type In Typescript
Ever wanted to better understand the unknown type? This blog post walks you through a practical setup and look at working with the unknown type.
-
Using The New Vercel Open Graph Image Generation
Following the release of Satori and Vercel's new open graph image generation, follow along as I demonstrate how I updated my own open graph images for the blog.
-
Exploring the Tremor dashboard UI library
A look at implementing beautiful graph UI components quickly with Tremor.
-
Iterating on our bulk Visi exports feature
This post focuses on my work at Visibuild to roll-forward a feature to a more scalable solution.
-
Discriminated Unions In Typescript
Peel back some of the magic behind discriminated union in TypeScript and how they impact your workflow.
-
Annotated Rails Models
Help understand your Rails models easier with the help of the annotate models gem.
-
Local ActiveStorage Development With Rails 7
Set up ActiveStorage on your local developer environment with Rails 7.
-
Mocks With Minitest
A short overview on how you can mock both class methods and instance methods when dealing with Minitest.
-
Pry Debugger Tips
Some basic tips on getting more value from the Pry debugger.
-
Ruby SmarterCSV Gem
A quick look at using the SmarterCSV gem.
-
Processing Local YAML Files With Sidekiq
See how you can use Sidekiq jobs to read and process a local YAML template for populating the database.
-
Uploading Files In ActiveAdmin
See how to upload files to ActiveAdmin using this example that uploads a CSV file and populates data to the database.
-
Automating Ruby Gem Package Releases With Github Actions
In the final part of the Ruby Gem series, we will be automating the deployment of our recently created gem using GitHub Actions.
-
Creating Your Own Ruby Gem
In this post we will take our basic code from the previous exercises and package it up as a Ruby gem to install in other projects.
-
Deploying Your Gem To RubyGems
In part two of the Ruby gem series, we will take the gem we created in the previous part and deploy it to RubyGems.
-
MiniTest With GitHub Actions
In this short overview, see how MiniTest can be incorporated into your GitHub Actions workflows.
-
RSpec With GitHub Actions
In this short overview, see how RSpec can be incorporated into your GitHub Actions workflows.
-
Rails Entity-Relationship Diagrams
In this short post, see how you can visualize your domain model quickly using the rails-erd gem.
-
Through Rails Associations
Following up on the previous post, we will be looking at the last through associations that come baked into Rails.
-
Devise Part 10: Devise Token Auth
In part ten of the Devise series, we start a new project from scratch to explore how the devise-token-auth gem can be setup with a Rails 7 application.
-
Devise Part 11: Authentication Tokens With Doorkeeper
In part eleven of the Devise series, we continue on with the previous project to add the capability of authenticating to a public API using authentication tokens with Doorkeeper.
-
Understanding Rails Associations
In this post, we go through all six of the possible Rails associations with visualizations to help us understand what associations are supported and how they work in Rails 7.
-
Exploring Ahoy Analytics With Rails 7
This post is a reflection on my first look at using Ahoy analytics in a Rails 7 application.
-
ActiveAdmin With Ruby On Rails 7
ActiveAdmin is a powerful gem to help us generate admin panels for our internal usage for Rails applications. This post will cover the basics of getting up and running with ActiveAdmin and Ruby on Rails 7.
-
Getting Started With The FriendlyID Gem In Rails 7
See how the FriendlyID gem makes it simple to convert you URLs into something more useful and friendly with Rails 7.
-
Ruby Memoization Basics And Memoist
An intro into Ruby memoization with the memoization operator and the Memoist gem.
-
SimpleCov With Ruby And GitHub Actions
See how to setup SimpleCov for your RSpec tests in a simple Ruby setup and then implement a GitHub Action to comment the coverage results in a pull request.
-
Devise Part 7: Testing With RSpec And Factory Bot
For this part, we look at setting up some helpers for us to log users in when writing controller tests.
-
Devise Part 8: Policy Authorization In Rails 7 With Pundit
This post looks at how we outline required policies in order to fulfill requests in Ruby on Rails using the Pundit gem.
-
Devise Part 9: Setting Up 302 Redirection vs 401 Unauthorized Handlers
In part nine, we take a look at how we can set up our API endpoints to return a 401 response if a user is not signed in instead of the default 302 redirect to the login page.
-
Benchmarking In Ruby
This post will demonstrate how to benchmark and compare code to help us better understand the performance of our Ruby code.
-
Devise Part 5: OAuth With GitHub And OmniAuth
In part five, we set up the OmniAuth configuration for Devise to demonstrate login using GitHub.
-
Devise Part 6: Adding Recaptcha To Prevent Fraud And Abuse
In part six, we enforce the usage of reCAPTCHA v2 to prevent signing up or logging in without passing the reCAPTCHA verification.
-
Sending Your First Email With ActionMailer In Rails 7
Follow the basics to send an email using a Postmark template and view it in the browser during development.
-
Devise Part 1: Setting Up Devise With Rails 7 And React
In part one of this six part series on Devise and Ruby on Rails, we demonstrate setting up Devise for Rails 7 with a basic sign up and login flow.
-
Devise Part 2: Using Redis Sessions Instead Of The Cookie Store
In part two of our Devise series, we look at how we can replace the default cookie session store with Redis.
-
Devise Part 3: Updating Our Devise Views With Tailwind CSS
In part three of the series, we walk through how to add TailwindCSS to a Rails 7 project and spruce up our sign in page.
-
Devise Part 4: Authentication With A Separate Frontend
In part four, we add in a separate Next.js project into the mix and demonstrate how to organize authentication for our main Rails API.
-
Rate Limiting With Rack Attack In Rails 7
In the second of two posts, we look at setting up rate-limiting with the rack-attack gem to see how we can limit requests to our API.
-
Rate Limiting With Rack Throttle In Rails 7
This is the first of two posts that will look at rate limiting in Rails application. This post will focus on the rack-throttle gem and its usage with Redis.
-
Getting Started With Sidekiq In Rails 7
A demonstration on getting a local development environment going with Sidekiq and Redis to run a simple demonstration job in Rails 7.
-
Using The Rails Cache With Redis
An entry-level introduction to setting up the Rails cache and seeing it in action with Redis in development.
-
Ruby On Rails Pagination With Kaminari
Implement simple pagination mechanisms using the Kaminari gem with Ruby on Rails 7.
-
Action Cable Messages With Redux
Continuing on from the last post, we introduce Redux to handle our remote messages and perform actions on our React.js application.
-
Action Cable Hello World With Rails 7
Dive head-first into using Action Cable with Rails 7 and setup a basic React project that can handle web sockets.
-
Factory Bot With Rails
At this stage of the project, we are introducing Factory Bot to help replace the default fixtures so we can test our PostsRepository code.
-
Dry Validation With Rails
Continuing on with our project, the next step is to add in dry-validation and dry-monads to help tidy up our code.
-
Repository Pattern In Rails
A look at how we can implement a Railsy-way of the Repository Pattern in our Rails apps.
-
Exploring Dry-RB With Dry Matcher And Dry Monads
See how we can use the Dry RB gems dry-matcher and dry-monads to clean up our Ruby code.
-
Setting Up A Base GraphQL Server And GraphiQL With Rails 7
Follow along as we build out a skeleton Rails 7 server that enables us to use GraphQL.
-
Rails 7 Using React With ESBuild
Set up a new Rails 7 project with ESBuild that has TypeScript support out-of-the-box.
-
Rails 7 Using React With Htm
See how you can update your new Ruby on Rails 7 project to use HTM and React without a Node.js setup.
-
The Beginner's Guide To Monkey Patching In Ruby
This guide will alleviate questions that new Rubyists have around monkey patching and how it works in Ruby.
-
Bang Methods In Ruby
Why the '!' in Ruby is so important to conquer and real-world implications.
-
Pattern Matching In Ruby
Understand pattern matching in Ruby.
-
Understanding Ruby Blocks
A recap on the fundamentals of Ruby blocks.
-
My Core Principles For 2022
As 2022 kicks off, I am listing out the core principles that I am putting a focus into throughout the year.
-
Python Decorators In Action
An overview on Python higher-order functions, decorators and some practical examples for when decorators can be used.
-
Jest Snapshot Testing For Template Languages
Discover a great use case for Jest Snapshot testing with template engines and generators.
-
Generating Fake Data From JSON Schema
Generate fake data to be used in your applications based on a JSON schema document.
-
Generating JSON Schema From Typescript Types
Use the ts-json-schema-generator package to generate a valid JSON schema from your TypeScript types.
-
Generating DBML Files From A Prisma Schema
Output DMBL files from your Prisma schema and see how you can view it online.
-
Create Stripe Subscription Products From The CLI
Create new Stripe subscription products from a simple TypeScript script.
-
Next.js Enterprise Project Structure
Set yourself up for success in large Next.js project structures by following this opinionated layout.
-
5 Must Have Figma Plugins For Web UI Design
I share 5 of the Figma plugins that sped up my workflow 10x.
-
Scheduled Post Test
Don't mind me, I am just testing my scheduled blog post workflow.
-
Scheduling One-Off Cron Jobs With AWS EventBridge And AWS Lambda
Reduce instances and costs for single-run cron jobs by using AWS EventBridge rules to trigger AWS Lambda functions.
-
Next.js Shortened URL Automation
Automate the process of creating shortened URLs for your Next.js posts with this how-to guide.
-
In My First 5 Days Of NFTs I Minted 2460 Collectibles From Hotel Quarantine
A recount on how I minted 2460 pieces of generated digital art onto OpenSea from my hotel room in Australia.
-
Jest With GitHub Actions
See how to use Jest alongside GitHub Actions run Jest testing in CI.
-
Building Typescript NPM Packages With Parcel 2
See how easy it is to build a TypeScript NPM package using Parcel 2.
-
Locking Redis Transactions In Node.js
Avoid dirty reads on highly contended cache resources in Node.js with the Redlock package.
-
Introduction To Caching With Next.js
The beginner's guide to how different forms of server and client caching work with Redis and React Query.
-
Converting The Interim Swyftx Data Structure Into A Valid OpenAPI Format
Following on from the previous post, we will take the interim data structure we scraped from the Apiary documentation website and reshape it into a valid OpenAPI JSON structure.
-
Authenticating Use For The Swyftx API With Node.js
As we begin a new short series on Swyftx, we begin by getting up and running with your API keys and retrieving your profile with a simple Node.js project.
-
Scraping The Swyftx Apiary Docs Into A JSON File With Puppeteer
Using Puppeteer, we scrape the Swyftx API docs from Apiary and convert it into a JSON data structure to use later.
-
5 Handy Python Tips For Beginners
After 30+ days of my 100 day Python journey, I stop to reflect on the five tips that have been unusual by helpful coming into the language.
-
Regression With Scikit Learn (Part 4)
In our final coverage of regression using SciKit Learn, we look at how we can use regression with regularization.
-
Regression With Scikit Learn (Part 3)
In part three, we look at using k-fold cross-validation to prevent dependency on a particular train/test split.
-
Regression With Scikit Learn (Part 2)
In second blog post on linear regression, we take what we learned in part one and look deeper into the basics of linear regression and applying a train-test-split to our data.
-
Recapping Kubernetes Basics
This short recap on Kubernetes will set the foundation for the upcoming series on Kubernetes and EKS.
-
Regression With Scikit Learn (Part 1)
Continuing with our look into supervised learning, today we explore the basics linear regression by applying it to another Scikit Learn toy dataset.
-
Measuring Classifier Model Performance
See how we can visual test the performance capability of our K-Nearest Neighbors classifier using Scikit Learn.
-
First Look At Supervised Learning With Classification
The 34 Days of Python series is moving into its second phase with Machine Learning. The journey will start with a first look at project setup and classification.
-
Python Lambda Functions Deployed With The Typescript AWS CDK
Deploy a simple Python lambda function with the TypeScript AWS CDK to LocalStack.
-
Deploying An EKS Fargate Cluster With The AWS CDK (Part 1)
Deploy a Kubernetes Fargate on EKS cluster using the AWS CDK.
-
Oil Paint Effect With OpenCV Python
Apply an oil paint effect to images in Python with OpenCV.
-
Automating Pip Package Deployment With Github Actions
Learn how to use GitHub Actions to speed up your Pip package deployments to PyPi.
-
Deploying A Fargate Cluster With LocalStack And The AWS CDK
Use the ECS patterns library to deploy a simple Fargate cluster to LocalStack.
-
Generating Fake CSV Data With Python
Learn how to generate random data and export it to CSV to use in your projects.
-
DynamoDB With LocalStack And The AWS CDK (Part 2)
The second part of this demo will show how to interact with our DynamoDB table using DynamoDB Toolbox.
-
Semantic Versioning In Python With Git Hooks
Use Conventional Commits, pre-commit and Commitizen to automate your versioning based on commit messages.
-
DynamoDB With LocalStack And The AWS CDK (Part 1)
A walkthrough on how to deploy a local DynamoDB table to LocalStack with the AWS TypeScript CDK.
-
Your First Pip Package In Python
Learn how to deploy your first package to Pip in this straight-forward tutorial.
-
Building A CDN With S3, Cloudfront And The AWS CDK
Use the TypeScript AWS CDK to deploy an S3 Bucket fronted by a CloudFront CDN and Route53 record.
-
PyTest With GitHub Actions
Build off previous work on PyTest by adding a GitHub action to run PyTest in CI.
-
How PyDoc Helps Your Python Development
Explore PyDoc and understand how it can improve your documentation and how to search it.
-
Using The AWS CDK With LocalStack And aws-cdk-local
Speed up your local AWS CDK development but using LocalStack and the AWS CDK Local wrapper package.
-
AWS CDK With Typescript Foundations
Get started with the AWS CDK in TypeScript and learn some of the foundational work for upcoming tutorials.
-
Time Functionality In Python
Explore how to work with the time module from the Python Standard Library in detail.
-
Mocking Python datetime In Tests With FreezeGun
Learn how to set up reliable PyTest unit tests for the Python datetime library with FreezeGun.
-
Datetime In Python
Learn how to work with the datetime library in Python.
-
Exceptions In Python
An overview look at custom exceptions in Python
-
Working With Regex Expressions In Python
This post will look at how the regex module in python can be used to work with regular expressions.
-
Beautiful CLIs With The Rich Python Library
See how the Rich library for Python can make it easy to add color and style to terminal output.
-
Annotating Video Clips With MoviePy
Introduce yourself to MoviePy through a simple example to add text to video.
-
Pretty Error Output In Python
Make debugging Python errors more enjoyable.
-
CLI Prompts In Python
Use PyInquirer to create more interactive and user-friendly command line prompts.
-
Tip: Interactive Python Notebooks With Binder
Display your public GitHub repositories in an interactive notebook.
-
Tip: Making Directories Recursively With Python
Using the OS module recursively make folders on your operating system.
-
Python Unit Testing With PyTest
Learn the basics of installing and using PyTest with a basic math module example.
-
Building CLIs With python-fire
Work through an example of building a simple CLI script with the python-fire library.
-
Dev Only Next.js Routes
A method to protect your Next.js routes from being accessed in production.
-
Releasing workingoutloud.dev
A Sunday morning product built to help be more public about my work and day-to-day life.
-
Reading a file directory with Python
Use the glob library to create a list of all the files in a directory.
-
Frontmatter Parsing With Python
Learn how to take a markdown file and parse the frontmatter metadata for usage in your scripts.
-
Composing Images and Text with Python
Use the Pillow image library to add text and icons layers to an image programmatically.
-
Unsplash API with Python
Installing and using an unofficial Python Unsplash API by salvoventura
-
First Steps With Jupyter Notebooks
Setting up a Jupyter Notebook for the first time to aid with the 100 Days of Python challenge
-
A First Look At Generative Art With p5.js
Slowly introducing yourself to the world of generative art with this short introduction
-
Debugging JavaScript Performance With NDB
Use the Node debugger to visualise performance
-
Intro To Debugging Node.js Applications With VSCode
See how you can get started with the VSCode debugger for Node.js applications
-
Running Cron Jobs On Your Local Mac
An easy-to-understand example of how to run automated jobs using crontab on your Mac
-
Local AWS development with LocalStack
Learn how to setup LocalStack to help with local development emulating AWS products
-
Using DynamoDB on your local with NoSQL Workbench
Learn how to play around with DynamoDB locally and use NoSQL Workbench to plan out your work
-
Dynamic UIs Using Dynamic Imports, Next.js 10 and React State
See how you can dynamically create UIs based on React State using dynamic imports, Next.js 10 and React State
-
Building A Design System Package With Storybook, TypeScript And React In 15 Minutes
Have you ever wanted to build a UI Component Library with TypeScript and React? This blog post will take you through a straightforward set up that uses the bare minimum to get a working component library that you can re-use across your different React projects.
-
Adding A Basic Related Articles Section To The Gatsby Starter Blog Starter
This blog post will show you how I updated my Gatsby website to display a basic related articles section based on frontmatter tags.
-
Implementing Simple Auth To Your Next.js Website using Next.js Auth
This post will go through a simple example of setting up simple authentication with a user and password to your Next.js website.
-
Exploring The New Image Component With Next.js
This blog post will explore the new Next.js Image component for an optimised image experience on the web.
-
Exploring Internationalisation With Nextjs 10 and react-intl
This blog post will explore the new internationalised routing in Next.js 10 and how you can use this to your advantage with react-intl for React.js
-
Taking Stripe Payments With Next.js 10, TypeScript 4, React 17 and Vercel
Learn how to create a test Stripe example, update that example and deploy to Vercel for a Stripe payment gateway, React 17, TypeScript 4 and Next.js 10
-
Exploring Vercel Analytics Using Next.js 10 and GTMetrix
See a roundup of my look into Vercel's new analytics feature that you can enable on a Vercel project and see how I used GTMetrix to help push some numbers.
-
Deploying Next.js 10 With Vercel CLI and the Vercel GitHub Integration
Learn how to deploy the base Next.js 10 app with the Vercel CLI and/or the Vercel GitHub Integration
-
Deploying Static Websites To AWS S3 + CloudFront + Route53 Using The TypeScript AWS CDK
Use the TypeScript AWS CDK to deploy static sites to S3 with a CloudFront distribution and Route53 setup for a custom domain.
-
Exporting Static HTML From A Nextjs 10 Site
Learn how to export static HTML from a Nextjs 10 project to host
-
Snowpack 2.15.1 with Create React App 4.0.0 and NPM 7
Updating my previous post on using Create React App with Snowpack for the latest versions and NPM 7
-
Webpack 5 Builds for AWS Lambda Functions with TypeScript
Using Webpack 5 to build lambdas for AWS deployments
-
Self-Destructing Tweets
A look into how you can run a cron job to self-destruct tweets
-
Generating Types From JSON Schema With QuickType
Generate strongly-typed models and serializers from JSON, JSON Schema
-
Align TypeScript Standards With JSON Schema
Using TypeScript to standardise types across the board using JSON Schema
-
Prevent Breaking API Changes With OpenAPI And openapi-diff
Prevent Breaking API Changes With OpenAPI And openapi-diff
-
Validate Your APIs With OpenAPI Schema Validator
Validate Your APIs With OpenAPI Schema Validator, YML and JSON
-
56 Mental Models That Help You Tick
Explore a tool kit of models that you can apply to your own work day
-
Your First ESLint Rule Applied To Create-React-App
Look at how you can create your first ESLint rule and apply it to a working application
-
Prompting New App Versions With The Service Worker And Create-React-App
Look at how we can work around one of the Service Worker's biggest misunderstanding
-
Creating and using AWS Secrets from the CDK and CLI
A quick overview of adding/retrieving secrets for AWS
-
10 Time Management Tips for the Developer Who Wants It All Now
Tips and tricks for how you can become the developer you've always wanted to be
-
Error Tracing with ES6 Classes and Sentry
Extend the Error prototype with ES6 classes to capture errors and send them to Sentry
-
Build Your Own Heat Map with D3
A quick look at building a heat map in D3
-
Unix Redirection In C
Explore how redirection works in C
-
How To Use Your Tailwind Theme Anywhere Throughout Your React App
Use the React Context API with Tailwind's theme generator to access the values anywhere throughout the application
-
Getting Started With React + TypeScript + Tailwind + Classnames In Minutes
Get up and running with Tailwind faster than your bread takes to toast
-
How To Use NPM ES Modules With Deno
Discover how the Skypack CDN can help use your favourite modules with Deno
-
Lessons From My One-Month Writing Milestone
Some learnings and reflections after hitting a month of sharing
-
O(1) Reloading With Create React App
Upgrade a CRA template to start making use of Snowpack
-
What the flip are Unix Named Pipes?
A look at named pipes and how we can interact with them in Golang
-
Speedy diagram mocks with RoughJS and Puppeteer
An evening project to speed up small, rough diagrams from the command line
-
BYO Form Builder with Deno, React and JSON
See how we can auto-generate fully validated forms using React, Snowpack, YAML and a bit of grit
-
4 Easy Steps To Building Your First Twitter Bot With JavaScript
Tired of Twitter negativity? Avoid it all by posting from the safety of the command line!
-
Docker + GitHub Actions = Your Next Productivity Superpower
Run through the basics to get your first Docker GitHub Action up and running
-
The World's Most Gentle Introduction Into Functional Programming
Understanding core functional programming concepts by implementing "pipe" and "compose" - two of the most common utility functions in JavaScript
-
Going Back Into Lockdown
This year has been... strange.
-
7 CSS Tips To Save Your Sanity
CSS is hard. In fact, I preach day in and day out that it one of the more difficult concepts to grasp effectively. Here are 7 tips to help you scale and manage CSS and its alternatives.
-
Deploying Serverless Golang APIs With The AWS CDK
This tutorial covers setting up a project, writing a Go Lambda server using Gin, and deploying it with AWS CDK, providing detailed code examples and instructions.
-
The 9-Step Plan To Becoming Dangerous In Any Language
Learn the lessons that I had to find out the hard way when it came to learning languages over and over and over...
-
Your First Github npm Package in 5 Minutes
A short example of setting up your first npm GitHub package
-
The ABCs of Pipenv and Python Package Management
An entry-level look at how to setup determinstic Python environments using Pipenv
-
Dipping Your Feet Into Golang Servers With Fiber
In this entry into Fiber, we will cover installation of Fiber, as well as the basics of GET + POST requests, handling errors and returning JSON.
-
Up and running with Factory Bot in Rails 5
A short morning run over setting up the factory_bot_rails gem with RSpec
-
Build a CLI Puppeteer tool to screenshot all the things!
In this example, we will screenshot vaild HTML with Puppeteer
-
Build your own code generator in JavaScript
Follow along as we do the bare minimum to start generating files using EJS from the command line
-
5 Resources to Level Up Your Design System
Improve your Design System with these websites that work as together as a foundation into your next UI iteration
-
Creating your first Stripe Charge with Dotnet + C# in 5 minutes
Follow along in this short Stripe series as we take a look at making a Stripe charge in a few different languages!
-
Creating your first Stripe Charge with Python + Flask in 5 minutes
Follow along in this short Stripe series as we take a look at making a Stripe charge in a few different languages!
-
Creating your first Stripe Charge with Gin + Golang in 5 minutes
Follow along in this short Stripe series as we take a look at making a Stripe charge in a few different languages!
-
Creating your first Stripe Charge with Slim + PHP in 5 minutes
Follow along in this short Stripe series as we take a look at making a Stripe charge in a few different languages!
-
Creating your first Stripe Charge with Java + Spring in 5 minutes
Follow along in this short Stripe series as we take a look at making a Stripe charge in a few different languages!
-
Creating your first Stripe Charge with Ruby on Rails in 5 minutes
Follow along in this short Stripe series as we take a look at making a Stripe charge in a few different languages!
-
The ABCs of Rate Limiting ExpressJS Servers with Docker + Redis
Follow along as we go start to finish in setting up rate limiting on an ExpressJS server and show how to enforce it across multiple servers
-
Seven things to start saying RIGHT NOW to become a Tech Lead
Satirical Tech Lead Fridays
-
Authentication with Next Auth
Use Next Auth to login into a Next.js application using GitHub Credentials, and store them in a local MySQL Docker container
-
Building an Alfred extension for my developer notes
How I built a local Alfred extension to quickly jump to the web page online
-
Dead code elimination with the Babel AST Parser
Using the Babel AST Parser to help find unused JS/TS/Less/SCSS files in the code base
-
Bundling TS React Electron Apps with Parcel
Get up and going with Electron by using Parcel to handle the bundling, TypeScript for type checking, React for the UI and the Electron dialog API to help read/write files
-
Using the AWS CDK to send a serverless Slack message
Follow along to send a simple message to Slack by using the AWS SDK to trigger a JavaScript Lambda function on a timed cron job that has NPM dependencies required.
-
Scraping websites with Xray
Use Nodejs and Xray to scrape the blog website
-
Running complex applications with Tmux and Tmuxinator
Use tmuxinator to setup projects that require complex setups
-
Programatically create or update GitHub files
Use Node.js and Octokit to programatically create a markdown file in a GitHub repo
-
Algebra Properties
A short look at some important algebra properties and their formulas
-
Converting a rails routes output into a Postman Collection
Follow as I use functional Ruby programming to generate an OpenAPI v3 yml file from information given from rails routes and import it into Postman
-
Converting the blog to its own subdomain
Challenges and process to get the blog converted over to Gatsby + Netlify CMS
-
Network Addressing
An overview of network addressing and how to understand concepts like network masking.
-
OSI Layers
A quick overview on the seven layers of the Open System Interconnection (OSI) model.
-
Write Ahead Log
A quick overview on the seven layers of the Open System Interconnection (OSI) model.
-
Scala Data Types
A short look at the data types available when using Scala.
-
Web Fetch API
Looking at usage of the web "fetch" API. This example uses the node-fetch library for demonstration purposes.
-
Auxiliary And Space Complexity
Looking at usage of the web "fetch" API. This example uses the node-fetch library for demonstration purposes.
-
Hello Java Streams
A short look at how to sum an integer list and manipulate a string list using Java 8 streams.
-
Kafka Basic Terms
A look into the common terms and their definitions when using Apache Kafka.
-
Intro To Elasticsearch
A look at ElasticSearch and setting up a multi-node cluster using Docker compose and create a JavaScript client for insertions.
-
Intro To Cassandra
A small intro into how you can get started with Cassandra using Docker and basic syntax.
-
Autocomplete With RxJS
A quick look at how RxJS implements an autocomplete subscription.
-
Basics On Programming Paradigms
A quick overview of a number of programming paradigms and what are some key defining features.
-
Logistic Regression Basics
A quick and dirty intro into the applications of numpy, pandas, sklearn and matplotlib to apply basic logistic regression.
-
D3 Scale
Looking at how we can normalise data using the d3-scale library.
-
Reselect Quick And Dirty
The tl;dr reminder of how Reselect works for Redux state memoization.
-
Moving To Melbourne
tl;dr Syd => Melb.
-
Go Binary Search Trees
Go implementation of a Binary Search Tree.
-
Process Description And Control
A deeper look into processes under the hood.
-
D3 Word Cloud with Create React App
Creating a D3 word cloud from a base Create React App project.
-
Queues with Kue.js, Node.js and Redis
Creating queues to schedule workers using Kue.js, Node.js and Redis
-
EKS Basics
An introduction to what EKS is.
-
Redux Persist With React Native
Adding Redux Persist to React Native for data persistence.
-
Python Anagrams
Python implementation of comparing two strings to check if they are anagrams.
-
Intro To Helm
An introduction into managing packages on Kubernetes with Helm.
-
Thread Basics
A look into how threads operate.
-
B Tree Basics
A short look into B-Tree structures, what defines them and some technologies that use them.
-
Istio With EKS
A basic look at how to add Istio to your EKS cluster.
-
React Hook Basics
An introduction to React Hooks.
-
Rust Fizzbuzz
The classic FizzBuzz implementation in Rust with Unit Testing.
-
Ruby Trees
Ruby implementation of a basic node tree and traversal using DFS and BFS.
-
Running Detox With Expo
How to setup Detox to run e2e tests for an Expo application.
-
PHP Binary Search Trees
PHP implementation of a Binary Search Tree.
-
Trees in Golang
Golang implementation of a basic node tree and traversal using DFS and BFS.
-
Java Linked List
Java implementation of a basic unidirectional Linked List.
-
Ruby Binary Search Trees
Ruby implementation of a Binary Search Tree.
-
Anagrams in JavaScript
JavaScript implementation of comparing two strings to check if they are anagrams.
-
Go Linked List
Go implementation of a basic unidirectional Linked List.
-
Python Binary Search Trees
Python implementation of a Binary Search Tree.
-
Spiral Matrices in JavaScript
JavaScript Spiral Matrices with unit testing.
-
MySQL Development With Docker
Setting up a MySQL container for local development.
-
Redis CLI Basics
Basic usage and command calls for Redis from the command line.
-
Python Trees
Python implementation of a basic node tree and traversal using DFS and BFS.
-
Install Redis With Helm
A basic intro to using the Redis chart and installing it with Helm.
-
EKS Pulling From Docker Hub
Adding credentials to be used for EKS when pulling images from Docker Hub.
-
PHP Anonymous Functions
Basic intro to anonymous functions with PHP.
-
Overview of eksctl
Basic instructions on how to use EKSCTL on the command line.
-
Basic Slices with Golang
Basic applications of slices.
-
Ruby Constructors
How to build instances with Ruby.
-
Python Exceptions
Basic error handling with exceptions in Python.
-
PHP Constructors
Building instances with PHP classes.
-
Java Spiral Matrix
Java Spiral Matrices with unit testing.
-
PHP Unit Testing
Basic unit testing for PHP.
-
Java Lambda Functions
How to create basic lambda functions in Java requiring interfaces.
-
Docker application with Nginx and Nodejs
Linking two Docker containers to run a Nodejs app behind a NGINX reverse proxy.
-
Ruby Lambda Functions
A quick look at Ruby Lambda and Proc functions.
-
Go Basic Strings
Basic string manipulation in Golang using the strings package.
-
PHP Array Method Applications
Basic push, pop, shift and unshift applications for PHP.
-
PHP Linked List
PHP implementation of a basic unidirectional Linked List.
-
Java Maps
Basic implementation of maps in Java.
-
Java Initialising Arrays
Using the arrays and array list utility packages in Java.
-
Javascript Logging Conventions
See what I do when it comes to JavaScript logging for web.
-
Braintree with Nodejs and React
Create a basic payment with Braintree using React and Nodejs!
-
Hello Gin
Simple basics on a GET and POST request for Gin in Go.
-
React Portal Basics
An introduction to React Portals.
-
Diagrams With Mermaid
Checkout how to create dynamic diagrams using mermaid!
-
Go Spiral Matrix
Golang Spiral Matrices with unit testing.
-
Ruby Error Handling
Examples on how to handle errors in Ruby.
-
Expo Amplify
Example of adding in Amplify
-
Intro To Myrocks
Short introduction and link to the MyRocks engine.
-
Java Anagrams
Solution in Java.
-
Java Trees
Solution in Java
-
JavaScript Naming Conventions
Suggestions and guides for naming in JavaScript.
-
LSM Tree Basics
Resources for log-structured merge trees.
-
Principles
A look at current base principles.
-
Contrast Colors
A small intro into auto-determining WCAG color contrast standards
-
Hello Shave
What do you do when your content becomes super long?
-
Yargs Parser
Say hello to an easy way to parse CLI args and options with yargs parser.
-
Ruby Linked List
Ruby implementation of a basic unidirectional Linked List.
-
Depth Sharp Cli
Use the incredible Sharp package for Node and build a simple CLI image compression tool.
-
Go Fizzbuzz
The classic FizzBuzz implementation in Golang with Unit Testing.
-
Debouncing events in React
See example code on how to debounce trailing and leading events.
-
React Context Basics
An introduction to React Context.
-
React Dynamic Imports
See example code for dynamically importing a React Component.
-
Python Spiral Matrix
Python Spiral Matrices with unit testing.
-
PHP Trees
PHP implementation of a basic node tree and traversal using DFS and BFS.
-
Python Linked List
Python implementation of a basic unidirectional Linked List.
-
Ruby Anagrams
Ruby implementation of comparing two strings to check if they are anagrams.
-
PHP Anagrams
PHP implementation of comparing two strings to check if they are anagrams.
-
Kubernetes Healthchecks
An example of a simple health check for Kubernetes.
-
Ruby Fizzbuzz
The classic FizzBuzz implementation in Ruby with Unit Testing.
-
PHP Spiral Matrix
PHP Spiral Matrices with unit testing.
-
Python Fizzbuzz
The classic FizzBuzz implementation in Python with Unit Testing.
-
Ruby Spiral Matrix
Ruby Spiral Matrices with unit testing.
-
Expo Facebook Login
How to use the Expo API to log into Facebook and authenticate on AWS Amplify.
-
Java Fizzbuzz
The classic FizzBuzz implementation in Java with Unit Testing.
-
JavaScript FizzBuzz
The classic FizzBuzz implementation in JavaScript with Unit Testing.
-
PHP Fizzbuzz
The classic FizzBuzz implementation in PHP with Unit Testing.
-
Hello, Blog!
Blog initiation and hazing. Read my primary objectives with this blog and the series I will write about.