Skip to content
Gabriel Martin

Greetings

Software developer usually working on distributed systems within various (programming) languages or paradigms.

  • experienced with ecommerce systems
  • nodeJS, golang, php, python, react, rust, typescript, (?)
  • terraform, ansible, packer, jenkins
  • MySQL, PGSQL, OracleDB, MongoDB, Redis, ClickHouseDB
  • kubernetes, apache kafka, rabbitmq, grafana, prometheus, helm
  • arch linux <3, redhat
  • AWS, GCP, OCI, Azure
  • various cloud related certifications
  • yeah, that’s my cat

Latest posts

Implementing hybrid searching in ElasticSearch

I’ve been playing a lot lately with embeddings and semantic search implementations and strategies so I’ll present a bit my learnings - tailored around search systems already using ElasticSearch as the engine behind it. Some terms Let’s start with some introductions. What’s ElasticSearch? You can view it as a manager of Lucene instances. (open-source search engine) Each index is running under the hood a Lucene instance and through this setup you can query your data. It’s what Kubernetes is for container orchestration (of course, keeping proportions for a very simplified overview).

 · 6 min read · Gabriel Martin

LLMs - First Major Murder

StackOverflow has published recently its latest stats about usage - and apparently, starting with the public access on ChatGPT, the service’s usage has decreased with ~50%. Everybody has rushed in saying that probably the Internet will start forgetting what SO did over this whole time, but I doubt this is the case. Actually, these stats will probably pump back as ChatGPT is not able to answer the latest tech trends and it shouldn’t - it needs new training data, traning data which is now becoming harder to fetch than it was before (see the reddit drama). (source with some nice graphs)

 · 2 min read · Gabriel Martin

Migrating a Legacy PHP App

Recently, I’ve been working on an old hobby project as I needed to rehost it somewhere else. This website serves something like 10k unique users / day and it’s completely community driven - our users interact on the website through comments, forum posts, a chat widget (self-stored) and the content they’re providing (movie subtitles). I’ll just guide you through the entire process. Initial landscape The initial architecture was pretty simple:

 · 13 min read · Gabriel Martin

Fixing 400 Bad Request - Cookie too large error for Nginx Ingress

In some scenarios when integrating with an Identity Provider (IdP) - Keycloak, Auth0, or any similar solution - a 400 error may occur in Nginx due to the size of the request and/or cookie (headers). To solve this issue, some additional configuration for your Nginx ingress is required. Nginx Ingress is one of the resources used in Kubernetes to receive external requests and direct them to the appropriate service in the Kubernetes cluster. It merely acts as an nginx deployment in your cluster - so, x pods running nginx with a config file that can inherit values. It’s available in 2 flavors: one is free (community edition), the other one is the enterprise version.

 · 3 min read · Gabriel Martin

Remapping tilde on MacOS for a Logitech INT keyboard

Just as the title states, I had this pity situation where I bought a Logitech MX Keys Mini keyboard and tried to use it on any of my MacBooks. All cool and fancy, but the layout I could find for the external keyboard is INT and I’m used to working on US ones. And having the tilde/grave (~/`) key right next to Z is not something a programmer can really get used to.

 · 2 min read · Gabriel Martin