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 monthly retainer and bespoke projects.

Book a Call

Tech

A collection of 16 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
Linode corrupted our server and how I got it back up

Linode corrupted our server and how I got it back up

A few days ago, the server running Nomad List [https://nomadlist.com] and Remote OK [https://remoteok.io] randomly went down. This is the timeline of what happened and how I fixed it. All times are in  Korean Standard Time. 21:05 Pieter [https://twitter.com/levelsio] starts messaging me

4 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