React.js & JavaScript developer

Carl Topham


Recent articles

Putting the `S` in SOLID JavaScript

February 16, 2021

S - Single-Responsibility Principle (SRP) is the first design principal covered by SOLID principals. SOLID is an Object oriented design principal. It stands for: S - Single-responsiblity Principle O - Open-closed Principle L - Liskov Substitution Principle I - Interface Segregation Principle D - Dependency Inversion Principle The principals were originally created and promoted by Robert…


Getting started with Blender

February 13, 2021

I recently picked up 3d modelling after quite a few years away. I have not used Blender before so learning the basics involved many seaches and skimming videos to fine what I needed. This post is a quick guide to getting started with blender that I have created from my notes. Hopefully it will enable you to get started more quickly than I did! Navigation Firstly if you're on a (mac) laptop…


React and Material UI (MUI)

January 08, 2021

When I first used Material UI, I struggled with a few concepts. I've written this quick overview to help get my head around it, and hopefully guide others to a quicker start. I'm going to make a new project and then create some (horrible) styles! Create the project and add MUI Create a project and install the Material UI package Clean up the initial templates Remove some unused contents (import of…


Strava API activity sync with Axios, React, Redux & Saga - part 2

December 16, 2020

With the auth and state setup from part 1 of "Strava API activity sync with Axios, React, Redux & Saga" we can now progress to getting the activities and displaying them in a table. Overview Now we have tokens we can start to get the data from Strava. The steps we will take cover the following: Adding moment to handle date based checks Create constants for getting activities Create the…


Strava API activity sync with Axios, React, Redux & Saga - part 1

December 13, 2020

Why? I've been using Strava for over 5 years to track my activities, and more recently analyse them too. Towards the end of 2019 I realised that I was getting close to running 1,000km in a year, so I started a basic spreadsheet to track the data so that I could plan my runs accordingly and hit my goal. The spreadsheet was a basic setup that just plotted distance run vs distance I needed to run…


Recent projects

Advanced Strava Stats

Sync your Strava data and analyse it in extra ways than the official app. React, Redux, Saga, Axios & D3.

Chord generator script

Generates note combinations for different keys & chords

React / SVG Piano keyboard with note highlighting

Visual guide to chords and keys

Running training plan generator

Create training plans to become a better runner