Over the past few years, I've been spending more and more time speaking at conferences and tech events in different countries.
I'm currently focusing on improving this skill to become a stronger speaker.
These are the talks i've given in the past:
Disk is fast, memory is slow. Forget all you think you know
Rubyconf 2019 (Nashville, TN), RubyFuza 2020 (Cape Town, ZA), Rubyconf Belarus 2020 (online)
Adding metrics to your code should effectively have no impact on performance.
When we were recently tasked with doing that in multi-process Ruby servers, we ran into an interesting challenge: could we aggregate our numbers across processes without blowing our target of just one microsecond of overhead?
The months of work that followed had us looking into C extensions, segfault dumps, memory maps, syscall timings, and pretty much everything we could think of to try and achieve our objective.
In the process, we found some very counter-intuitive performance results that I'd like to share with you.
What the fork‽ Reporting metrics in a multi-process environment
Promcon EU 2019 (Munich), Promcon NA 2020 (online)
For many years, most Ruby applications couldn't use Prometheus, because the Ruby client didn't support pre-fork servers.
It turns out this wasn't solved for such a long time because it's a surprisingly hard problem.
Many have tried to solve this with different approaches, but we found the best one to be the simplest.
Let me show you the dark arts of inter-process communication, and how we ended up fully supporting metrics in Ruby.
The full power of Redis
London Dev Community, London Ruby User Group, 2016
The vast majority of projects use Redis like it's Memcached, but Redis can give so much more.
In this talk I give practical examples of use cases where Redis outshines everything else I've tried.