Using the go heap interface
March 07, 2021Go provides support for heaps as part of the language. What we have are interface and module methods, these can be a little intimidating if…
Go provides support for heaps as part of the language. What we have are interface and module methods, these can be a little intimidating if…
Its 2 AM alarms are going off that your microservice system, designed to be resilient to failure is now failing. After looking at your…
Originally I was looking at buying one from OhMyKeycaps but after spending some time in Reddit ErgoMechBoards I decided this would be a fun…
A single question to improve the overall quality of meetings: Is a decision needed?. If ‘no’, then consider alternatives. If ‘yes’, then…
My hope is that this answers a few questions about my thought process and adds a set of conversation starters. This does not replace getting…
Presentations are sometimes inadequate ways to communicate information. Introducing information for the first time verbally and without a…
It is easy to jump into a new project and either accidentally fail by trying to change everything at once. The better strategy is to make…
A good habit for the success of large projects is getting ‘buy-in’ or alignment from peers prior to starting. One of the challenges is that…
We need a quick way to set up a daily job that will be posting to Twitter. Today is the day we use serverless.com and see how fast it is to…
You need to tune Postgres auto-vacuum settings, but per-table can be hard to manage. Postgres auto-vacuum and auto-analyze settings are…
Catchphrases can create vivid and memorable scenarios that act as heuristics for behavior and decisions. In The Culture Code, Daniel Coyle…
After watching a talk on eBPF Superpowers, I wanted to give writing a program myself a try. Thanks to BCC BPF is pretty easy to get started…
OKRs hierarchy: how do you set goals and keep alignment from company to department?
Uh-oh! something just happened One of these queries might quickly narrow down a problem with your Postgres database. With a little luck, the…
After watching this talk from Luke Hoban, I wanted to give it a spin. Hoban’s analogy of current tools as Assembly language of the could…
We will be speeding up our JSON processing by 11x with a few tricks: reusing allocated memory the Flyweight pattern JSON parsing without…
Both Uber and Lucidchart have detailed breakdowns of gains by compressing JSON payloads and I wanted to give high compression a try with…
So you have a Docker container running locally and you want to run it in the cloud. Terraform makes it easy to quickly set up the cloud…
We are going to cut our write payload down by 95% for our very specific example. What happens when you frequently receive a payload for an…
You might have a use case to dynamically add environment variables to docker containers. If you have ephemoral hosts and using something…
What could go wrong with transferring money between two accounts? I have written about how easy it is to get wrong (giving away or losing…
WASM has been making a lot of progress recently so I was looking for a small project to run through and tetris with rust came to mind. Its…
Take a screenshot, blur it, and use it as the screensaver with a little lock icon on top.
Adding too many indexes has a cost, we are going to run through some example data and what size of an impact it looks like A common rules of…
Casbin is an authorization library that supports ACL, RBAC, ABAC permissions on resources. If you are not familiar with those terms, we will…
If we imagined better tooling around managing flaky tests what could we come up with? One thing I have noticed in working with polyglot that…
Golang error handling is fun because it is a first class citizen in the language, but the built in behavior is bare bones. But there are two…
So maybe you upgraded our authentication logic to no longer be a system bottleneck but now find authorization slowing you down, or have…
If you are building an effective team, do you know what you are building towards? Is it more than just putting smart people in a room…
‘What makes a great engineering manager?’ This is a question that I get asked a lot by both new and experienced managers. On the new manager…
If you find yourself doing lots of work constantly but seemingly unable to get the things done that you planned to, categorizing work may…
There is a really good chance you are not getting effectively coached, and you are not giving effective coaching. Has a peer come to you…
By default GKE does not use SSD for Persistance Volumes (PV), which is a little annoying since that is usually what I am looking for. I…
We are going to look at finding memory leaks in golang using a tool called pprof. As a quick refresher, a memory leak is when an application…
We are doing to be building a docker from scratch, and I do not mean a Dockerfile from scratch, I litterally mean the container. Getting…
Prolog is a declarative language around logic programming, where we can specify the rules and facts of a problem and let the language…
Sidekiq is a great library for getting asynchronous library for quickly moving work into background jobs in Rails/Ruby apps, but it can drop…
If production is on fire from slow queries, the quick command to identify them is: The above command will output any queries that have been…
Neo4j uses a declarative language called Cypher, that lets us easily make graph style queries that return some pretty cool data. We will be…
Neo4j has a csv import tool that makes importing large datasets pretty easy, especially if you happen to be exporting data out of postgres…
Leaderboards can be cumbersome to build, especially building one that can scale past millions. Fortunately Redis has built-in data type that…
PostgreSQL has a useful function called that makes selecting ‘has many’ data associations pretty easy. In our example we have contacts who…
If you have dropped messages after introducing RabbitMQ (or another messaging tool) then this is for you, a quick example on the most common…
Ever struggled with where where to stick your Rails app logic? or had controllers and models getting big? When I first started with rails…