By Carlos Rodrigues
19 min read
With new AI frameworks, model updates, and prompt engineering techniques dropping (almost) every single week, we get this constant feeling of being behind. (I do,…
Continue readingCatching AI Regressions in CI/CD Before Your Users Notice – AI for Dummies #9
Read more about Catching AI Regressions in CI/CD Before Your Users Notice – AI for Dummies #9
By Carlos Rodrigues
29 min read
At the end of our first article on the AI Evals mini series we left a small elephant in the room: fuzzy matching works great…
Continue readingImproving evals by teaching an LLM to Grade Another LLM – AI for Dummies #8
Read more about Improving evals by teaching an LLM to Grade Another LLM – AI for Dummies #8
By Carlos Rodrigues
7 min read
If you are a software engineer stepping into the world of LLMs and AI engineering, you have likely encountered this or a very similar frustrating…
Continue readingWhy deterministic tests are not enough in the world of AI: An Introduction to AI Evals – AI for Dummies #7
Read more about Why deterministic tests are not enough in the world of AI: An Introduction to AI Evals – AI for Dummies #7
By Carlos Rodrigues
15 min read
This article compares standard vector RAG with GraphRAG, explaining when global synthesis and multi-hop reasoning justify higher ingestion cost and latency. It then builds a PostgreSQL proof of concept using pgvector and Apache AGE with Docker and a Python retrieval pipeline.
Read more about GraphRAG – how agents can leverage structured knowledge and stay on track: #AI for dummies #6
By Carlos Rodrigues
6 min read
At the end of our One Hot encoding article, we left a small elephant in the room: what happens when your categorical column has 50…
Continue readingTarget Encoding: AI for Dummies #5
Read more about Target Encoding: AI for Dummies #5
By Carlos Rodrigues
3 min read
If you have spent any time in the machine learning space, you have inevitably scratched your head around the concept of backpropagation. It is the…
Continue readingUnderstanding backpropagation: AI for Dummies #4
Read more about Understanding backpropagation: AI for Dummies #4
By Carlos Rodrigues
6 min read
One of the things that may be bothering you if you followed #1 and #2 is the fact that we never talked about what happens…
Continue readingFeature Scaling: AI for Dummies #3
Read more about Feature Scaling: AI for Dummies #3
By Carlos Rodrigues
8 min read
If you’ve been following along with this series, you’ll know that in the first post we built a simple ML model to predict diabetes. We kept things…
Continue readingHandling Categorical Data with One-Hot Encoding: AI for Dummies #2
Read more about Handling Categorical Data with One-Hot Encoding: AI for Dummies #2
By Carlos Rodrigues
12 min read
Have you ever started your morning with an angry email from a user complaining that a key page on your app is throwing an error?…
Continue readingUsing Agentic Workflows as Your Monitoring Platform
Read more about Using Agentic Workflows as Your Monitoring Platform
By Carlos Rodrigues
6 min read
Everybody uses AI for almost everything these days. If you’ve been paying attention to the backend space recently, you’ve probably heard of RAG (Retrieval-Augmented Generation)…
Continue readingAdding Vector Search to PostgreSQL with pgvector
Read more about Adding Vector Search to PostgreSQL with pgvector
By Carlos Rodrigues
11 min read
Everybody uses AI for almost everything these days. From helping shaping ideas to the recommendation systems that tells us which movie to watch next, it’s
Continue readingPredicting Diabetes with Machine Learning – a brief introduction to Tensorflow: AI for Dummies #1
Read more about Predicting Diabetes with Machine Learning – a brief introduction to Tensorflow: AI for Dummies #1
By Carlos Rodrigues
8 min read
Event-driven systems have well-known advantages and most modern distributed system architectures leverage events to reduce latency, improve scalability, and overall, make everybody’s life a little
Continue readingSetting up Change Data Capture with Debezium and PostgreSQL
Read more about Setting up Change Data Capture with Debezium and PostgreSQL
By Carlos Rodrigues
4 min read
Spotify’s backstage is a widely used developer portal framework. When properly configured, it is very powerful and integrates with dozens of other tools that are
Continue readingConfigure Spotify’s backstage with Keycloak OiDC as Auth Provider
Read more about Configure Spotify’s backstage with Keycloak OiDC as Auth Provider
By Carlos Rodrigues
13 min read
Apache Kafka has, over the past few years, become the go-to platform for building scalable, and fault-tolerant data pipelines and event-driven applications. Unlike other messaging…
Continue readingDeploying Kafka to Kubernetes, reliably, securely with Strimzi- Kubernetes series #1
Read more about Deploying Kafka to Kubernetes, reliably, securely with Strimzi- Kubernetes series #1
By Carlos Rodrigues
1 min read
Tired of Visual Studio prompting for the credentials of your Nuget Sources every time? This method uses the nuget.exe to add sources and store its
Continue readingAdd authenticated nuget source and store its credentials
Read more about Add authenticated nuget source and store its credentials
By Carlos Rodrigues
5 min read
Hi and welcome to the 4th article on the MQTT series. Today we’ll see how to deal with fragile connections and how consumers can survive…
Continue readingDealing with offline consumers without data loss using MQTT persistent sessions – MQTT Series #4
Read more about Dealing with offline consumers without data loss using MQTT persistent sessions – MQTT Series #4
By Carlos Rodrigues
8 min read
Hi and welcome to the 3rd article of the MQTT Series. In this article we’ll start looking into more advanced, yet very commonly found scenarios
Continue readingImplementing the Worker Pattern / Competing Consumers Pattern with MQTT shared subscriptions – MQTT Series #3
Read more about Implementing the Worker Pattern / Competing Consumers Pattern with MQTT shared subscriptions – MQTT Series #3
By Carlos Rodrigues
18 min read
Hi and welcome back to the MQTT series, where we’ll go from the protocol basics, to real-world implementations of different use cases, using different brokers
Continue readingSetting up a secure Mosquitto MQTT Broker with SSL/TLS and User Access Control– MQTT series #2
Read more about Setting up a secure Mosquitto MQTT Broker with SSL/TLS and User Access Control– MQTT series #2
By Carlos Rodrigues
2 min read
MAUI Blazor Hybrid is a great way to leverage web development skills to target multiple platforms, including iOS and Android. As with most recent platforms,…
Continue readingMAUI Blazor Hybrid – Fixing the “This project needs to be deployed before we can debug” error
Read more about MAUI Blazor Hybrid – Fixing the “This project needs to be deployed before we can debug” error
By Carlos Rodrigues
9 min read
Welcome to the first of a series of MQTT-related articles. In this series, we’ll cover different aspects of the MQTT protocol, from its low-level protocol
Continue readingMQTT – The defacto IoT protocol – MQTT series #1
Read more about MQTT – The defacto IoT protocol – MQTT series #1
By Carlos Rodrigues
1 min read
I find myself using Linux more and more as my go-to OS, since I’m not developing anything windows specific most of the time. Occasionally I’d…
Continue readingVS Code and dotnet core: fixing ‘The terminal shell path “dotnet” is a directory’
Read more about VS Code and dotnet core: fixing ‘The terminal shell path “dotnet” is a directory’
By Carlos Rodrigues
4 min read
So, let’s say you’re working on a shiny new piece of software, which needs to somehow integrate with existing legacy software. The big problem is…
Continue readingHow to open windows desktop applications from the browser
Read more about How to open windows desktop applications from the browser
By Carlos Rodrigues
1 min read
Changing database configuration settings in a production environment is not (or should no bet) a common thing. Having similar staging or test environments helps ruling…
Continue readingPostgreSQL – which configurations require a service restart
Read more about PostgreSQL – which configurations require a service restart
By Carlos Rodrigues
2 min read
As many .NET developers transitioning to the world of Node, I started looking for an ORM. After some research, I found sequelize which seems widely adopted by the community.
I’m using typescript, and I quickly found the way to define the model with sequelize a bit too verbose, and especially a duplication of the typescript class.
That’s when I discovered sequelize-typescript, which provides this bridge, and leverages typescript’s typings, so mapping can be transparent if so we wish. All it takes is to extend a base Model class, and some annotations.
Continue readingSEQUELIZE AND TYPESCRIPT
Read more about SEQUELIZE AND TYPESCRIPT
By Carlos Rodrigues
5 min read
I’ve just cleared the AWS Cloud Solutions Architect – Associate exam with 95%, and this post contains a comprehensive list of the resources that helped getting there.
Continue readingHOW I CLEARED THE AWS CSA-A WITH 95%
Read more about HOW I CLEARED THE AWS CSA-A WITH 95%
By Carlos Rodrigues
1 min read
Having to temporarily wear the DBA hat for a couple of days, I found myself backing up and restoring lots of databases, across different environments.
Continue reading[SQL SERVER] – CHECK RESTORE / BACKUP PROGRESS
Read more about [SQL SERVER] – CHECK RESTORE / BACKUP PROGRESS
By Carlos Rodrigues
1 min read
Lately I had to provide the location of our SQL server error logs to an infra team, so they could be copied somewhere else. Raising a…
Continue readingWHERE ARE SQL SERVER ERROR LOGS STORED?
Read more about WHERE ARE SQL SERVER ERROR LOGS STORED?
By Carlos Rodrigues
2 min read
One of these days I had the need to create and extensible enum. Extensible in a way that allows people to add items to it,…
Continue reading[C#] EXTENDING ENUMS IN .NET
Read more about [C#] EXTENDING ENUMS IN .NET
By Carlos Rodrigues
1 min read
We are always learning, sometimes not the best way As most of the times, when I develop in JavaScript, I end up using the chrome…
Continue reading[JAVASCRIPT] – PARSING INTEGERS WITH TRAILING “0” WITH PARSEINT (IE9-11)
Read more about [JAVASCRIPT] – PARSING INTEGERS WITH TRAILING “0” WITH PARSEINT (IE9-11)
By Carlos Rodrigues
1 min read
After programatically provisioning a new SPWeb object, it is sometimes necessary to create a new entry on the root web top bar menu.So far so…
Continue readingADD A SECURITY TRIMMED NODE TO SHAREPOINT TOP BAR NAVIGATION
Read more about ADD A SECURITY TRIMMED NODE TO SHAREPOINT TOP BAR NAVIGATION
By Carlos Rodrigues
1 min read
Sometimes, when applying branding to Sharepoint sites, it’s necessary to hide the quicklaunch bar. Some people do that by overriding the css styles, and basically…
Continue reading[SHAREPOINT] HIDE QUICKLAUCH ON FEATURE ACTIVATION
Read more about [SHAREPOINT] HIDE QUICKLAUCH ON FEATURE ACTIVATION
By Carlos Rodrigues
1 min read
One of these days I had the need to obtain a random datetime inside a specified range, on SQL Server 2008+. After a few minutes…
Continue reading[SQL SERVER] – GENERATE RANDOM DATETIME WITHIN A RANGE
Read more about [SQL SERVER] – GENERATE RANDOM DATETIME WITHIN A RANGE
By Carlos Rodrigues
1 min read
Whenever it’s needed to perform some heavy/slow task on a mobile application, it’s a good practice to perform that specific operation on the background, using…
Continue readingUPDATING THE UI FROM A BACKGROUND THREAD ON ANDROID
Read more about UPDATING THE UI FROM A BACKGROUND THREAD ON ANDROID
By Carlos Rodrigues
2 min read
I recently needed to map a C# class to a database table using FluentNHibernate. So far so good…. But then I got stuck as one…
Continue readingUSING AN ENUM ON A FLUENTNHIBERNATE MAPPING [C#]
Read more about USING AN ENUM ON A FLUENTNHIBERNATE MAPPING [C#]
By Carlos Rodrigues
1 min read
For those like me who are entering the ruby world but have programming experience with other languages, it can be hard to get things done,…
Continue reading“TRY-CATCH-FINALLY” EQUIVALENT IN RUBY
Read more about “TRY-CATCH-FINALLY” EQUIVALENT IN RUBY