Dealing with queue overload

When dealing with queue overload you effectively have two levers: increasing the consumption rate or reducing the production rate. How to increase consumption rate? Add consumers This is about adding boxes/containers. An example is whenever you add Sidekiq workers or Kafka consumers to a consumer group. This is a common resolution because it does not […]

Which metrics to monitor for queues?

Queues are popular building blocks in web applications. They are used to send messages between different systems (e.g. using Kafka or RabbitMQ). They are used to schedule work in background job processing frameworks (e.g. Sidekiq, Resque). They are used by web app servers (e.g. Unicorn) to briefly stage requests during overload. They are the backbone […]

Selling boards

I love board sports. Once I got the hang of the glide I couldn’t let it go. Buying boards is so hard though. Specially when you are a beginner. So many brands, so many shapes, so many camber profiles, so many riding styles. I think the majority of the time when selling/marketing boards should be […]

Some thoughts on learning

I spend a fair amount of my time learning about things. Lately, I’ve been observing myself learning and trying to distill what works, what doesn’t. So, this is a list of some recurrent thoughts, beliefs, approaches on learning I have. Learning new things is hard. I think it is specially hard because as we grow […]

A non exhaustive list of 2017 picks

Naval’s interview on the Farnam Street podcast was the best thing I’ve heard this year. I think about many of the insights daily. One that has particularly stuck with me “all the valuable things in life are long term focused: relationships, family, compounding, careers, health” Release it! and the SRE book were my favorite technical […]

Programming learnings 2017

I read this Tweet today before an early morning flight, so I felt a bit pumped to write down some notes on things I’ve learned this year. Disclaimer: This is mostly unedited and it overly focuses on software/programming related things – I could spend days talking about obscure things about house dance but I guess […]

Mental models in programming

I have been trying to notice more often the kind of mental models I use while programming. By mental models I mean some heuristics I use to guide my thinking when making decisions, planning my work, using my processes. In particular mental models related to adding non trivial features to large codebases. I think having […]

Optionality in the mobile paradigm

I have lived through the golden age and maturity (and decline?) of the PC paradigm. But I am too young to have witness its irruption. This contrasts with the mobile paradigm in which I have observed most of its phases. Right after the iPhone was created we had a frenzy of entrepreneurs and mobile apps […]

It has been a while

Haven’t blogged in a while. There is certainly laziness involved to the lack of activity. But above everything I just didn’t feel like going through the process of editing posts. Let’s say every post usually involves a main idea, insight or observation. To get that seed concept to a post I usually feel the urge […]