Image for post
Image for post

What we’ll create

Here’s a video of the finished product.

Basic, but demonstrates some cool stuff. You’ve got the parallax scrolling effect, along with some bonuses like the floating cards.

Note: All the images used in this tutorial can be found at the end of the article.

Steps in this tutorial

Before we begin

Make sure you have a basic react app created with the styled components library installed. The easiest way to do this is to open a terminal and run:

npx create-react-app parallax

Then navigate into the…


Image for post
Image for post
Photo by Sarah Dorweiler on Unsplash

Cutting corners to meet development deadlines is common. But it will always come back to bite you. At some point, someone will come across what you have done and have to negotiate their way around it. They might spend two hours trying to decipher the logic, or, more commonly, they might just build on top and leave someone else to deal with it.

This is how projects die. Not through intentional sabotage or consistent abuse, but the evolution of a few shortcuts.

Don’t expect deadlines to change, no matter how unreasonable they are. Stakeholders don’t care about you. …


Learn how to avoid ‘page not found’ errors when using client-side-routing and hot reload

Image for post
Image for post
Photo by Oliver Roos on Unsplash

This tutorial is for anyone who creates single-page-apps and wants to know how to configure routing properly on the server side. It will use Svelte as the framework, but the techniques here will work for any app using client side routing.

The Problem

Client-side routing solutions like svelte-routing work great, but they will break if you try to refresh your page when using them, and this means that it’s impossible to use hot reloading. This is because all routing logic is performed on the client, and when you initially load a page, say localhost:5000/home, the client code isn’t yet loaded…


Image for post
Image for post

I am not intelligent. That’s not false modesty or attention seeking. It’s just a fact I learned recently.

I love to argue. I love arguing with friends, I love arguing with strangers, I could probably have an argument with a dog for at least five minutes. But no matter how much I do it, I never seem to convince anyone of anything, even when it feels like I’m winning.

I figured that being intelligent meant having the ability to convince other people that your beliefs are right, and because I was failing at that, I just wasn’t smart. But I’m…


Image for post
Image for post
Photo by Anne Nygård on Unsplash

This is the 3rd article in my ‘Golang Fantasy Hunting App’ series. It’s recommended that you start with the first post, here.

At the end of the previous article, we had managed to develop a working integration between our save-and-update lambda and dynamo. The last step is using AWS API Gateway to proxy HTTP requests through to the lambda, so that we can use it as a web service.

We need to do five things for this to work:


Image for post
Image for post
Photo by Anne Nygård on Unsplash

The first part of this article series can be found here. I’d recommend you start there to get the full context. However, if you just want to understand how to make a golang lambda talk to dynamodb, then you can clone the starter code for this project from here (you will need to deploy it to AWS).

So, we have written a basic lambda and deployed it to AWS. The next piece of the puzzle is hooking it up to DynamoDB so we can save new monsters to the log and update existing ones.

We’ll need to do the following…


Hunt monsters and learn Go

Image for post
Image for post
Photo by Anne Nygård on Unsplash

Sometimes I get this weird urge not to self-flagellate. When that happens, I stop fucking around with Java, Javascript or Python and I turn to Go. Go is fast, light-weight and statically typed. Its package management system is a dream. You can get started with Go in about three seconds, which is 2 million times faster than the time it takes to work out what Microsoft was thinking when they created Typescript.

This is the first in a series of articles where we’ll write and deploy an entire backend using Golang, DynamoDB, AWS Lambda and API Gateway. My intent is…


Image for post
Image for post

Who is this for?

This is for already experienced developers who want to expand their web dev toolkit, and I especially think it will be useful for the following people:

If any of these apply to you, keep reading. Perhaps you end up disagreeing with everything I’ve just said, and that’s fine (I never liked you anyway), but worst case scenario…


Image for post
Image for post
Photo by Ferenc Almasi on Unsplash

The fruit bowl of frontend frameworks is full and React is the fat melon taking up all the space. Do we really need another technology to learn? Rich Harris of the New York Times says yes, and SvelteJS is his offering.

As an engineer, it’s important to explore different technologies. It’s important to identify the tools available to tackle problems. And it’s important to expand your horizons because then you can look cool on your CV.

I won’t be coy. I think Svelte is incredible. But I also love React, and it’s what I use every day at work. It’s…


Image for post
Image for post
Photo by Thought Catalog on Unsplash

My dream is to be a writer, but it isn’t really economical. Luckily I discovered a vague interest in programming during my youth and nurtured it to the point where I could enjoy doing it for a living. And over time I realised that these two disciplines share many surprising parallels. By recognising these similarities, I was able to transfer the skills I learned doing one to the other. I want to explore that here by looking at some rules which apply to both activities, and how following them might foster improvement in each.

Simple is always better

I love…

Lee McGowan

I write about programming, and I write about writing. I also might write about philosophy, if I ever get ‘round to engaging my tiny brain.

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