January 29, 2024

Deploying to EMR Serverless via EMR CLI

Recently as part of my academic studies I had to deploy a PySpark application to EMR Serverless. I encountered a couple of issues along the way - most of them related to me trying to get a newer version of Python running on the cluster. This post will cover the issues I encountered and how I resolved them. Read more

February 25, 2023

Defer your mutex Unlocks

A few weeks ago we had an incident where our RabbitMQ was blocked and no new messages were processed. Restarting the service temporary resolved the issue, but the underlying the problem was still there. It was caused by a mutex that stayed locked after a panic. Even though we did recover from panic - the mutex remained to be locked. Read more

November 24, 2022

Be Above Average

Being average (among the general populace) is easy. Most of the time it requires you to do nothing. Never strive for being average - the bar for that is too low. Read more

August 3, 2022

Easy memory-saving tricks in Go

Unless you’re prototyping a service - you probably care about the memory usage of your application. With a smaller memory footprint, the infrastructure costs are reduced and scaling becomes a bit easier/delayed. Even though Go is known for not consuming a lot of memory, there are ways to further reduce the consumption. Some of them require lots of refactoring, but many are very easy to do. Read more

November 4, 2021

Back to Google - after de-googling my phone

I’m an avid Android user for 10+ years. Like many other tech-oriented people, I’m not a fan of Google and its policies (a few reasons listed later), and I’m constantly trying to use alternatives where possible. I’ve used Custom ROMs for years (with Google apps), but recently used my phone for 4+ months without any Google service. The previous week I reinstalled Google’s factory image - here’s why and what next steps I plan to make to keep my privacy. Read more

July 27, 2021

Glice v2 - Adding support for go.mod

Glice has been the first open-source project I published on my GitHub account. It’s a dependency checker for Go that used to go through all .go files, parse the imports and fetch the licenses for third-party dependencies. Long overdue I’ve added support for projects using Go Modules and did a major refactor simultaneously. Read more

April 14, 2021

HTTP logging in Go

Having good logging is crucial for running and debugging applications in production. It reduces your issue to resolution time by providing details about every action, request, and response. Designing a good logging system isn’t a trivial task, and requires an eye for detail. Here’s how I do it in Go! Read more

2018 © Emir Ribic - Some rights reserved; please attribute properly and link back. Code snippets are MIT Licensed

Powered by Hugo & Kiss.