Will is a platform engineer at Pusher. He enjoys tackling problems associated with large scale high-throughput systems. He is a geek for new trends and technologies, but remains a pragmatist when it comes to production systems! Outside of work Will enjoys mountain biking, music, travel, and, as a new London resident, exploring what this awesome city has to offer.
The generally side-effect free nature of Haskell code makes it convenient to test. Haskell programs can interact with th...
Here at Pusher we’re always trying new approaches to web development and engineering to uncover ways of making our softw...
Those of you who use Pusher will know that the APIs we expose are small and straightforward to use. But this hides the c...
Designing a good API for a library is a challenging problem. In Haskell getting the mix right between specialised and ge...
Lessons learned by the Pusher engineering team while unifying our systems using React, Express and Go to give customers ...
One of the things that makes working at Pusher great is our appetite for building. We’ve created various internal tools,...
(This blog post discusses CPU time profiling, but not space (memory) profiling. We’ll come back to that in a Part 2.) We...
A summary of various techniques to make efficient use of memory in Haskell....
How the Golang concurrent GC achieves low latencies in real-time systems: a visualization of the algorithm and an empiri...
Building connection counting in a scaleable way is tricky. Find out how we fixed a meandering solution by leveraging our...
A whirlwind of impressive hacks, great food, friendly people, a frighteningly tall CN tower, and beer at the BattleHack ...
At Pusher we are currently writing a high performance system in Haskell and blogging about it along the way. In our firs...