about
Although 2020 was the year that remote working was forced upon many, I've been enjoying the flexibility of home working for a number of years. Here's my current home office setup.
It's 2020. You want to build a node.js app, and you've heard great things about TypeScript. Let this post act as your guide through the forest of compilers and specifications as you navigate to the promised land: a strongly-typed node.js codebase.
It's that time of the year when I take the time to look back on how my business has performed.
I've recently found myself becoming more dependant on TypeScript for type safety and autocompletion, and Prettier to format my code consistently. In this post I'll discuss how to set up prettier to work with a TypeScript codebase in VSCode.
Writing code snippets in Hugo is simple and elegant, using a combination of markdown code fences and Hugo's support for syntax highlighting. Recently I've been looking to add a button to automatically copy a code snippet to the clipboard, and I've documented my solution in this post.
Hugo makes it really easy to add syntax highlighting to your code snippets. In this post I'll discuss how to enable this feature, and how to configure Netlify to build your site with nicely highlighted code.
My financial year ends today, and so I thought I'd take a moment to review the company's progress over the past year.
I've recently decided to take the plunge and migrate my site to Hugo.
This is the second part of a guide to installing the Cordova framework, and deals with installation on Windows 10.
Cordova is a popular framework for building hybrid mobile applications. This post provides a complete guide on how to install it on a Mac running OS X or macOS, so you can deploy a Cordova-based app to your iOS or Android device.
Running a node.js app in a low-memory environment requires some additional work to ensure that the v8 garbage collector is aware of the memory ceiling. This post outlines an approach to achieve this.
This post explores how a simple message queue can be built to support delayed messages, using Redis.
So, you've created a super-awesome npm module, and you want to share it with the world. How do you create a demo page?
A workflow for using Docker to separate your development environment for each project.
In this article, I'm going to show you how you can replicate npm private hosting using GitHub or Bitbucket, and access these modules from your deployment server and/or Heroku.
Is working full-time in a permanent job becoming a drag? Have you thought about freelancing instead? There's no time like the present.
A 'short' or 'hash' ID is a seemingly random sets of characters, popularised by services which need unique but readable (and typeable) URLs.
Over the past few days I have had the pleasure of standing up and talking about RESTful APIs.
I've recently been working on a web app from the ground up. Bootstrap 3 was a good choice to get started - it is super easy to get a site up and running without having to worry too much about styling. In essence, it allowed me to build out some of the requirements with a wireframe-y front-end.
It's important in this era of web application development to have a strong toolset at your disposal. Growing complexity with 'fat' client apps can lead to a maintenance nightmare if not properly planned and thought out.
Some thoughts on validating data according to a Mongoose Schema.
I've been learning about MongoDB recently, and here are a few thoughts on my findings.
The last week has been an intense period of training. I've taken up the offer of a project to be built using AngularJS, and so my head has been down in tutorials, books and online docs. Here are some of the resources I found useful.
During my time at Mubaloo I was a vocal supporter of Backbone.js. But recently there has been lots of noise around AngularJS.
While I was away, I had a lot of time to think about the future. The past 8 years building web apps have been a lot of fun - challenging, sure, but fun too. Rather quickly, I came to the conclusion that I wanted to return to doing the job I love.