How to Restart All Pods in a Kubernetes Namespace

How To Restart All Pods in a Kubernetes Namespace

Where I work we use a repo-per-namespace setup and so it is often the case that I want to restart all the pods and deployments in a single Kubernetes namespace. Maybe I want to see the startup logs, maybe I want to take down production for a few seconds, don’t question my motivations. Anyhow, what … Read more

6 Things to Avoid When Contributing to Open-Source Projects

6 Things to Avoid When Contributing to Open-Source Projects

With #HacktoberFest being a thing, there has been an influx of devs desperately trying to contribute to their favorite Open-Source projects. Unfortunately, many of these pull requests have been a waste of time, with the maintainers ultimately unable to use the contributions. Maintainers don’t want to waste their time reviewing bad PRs, and contributors don’t … Read more

How To Correctly Validate Passwords – Most Websites Do It Wrong

How To Correctly Validate Passwords - Most Websites Do It Wrong

You’ve probably visited a site and attempted to sign-up only to be met with errors such as: Password needs a capital letter Password needs a special character Password needs to be at least 8 characters I just released a package in Go that solves this problem. Check it out and give it a star here: … Read more

Go-CoNLLU – Some Much Needed Machine Learning Support in Go

data has a better idea - machine learning golang

Python is commonly seen as the AI/ML language, but is often a dull blade due to unsafe typing and being slow, like really slow. Many popular natural language processing toolkits only have Python APIs, and we want to see that change. At Nuvi, a social media marketing tool, we use Go for the majority of … Read more

Using Concurrent Subscribers With RabbitMQ in Python (pika)

rabbit and python

It’s a fairly common scenario to subscribe to a Rabbit queue and process messages before acknowledging receipt. The pika package for dealing with RabbitMQ in Python however is only single-threaded out of the box. If we want to make a network or database call before each acknowledgment our subscribers can get really slow. Waiting on … Read more

Using a RabbitMQ Client in Golang

Rabbit in Go Cuddly

RabbitMQ is a great message broker with awesome Golang support. It’s a great pub-sub system, and pub-sub has become a staple communication architecture in micro-services. At my current day job, we use RabbitMQ to push hundreds of millions of social media posts through our Go services daily. Let’s take a look at how to efficiently … Read more

Announcing Go-TinyTime, Go-TinyDate’s Sister Package


time.Time is the perfect choice for most cases, it even comes in the standard library! The problem is that the time.Time{} struct uses more than 24 bytes of memory under most conditions. Go-TinyTime solves this problem by restricting the available dates to the range between 1970 – 2106, and only supporting UTC timezones. This brings … Read more

Is Open-Source Cryptography Really Secure?

photo 1497285597995 6ed7de6bfebd

The purpose of cryptography is to keep information private, and the purpose of open-source is to make code public… So we shouldn’t open source our cryptography algorithms right? I’ve been asked this several times by multiple people so I figured it is a subject worth addressing. Many developers seem to be under the impression that … Read more

How We Used Percolate Queries in Elasticsearch To Build a Fast Alerts System

How We Used Percolate Queries in Elasticsearch To Build a Fast Alerts System

Once upon a time, a company I worked for had a problem: We had thousands of messages flowing through our data pipeline each second, and we want to be able to send emails, SMS, and Alack alerts to ours users when messages matching specific criteria were seen. ElasticSearch’s percolating queries can be simply thought of … Read more