I’m not the kind of person who keeps track of my work achievements, biggest challenges, and so forth.
I have a very bad memory (for that and in general :P) so sometimes is hard for me to easily reach into my mind and construct a story when being asked by a fellow dev or recruiter so, what you have been doing so far?
Thus I have decided to collect some, um, personal stories? A memoir so to speak. This is part one of hopefully more - so I can reflect on those achievements, small victories, and learnings later down the road.
Migrate resque to sidekiq -> 200 processes down to 20 for fun and profit
I was (quite) a young and eager developer (with a lot of freedom, which is quite unusual nowadays I suppose) and I spent some overtime to migrate a part of the platform - today you would call it a service or a microservice - that was based on resque to sidekiq. It was a ruby app that did some business-related work and communicated via redis and http with another part of the platform.
Resque as you might know is based on processes - so one process executes one job. Now imagine how long it takes to restart over 200 processes during deployment. The answer is too long.
As those processes were doing mostly I/O work it would make sense to rewrite it to Sidekiq - even when using MRI. Once we started using sidekiq we have never looked back - I even made an open-source contribution to sidekiq back in those days only to a few years later do chip-in some contributions to its Crystal version.
It was interesting learning experience in terms of what to look for when working in concurrent environment, what is actually shared between threads and how you can mix concurrency with parallelism.
Nowadays sidekiq is my go-to tool in Ruby world, backend by redis (my other go-to service that can solve a ton of different problems) is just so easy to plug in and manage. I suppose I will love sidekiq forever. Thank you Mike Perham!