RSSAmplifier

Blog

Web Development Insights

My take at the web-development, open source and devops worlds.

railsadventures.wordpress.comRSS feed ↗10 posts

Latest posts

6 Metrics to Watch for on Your Kubernetes Cluster

Kubernetes. Nowadays it seems companies in the industry are divided into two pools: those that already use it heavily for their production workloads and those that are migrating their workloads into it. The issue with Kubernetes is that it is not a single system the way Redis RabbitMQ or PostgreSQL are. It is a combination […]

On Sprint Planning and Peeling Potatoes

I really like finding analogies between my work and “real” life. I recently found a cool one which I’m going to share in this post. So what does sprint planning have to do with potato peeling? Apparently a lot! Let’s go for a ride. The Grocery Store Last Friday I went to the grocery store […]

6 Years of Professional Clojure

TL;DR Clojure is a great programming language due to its functional nature, lack of objects / concentration on primitive values and the vast JVM eco system available via the seamless Java interop On the downside, recruiting and building engineering teams of Clojure engineers is challenging compared to other programming languages due to the lack of […]

Nanit’s Gangnam Style

I assume most of the readers of this blog post have heard about youtube’s famous incident with its video view counter but if you haven’t here’s a brief summary: When youtube first launched, they used a 32-bit signed integer to hold the views count for each video. They never thought that a single video would […]

From Graphite To Prometheus – Things I’ve Learned

For a long time, the StatsD + Graphite stack was the go-to solution when considering backend stacks for time-series collection and storage. In recent years, with the increased adoption of Kubernetes, Prometheus has been gaining more and more attention as an alternative solution for the classic Graphite + StatsD stack. As a matter of fact, […]

8 Tips For Productive Testing

In the previous post we discussed the “why” — we went over some of the benefits of integrating automatic testing into your development flow. In this post, we’ll go over the “how” — some guidelines for forming a healthy, safe and rapid development process around your test suite. Continuous Integration (CI) The first and most […]

3 Reasons You Should Start Testing Today

Preface This series has been heavily influenced by Robert Martin’s clean code series which I extremely recommend for every developer. Software testing has always been a controversial topic. Some say it is a waste of time while others say that it is the only sane way to develop and extend large software systems. Personally, I […]

Our Journey to EKS

<TLDR> Check out eks_cli — a one stop shop for bootstrapping and managing your EKS cluster </TLDR> Preface We’ve been running Kubernetes over AWS since the very early kube-up.sh days. Configuration options were minimal and were passed tokube-up.sh with a mix of confusing environment variables. Concepts like high availability, Multi-AZ awareness and cluster management almost didn’t exist […]

RabbitMQ Retries &#8211; The Full Story

RabbitMQ is one of the most widely used message brokers today. A large portion of nanit’s inter-service communication goes through RabbitMQ, which led us on a journey of finding the best way to retry processing a message upon failure. Surprisingly, RabbitMQ itself does not implement any retry mechanism natively. In this blog post I explore 4 different […]

Writing an Elixir Plug Library

Plug is an Elixir specification for composable modules between web application. That’s a very nice way to describe middlewares. For those of you that come from the Ruby world it pretty much takes the role of Rack middlewares. A few weeks ago I searched Google for a Plug library to validate path and query parameters […]