Search all Pusher content

Will Sewell (Plafform Engineer at Pusher)

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.

12 posts from Will Sewell
blog

Memory profiling in Haskell

At Pusher we are currently writing a high performance system in Haskell and blogging about it along the way. In our firs...

Engineering
Read blog post
blog

HackDays: Connect Pusher, Slack, Spotify and Sonos for office audio

One of the things that makes working at Pusher great is our appetite for building. We’ve created various internal tools,...

ruby
Editorial
Engineering
Read blog post
blog

Fuzz testing distributed systems with QuickCheck

Here at Pusher we’re always trying new approaches to web development and engineering to uncover ways of making our softw...

Engineering
Read blog post
blog

Making Efficient use of memory in Haskell

A summary of various techniques to make efficient use of memory in Haskell....

Engineering
Read blog post
blog

Golang Realtime GC in Theory and Practice

How the Golang concurrent GC achieves low latencies in real-time systems: a visualization of the algorithm and an empiri...

benchmark
benchmarking
go
...
Read blog post
blog

Counting connections at scale

Building connection counting in a scaleable way is tricky. Find out how we fixed a meandering solution by leveraging our...

channels
experimental features
websockets
...
Read blog post
blog

How Pusher unified the product dashboards (and why we had two in the first place)

Lessons learned by the Pusher engineering team while unifying our systems using React, Express and Go to give customers ...

beams
channels
express
...
Read blog post
blog

Top tips and tools for optimising Haskell

(This blog post discusses CPU time profiling, but not space (memory) profiling. We’ll come back to that in a Part 2.) We...

Engineering
Read blog post
blog

BattleHack Toronto

A whirlwind of impressive hacks, great food, friendly people, a frighteningly tall CN tower, and beer at the BattleHack ...

battlehack
events
hackathon
...
Read blog post
blog

Unit testing IO in Haskell

The generally side-effect free nature of Haskell code makes it convenient to test. Haskell programs can interact with th...

Engineering
Read blog post
blog

Porting the Pusher integration tests to Haskell

Those of you who use Pusher will know that the APIs we expose are small and straightforward to use. But this hides the c...

Engineering
Read blog post
blog

3 Approaches to Monadic API Design in Haskell

Designing a good API for a library is a challenging problem. In Haskell getting the mix right between specialised and ge...

Engineering
Read blog post