I'm Josh Ghent. I make robust apps for the web. I wrangle code at Cappfinity. I act as lead maintainer of ESFiddle and organize LeicesterJS

Improving Koru's API Performance 📅 September 21, 2020 - ☕ 4 min read How we analysed performance pain points and improved them

Writing Useful Error Messages 📅 September 04, 2020 - ☕ 7 min read Error messages are a critical part of your systems user experience. Here's how to craft error messages your users would be happy to see.

Building Awesome Application Health Checks 📅 August 28, 2020 - ☕ 6 min read Creating Application health checks seems simple, but is easy to get wrong. Here's how to create an awesome health check for your Application or API

ATS Resiliency 📅 August 24, 2020 - ☕ 10 min read Forwarding data on to a third party sounds easy but has a lot of potholes you can easily get stuck in.

Rebuilding a Monolith 📅 August 20, 2020 - ☕ 6 min read Why we chose to combine over 3 microservices into one central API

Re-architecting our PDF Generation 📅 July 31, 2020 - ☕ 7 min read How a seemingly simple problem was more challenging than expected

Preserving Links whilst Migrating Domains with S3 📅 July 31, 2020 - ☕ 3 min read How we successfully preserved links across our system whilst migrating domains

Why Backwards Compatibility is Critical 📅 July 03, 2020 - ☕ 9 min read In the 'move fast, and break things' world, backwards compatibility has been cast into the realms of insignificance, but here is why it's so important even now

Sharpening the Saw 📅 June 26, 2020 - ☕ 6 min read Sharpening the saw is Habit 7 in the cringe inducing book entitled “7 Habits of Highly Effective People”. This post isn’t yet another book…

Lightning Fast ZSH Performance 📅 June 19, 2020 - ☕ 6 min read How I took my ZSH load times from 1.5 seconds to 0.19 seconds

Personal Infrastructure 📅 June 16, 2020 - ☕ 5 min read After seeing the amazing posts by both Stephan Wolfram and Jess Frazelle, I wanted to chime in on my “personal infrastructure”. I’ve always…

How to use Private GitHub Packages on TravisCI 📅 March 09, 2020 - ☕ 2 min read How to use private github packages in your TravisCI jobs

How to Create a Pinned Gist Bot in 10 minutes with GitHub Actions 📅 November 14, 2019 - ☕ 6 min read Recently I stumbled upon an awesome page I hadn’t seen before awesome pinned gists. The premise of the list is small apps that run GitHub…

Managing Application Secrets for Terraform across Teams 📅 November 11, 2019 - ☕ 5 min read TL;DR Terraform stack is deployed via Travis using a script (below) Secrets are shared by storing an encrypted tar file in Git The tar is…

Monitoring Git Leaks in Travis 📅 November 08, 2019 - ☕ 2 min read How to use gitleaks in TravisCI to monitor secrets

Signal vs Noise - Staying Up to Date 📅 October 16, 2019 - ☕ 7 min read Technology is so fast paced that to stay up to date, you need to be learning on a daily basis. However, the internet is so awash with vast…

Pentest Aftermath 📅 October 09, 2019 - ☕ 5 min read Recently, Koru had a penetration test done by an independent third party. The actual test took place a little before I had joined but the…

Resiliency 📅 October 08, 2019 - ☕ 9 min read At my previous post at CloudCall, I was responsible for the SMS/IM backend. Whilst it was being developed, we made the classic mistake of…

Gatsby or Bust! 📅 August 29, 2019 - ☕ 4 min read Recently, I moved my website from a static HTML file on GitHub pages (yes actually static) and my blog from Medium. I decided to combine…

A Guide to Leaving Your Job 📅 August 16, 2019 - ☕ 5 min read Recently, I handed my notice in to my previous job at CloudCall after receiving an new offer at Capp&Co. I won’t go into why I chose to…

Lessons from Battling with Elasticsearch 📅 July 05, 2019 - ☕ 6 min read This is a story of changing requirements being impeded by architecture and software. It’s an age-old adage but I thought it was worth…

Using Grafana for Monitoring you NodeJS Apps 📅 March 06, 2019 - ☕ 8 min read Graphs are a great way to monitor your services, and as an added bonus — they look cool. I always looked at companies with giant flat screen…

Why does NTP Exist? 📅 March 05, 2019 - ☕ 6 min read NTP is one of the most essential and complex systems that never gets spoken about. But why? And what even are they? And why do we need them…

Starting with Why as a Software Developer 📅 February 26, 2019 - ☕ 4 min read As you progress as a software developer, you should begin to build an innate sense of when something should be done a certain way, perhaps…

Architecting the Next Generation of Communication 📅 January 23, 2019 - ☕ 7 min read With the shift to mobile and the statistics of the “younger” generation (hi there) not using phone calls as a means of communication, there…

Resiliency By Design 📅 January 19, 2019 - ☕ 5 min read Resiliency by design in your products architecture is a challenging problem that is rarely tested. Building robust platforms are becoming…

How to Run a Successful Tech Meetup — even if you’re forgetful 📅 December 22, 2018 - ☕ 7 min read LeicesterJS is born out of the rise of Javascript now being the de facto programming language for a majority of developers. Additionally, we…

I don’t know what to say… 📅 December 04, 2018 - ☕ 4 min read The issue raised for the event-stream breach. It’s a grizzly flame war that I would not recommend reading I’m a little late to the party…

10 Things I wish I knew before giving my First Tech Talk 📅 November 13, 2018 - ☕ 8 min read Glossophobia or fear of public speaking is cited as being amongst mankind’s top 10 fears. It related to our inherent fear of failure…

Networking at Tech Meetups 📅 August 11, 2018 - ☕ 4 min read Tech meetups and talks are a great way to get to know fellow developers in your locality. But it can be challenging if you are introverted…

Tracking Goals in Todoist 📅 July 27, 2018 - ☕ 5 min read “There is always an app for that” is a phrase I heard repeatedly when I was looking at something to keep tabs on my goals, both short and…

Lessons from Open Source 📅 July 13, 2018 - ☕ 5 min read Contributing to open source is often touted as a great way to be recognized in the software development community, with many heralding their…

The Art of Good Code Review 📅 May 30, 2018 - ☕ 4 min read Code review is a critical part of any software development process. In theory, it is designed to broaden system knowledge amongst the team…

Principles of Performance 📅 May 16, 2018 - ☕ 8 min read On the web, speed is everything. But you knew that right? Rather than throwing percentages and statistics at you about site retention rates…

LinkedIn For Developers 📅 April 19, 2018 - ☕ 6 min read “Oh, not another recruiter!” – my co-worker said, lazily chucking their phone down. “They just spam!”. This is an all too common phrase I…

Solve 90% of Google Pagespeed Insights Issues in 30 Minutes 📅 March 31, 2018 - ☕ 5 min read Performance is a critical factor in site retention rates. Time is money, and there is a laundry list of examples that prove people expect…

📱 Zen iPhone 📅 March 26, 2018 - ☕ 6 min read Ever since the smartphone arrived in our hands, people everywhere have been utterly entranced by them. Spending never more than a moment…

Understanding PHP hatred 📅 March 05, 2018 - ☕ 11 min read It’s an age-old joke to hate on PHP. But why do people dislike it so much? After all, PHP powers 80% of the web (a large majority of that is…

What Tracking My Expenses for a Year Taught Me About Personal Finance 📅 February 26, 2018 - ☕ 5 min read 2017 was the year I tracked my finances. I started doing this because I wanted to remove the mystery of where my money was going. I wasn’t…

Beginners Database Design Primer 📅 February 14, 2018 - ☕ 6 min read Your boss has just got off the phone with a client who wants a bespoke social network site targeting a niche market. And they want you to…

How to Attend Your First Programming Meetup 📅 February 06, 2018 - ☕ 5 min read Attending your first programming meetup can leave you a little apprehensive. I felt the same! So, I thought it may be useful to break down…

Bulletproof Node — Security Best Practises 📅 January 23, 2018 - ☕ 6 min read System breaches are now commonplace. Stories of IoT devices being compromised, entire countries credit history leaking online as well as…

How to Learn a Programming Language in Record Time 📅 June 28, 2017 - ☕ 5 min read Note: This article is aimed primarily at beginners who perhaps know a single language but are looking to start learning another. When…