Tom Spencer

About Projects Blog
Follow Tom on LinkedIn Follow Tom on Twitter Go to Tom's GitHub profile
  • Hi, Shopify

    Sep 19, 2024

    After 10 years contracting, I've taken a full-time permanent role with Shopify. Here, I explain why.

  • Evolution over revolution

    Mar 20, 2024

    Evolution over revolution is a concept that I've recently embraced. The premise is simple: instead of changing a lot (revolution), change a little (evolution).

  • Thoughts on Expo

    Dec 31, 2023

    After using Expo for the latter part of 2023, my impression of the project has changed for the better.

  • Date-based URLs with Astro

    Dec 5, 2023

    Astro does not provide an out-of-the-box configuration for a date-based URL hierarchy, but with a few small tweaks, this can be achieved.

  • Lift off with Astro

    Nov 30, 2023

    Every few years, I like to evaluate the tech stack that powers this blog. I've decided to migrate to Astro, which aligns better with my JavaScript expertise.

  • My Home Office

    Feb 27, 2021

    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: let's build a node.js app with TypeScript

    May 22, 2020

    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.

  • End of Year Review 2018-19

    May 4, 2019

    It's that time of the year when I take the time to look back on how my business has performed.

  • VSCode + TypeScript + Prettier = Happy Developer

    Dec 7, 2018

    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.

  • Boaty: Generating an app icon

    Oct 26, 2018

    In this post, we're going to discuss the generation of iOS and Android app icons for a React Native project.

  • Boaty: Changing the status bar

    Oct 24, 2018

    iOS and Android devices both contain a status bar, which sits at the top of the screen giving information on the current time, WiFi/cellular strength, etc. In this post, we're going to discuss how to modify the status bar to improve the look and feel of our Boaty app.

  • Boaty: Building the app

    Oct 22, 2018

    In this post, we'll build the Boaty app using the React Native framework.

  • Boaty: Setting up your development environment

    Oct 16, 2018

    In the second of a series of posts, we'll learn how to set up your development environment to build a React Native app.

  • Boaty: Scaffolding a new React Native app

    Oct 14, 2018

    React Native is a framework for building native iOS and Android apps using JavaScript. This is the first in a series of posts aimed at building a React Native app from the ground up.

  • Adding click-to-copy buttons to a Hugo powered blog

    Sep 14, 2018

    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.

  • Deploying a Hugo-powered site to Netlify with source code syntax highlighting

    Aug 3, 2018

    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.

  • End of Year Review 2017-18

    Mar 31, 2018

    My financial year ends today, and so I thought I'd take a moment to review the company's progress over the past year.

  • Migrating to Hugo

    Mar 23, 2018

    I've recently decided to take the plunge and migrate my site to Hugo.

  • A guide to installing Cordova on Windows 10

    May 30, 2017

    This is the second part of a guide to installing the Cordova framework, and deals with installation on Windows 10.

  • A guide to installing Cordova on your Mac

    May 29, 2017

    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

    Oct 1, 2016

    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.

  • Building a simple message queue with Redis

    Feb 24, 2016

    This post explores how a simple message queue can be built to support delayed messages, using Redis.

  • Creating a demo page for your npm module

    Dec 17, 2015

    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?

  • Setting up a Docker-based MEAN development environment

    Jul 25, 2015

    A workflow for using Docker to separate your development environment for each project.

  • An Alternative to npm Private Modules

    May 20, 2015

    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.

  • Freelancing: Taking the Plunge

    Jan 24, 2015

    Is working full-time in a permanent job becoming a drag? Have you thought about freelancing instead? There's no time like the present.

  • Short ID Generation in JavaScript

    Nov 16, 2014

    A 'short' or 'hash' ID is a seemingly random sets of characters, popularised by services which need unique but readable (and typeable) URLs.

  • No REST for the whippet

    Sep 16, 2014

    Over the past few days I have had the pleasure of standing up and talking about RESTful APIs.

  • Pattern Libraries

    Jul 8, 2014

    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.

  • Angular Boilerplate

    May 15, 2014

    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.

  • Mongoose Validations

    Apr 23, 2014

    Some thoughts on validating data according to a Mongoose Schema.

  • Using Mongoose

    Apr 21, 2014

    I've been learning about MongoDB recently, and here are a few thoughts on my findings.

  • Learning Angular

    Apr 7, 2014

    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.

  • Becoming Angular

    Mar 31, 2014

    During my time at Mubaloo I was a vocal supporter of Backbone.js. But recently there has been lots of noise around AngularJS.

  • Self Employment

    Mar 25, 2014

    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.

  • A New Beginning

    Mar 18, 2014

© 2024 Tom Spencer. All rights reserved.
Follow Tom on LinkedIn Follow Tom on Twitter Go to Tom's GitHub profile