Daniel Lockyer

Daniel Lockyer

Performance and scaling consultant who analyzes the full stack - frontend, backend and infrastructure - to generate more revenue and cut costs for businesses.

Remote • Available for advisory and implementation work.

Book a Call

Tech

A collection of 15 issues

Find the largest unstaged files in Git

I was recently adding a bunch of files to a new Git repo, but I couldn't be sure if I was about to commit a 100MB file. The following bash command should print out a sorted list of unstaged files and their size, so you can check if

Node.js memory flamegraphs

Node.js memory flamegraphs

If you read my blog or follow me on Twitter you may have noticed I'm a huge fan of flamegraphs. I've previously written about how I use them to profile PHP and Node.js applications, and I help maintain rbspy, a Rust profiler for Ruby, which

3 min read

If you are still using PHP 5.6 or 7.0, you need to upgrade

Last October I made Upgrade your PHP [https://upgradeyourphp.com/], a site to let people know that PHP 5.6 and PHP 7.0 were about to reach their End of Life, and would no longer be officially supported. In the time since, I've been helping people upgrade

3 min read

Profiling Node.js applications using flamegraphs

This post is a case study of how I profiled a Node.js application, and how using flamegraphs allowed me to make the boot time of Ghost 20% faster. I remember trying to profile Node.js many years ago and it was much harder than it is now. When researching

4 min read

DigitalOcean Spaces doesn't support HTTP/2

Earlier today I was looking at a couple of sites to see why they were much slower than I expected. I ran them through GTmetrix and saw the following in the waterfall tab. Straightaway I could see that this is the classic pattern produced by trying to load a bunch

2 min read

Flamegraphs for Ruby 2.6

I recently added support for Ruby 2.5.4, 2.5.5 and 2.6.0-2.6.3 to rbspy, the sampling profiler written in Rust. I have replaced the original Flamegraph library by Brendan Gregg with Inferno, a Rust port. I also updated and merged a PR for handling

1 min read

Rewriting stackcollapse-xdebug in Rust

A week or so ago, I saw the inferno [https://github.com/jonhoo/inferno] project mentioned on the Rust subreddit. It was a rewrite of the great FlameGraph [https://github.com/brendangregg/FlameGraph] library into Rust. All of the work was being livestreamed by Jon Gjengset [https://twitter.com/Jonhoo/

2 min read

Red flags in website performance

When a client asks me to take a look at their site, I start off by throwing it into a bunch of services to analyze the performance. One of my favorites is GTmetrix [https://gtmetrix.com] because it has a lot of useful metrics and visualizations. The most useful one

4 min read

Project: Cron Heatmap

Towards the end of last year I made Cron Heatmap [https://cronheatmap.com], a website to visualize your cron jobs and help you find hotspots. The motivation from the project comes from my work over at Nomad List [https://nomadlist.com] and Remote OK [https://remoteok.io]. There are over

2 min read

Hiding your Linode server IP with Cloudflare

Over at Nomad List [https://nomadlist.com] and Remote OK [https://remoteok.io], we recently switched our server IP to protect against DDoS attacks. Whilst the main sites had been on Cloudflare for a couple of months, the server IP was easily findable on Google and we had experienced several

1 min read