Jonathon Sherrard

WOW, how to be as colorful as this website? Long-time coder, long-time hobby-musician - new-sh runner...  
Read more


Sep 18, 2021
Sep 18, 2021
Architect Scalable Infrastructure
Talked about web performance
It took a couple of days but, I have reduced page load of an interactive mapping page from 3.1 megabytes to 50kb.


1. Large and complex SVG data was being included on every page load. I've deferred it entirely until the map is about to be in view, with intersection observer.

2. I've used @mapbox's simplify library to reduce the amount of points that make up each maps's subdivision border.

3. I've found that reducing the the precision of each lat-lng coordinate. works well for compressing a big geoJSON file. No need for 52.123123125 when 52.1231 is fine. Makes a big difference when there are thousands of points drawing points.

4. I pre-process the geoJSON data to delete unnecessary property fields, which also add a lot of data over 1000s of data points.

5. Instead of inlining data using Gatsby's GraphQL fetch, I created a static file written to the public directory, using a Gatsby transformer, and attached the files location to my content node. Sweet. (partially referenced in point 1)


Super snappy interactive maps that download very quickly.
Aug 22, 2021
Aug 22, 2021
Built a feature
I'm working on project with some Geographic-region based statistics. We want to present the data interactively with something like D3.

The first point was generating a digital geo-representation of the subdivisions of the UK. is an awesome API that includes GeoJSON for various subdivisions of the UK.

I used another API and a quick Node script, to parse our CSV data file, fetch the GeoJSON for the parent areas, and finally reconstitute the data into a single TopoJSON file that outlines local education authorities in the UK.

Ready to be fleshed out with education stats and verified that it renders correctly with

Aug 21, 2021
Aug 21, 2021
Deployed a Backend System
Used Netlify functions for the first time today. A client wanted some data pushed to a Google Sheet. 

I used Pulumi to provision a new project and service accounts in a few minutes, and then entered those details into the Netlify project the client site is hosted in.

It was a fricken breeze to then write a single node.js cloud function to accept some POST data and write it into the sheet.

A few tweaks on the client-side to post to the newly deployed function and we're away. Great workflow!
Aug 18, 2021
Aug 18, 2021
Created generative art
Built a UI component library
Studied React
+ 1
Today I wrote some wrapping code to create responsive Processing (p5.js) canvases in React Applications.

I've been doing a lot of work in data visualisation this year and there's a fair amount of boilerplate required to get interactive "sketches" rendering properly inside a React.js application.

Anyway, I've got a nice little library setup up now, and I've been testing it by playing around with some generative art. Processing was the first language I ever wrote with (apart from Basic when I was a kid), way back in... 2008?

Aug 13, 2021
Aug 13, 2021
Brainstormed product ideas
Ahoy there, just thinking about business profiles, self-marketing and getting yourself out there.

I can barely maintain my own notes or write e-mails on time. (ADHD, dyslexic), and tend to work like a lion - so when I'm "thinking about work", I'm doing work; and if I'm not, well - I'm not inclined to post on a work-related site.

Anyway, today I'm working, procrastinating for a moment here before a Zoom call in 15 minutes - knowing this might be my last post on Polywork. (I think I only ever made 3 posts on LinkedIn).

Could there be integrations for people who can't/won't/don't need to spend much time on their business profiles?

As a developer, integrations with my ecosystem would be nice - imagine an automated post something like this: (with more icons and maybe a graph)

Jon's weekly update:

Github: Jon created 5 new repos, made 232 commits
VSCode: 44 hours 70% .js files, 25 % typescript files, 5% shell files

💬 Slack: 5 hours
👨🏼‍💻 Zoom 4 hours
⌨️ Hyper Terminal 9 hours

💸 Freeagent / Stripe

- 2 New Invoices 
- Revenue up 3%
- ARR up 

📰Posted once on - 48 ♥️s
🐦Tweeted 5 times @mytwitteraccount - [this one] got over 100 likes

Might be a nice way to show a bit about what I do... without me having to check in? Or is that just spam? Now I've written it all out, could just be irritating, but on the other hand, I do enjoy snooping developer's github activity and commit frequency.


Mar 01, 2019
Mar 01, 2019
Started a new role at Devular Ltd
Excited to join Devular Ltd as Director! 🎉
Director, Devular Ltd
Get your own page like this