Sign in

Front End Tech Lead, you can find me on github @thomasparsons

I’ve been working on an application built on the Gatsby framework for a little over a year now, and have had an excellent time doing so. There have been a number of problems (mostly solvable), and a boatload of features and plugins that have saved more time than I can imagine. So in general, it was a good year, here are some of the ups and downs…

(Ups & Downs right?) Photo by Kenniku Tolato on Unsplash


I take an approach of “how can this be easier/better” with my engineering, architecture and strategy work, this is the story of how we simplified and improved one of the most tedious parts of Back End (BE) to Front End (FE) relationships, whilst making the whole thing quicker, easier and in general, better. It comes down to one word: Contracts.

GB and France meet at the middle when drilling the Channel Tunnel
GB and France meet at the middle when drilling the Channel Tunnel
GB and France meet in the middle when drilling the Channel Tunnel — I use this photo a lot when explaining this approach

I like the above photo, a lot: it was a phenomenal feat of engineering; two teams drilling under the Channel Tunnel and meeting precisely in the middle. Thankfully software engineering is a little simpler than that.

However, when building Front…


Simply put; specific rules for specific files.

Photo by Avel Chuklanov on Unsplash — (it’s an “over” “ride” get it?)

What you probably do now

Do these look familiar?

/* eslint-disable max-lines */// eslint-disable-next-line no-console

I bet they do, and it’s likely not a…


Today we look at the first step into improving this process…


Photo by Markus Spiske on Unsplash

A couple of notes before we start:

  1. You don’t need to know the absolute underlying fundamentals of javascript to do this, it might help, but it won’t hinder.
  2. AST and typescript aren’t super great friends yet…


Photo by David Torres on Unsplash

However, there is a safer way to do this, and that is by having unique types for every situation, rather than shared types that can be used everywhere. In this article, I’ll explain what’s wrong with this approach as well as a mechanism on how to improve it.

All of the code for this is available here: https://github.com/thomasparsons/graph-apollo-typing

The first approach for generating and using types

One mechanism that is in place…


Building a REST API using Node.js, deploying to Heroku and accessing it from a slash command within Slack.

The scene.

It’s the day before my wife’s birthday, and I realise, that whilst I have purchased her a gift from me, I haven’t purchased her one from our cats; a time-honoured tradition in our house for any gifting occasion.

I am a software engineer, and outside of my love for cats and my wife, I enjoy building applications of all sorts. So I figured I could probably knock some sort of tech together as a fun gift, and as we have a Slack…


I am a Senior Front-End Engineer at Perkbox, working within a large team of FE developers split over 5 projects. Alongside the day-to-day feature building and bug fixing, we are encouraged to try new techniques and practices to increase the quality of our work and our overall working practices.

Previously on this subject: Stateless and Stateful Components

This article assumes you already have at least a basic understanding of React, and ES6 syntax.

Before we were using TypeScript, we used variables such as const KRAMER = “kramer" and exported these from a shareable file, which works fine and multiple developers…


I am a Senior Front-End Engineer at Perkbox, working within a large team of FE developers split over 5 projects. Alongside the day-to-day feature building and bug fixing, we are encouraged to try new techniques and practices to increase the quality of our work and our overall working practices.

This article assumes you already have at least a basic understanding of React, and ES6 syntax.

About six months ago, we adopted Typescript within React Native as a new project was started, and then slowly, with lessons learned, those best practices were applied to our much larger library that had been…

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store