# Carlos Rodrigues | Full Stack Thoughts

> Full Stack and AI

Written by Carlos Rodrigues. Every article is available as clean Markdown by appending `.md` to its URL (e.g. `/{slug}.md`). The full text of all articles is in [llms-full.txt](https://crodrigues.com/llms-full.txt).

## Series

- [MQTT](https://crodrigues.com/series/mqtt-series/): MQTT - A deep dive on the IoT protocol
- [AI for Dummies](https://crodrigues.com/series/ai-for-dummies/): A foundational, hands-on series breaking down artificial intelligence, machine learning, and evaluation concepts.

## Articles

- [The Unbiased Questioning Framework – The Unbiased Founder #1](https://crodrigues.com/the-unbiased-questioning-framework-the-unbiased-founder-1.md): Stop building products nobody wants. Learn the Unbiased Questioning Framework to extract hard truths from customers. Avoid False Positives and validate your
- [Catching AI Regressions in CI/CD Before Your Users Notice – AI for Dummies #9](https://crodrigues.com/catching-ai-regressions-in-ci-cd-before-your-users-notice-ai-for-dummies-9.md): With new AI frameworks, model updates, and prompt engineering techniques dropping (almost) every single week, we get this constant feeling of being behind. (I d
- [Improving evals by teaching an LLM to Grade Another LLM – AI for Dummies #8](https://crodrigues.com/improving-evals-by-teaching-an-llm-to-grade-another-llm-ai-for-dummies-8.md): 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
- [Why deterministic tests are not enough  in the world of AI: An Introduction to AI Evals – AI for Dummies #7](https://crodrigues.com/why-deterministic-tests-are-not-enough-for-ai-an-introduction-to-ai-evals-ai-series-7.md): 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 read
- [GraphRAG – how agents can leverage structured knowledge and stay on track: #AI for dummies #6](https://crodrigues.com/graphrag-how-agents-leverage-knowledge-and-stay-on-track-ai-for-dummies-6.md): Compare standard RAG and GraphRAG trade-offs, then build a hands-on PostgreSQL pipeline with pgvector and Apache AGE for multi-hop AI agent retrieval.
- [Target Encoding: AI for Dummies #5](https://crodrigues.com/target-encoding-ai-for-dummies-5.md): 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 Encod
- [Understanding backpropagation: AI for Dummies #4](https://crodrigues.com/understanding-backpropagation-ai-for-dummies-4.md): 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 rea
- [Feature Scaling: AI for Dummies #3](https://crodrigues.com/feature-scaling-ai-for-dummies-3.md): 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 f
- [Handling Categorical Data with One-Hot Encoding: AI for Dummies #2](https://crodrigues.com/handling-categorical-data-with-one-hot-encoding-ai-for-dummies-2.md): 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 rea
- [Using Agentic Workflows as Your Monitoring Platform](https://crodrigues.com/using-agentic-workflows-as-your-monitoring-platform.md): 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
- [Adding Vector Search to PostgreSQL with pgvector](https://crodrigues.com/adding-vector-search-to-postgresql-with-pgvector.md): 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-Augme
- [Predicting Diabetes with Machine Learning – a brief introduction to Tensorflow: AI for Dummies #1](https://crodrigues.com/predicting-diabetes-with-machine-learning-a-brief-introduction-to-tensorflow-ai-for-dummies-1.md): 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 Conti
- [Setting up Change Data Capture with Debezium and PostgreSQL](https://crodrigues.com/setting-up-change-data-capture-with-debezium-and-postgresql.md): Event-driven systems have well-known advantages and most modern distributed system architectures leverage events to reduce latency, improve scalability, and ove
- [Configure Spotify’s backstage with Keycloak OiDC as Auth Provider](https://crodrigues.com/configure-spotifys-backstage-with-keycloak-oidc-as-auth-provider.md): 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 ar
- [Deploying Kafka to Kubernetes, reliably, securely with Strimzi- Kubernetes series #1](https://crodrigues.com/deploying-kafka-to-kubernetes-reliably-securely-and-with-governance-with-strimzi-kubernetes-series-1.md): 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. Unl
- [Add authenticated nuget source and store its credentials](https://crodrigues.com/add-authenticated-nuget-source-and-store-its-credentials.md): 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 read
- [Dealing with offline consumers without data loss using MQTT persistent sessions – MQTT Series #4](https://crodrigues.com/dealing-with-offline-consumers-without-data-loss-using-mqtt-persistent-sessions-mqtt-series-4.md): 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 readingDealin
- [Implementing the Worker Pattern / Competing Consumers Pattern with MQTT shared subscriptions – MQTT Series #3](https://crodrigues.com/implementing-the-worker-pattern-competing-consumers-pattern-with-mqtt-shared-subscriptions-mqtt-series-3.md): 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 reading
- [Setting up a secure Mosquitto MQTT Broker with SSL/TLS and User Access Control– MQTT series #2](https://crodrigues.com/setting-up-a-secure-mosquitto-mqtt-broker-with-ssl-tls-and-user-access-control-mqtt-series-2.md): 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 C
- [MAUI Blazor Hybrid – Fixing the “This project needs to be deployed before we can debug” error](https://crodrigues.com/maui-blazor-hybrid-fixing-the-this-project-needs-to-be-deployed-before-we-can-debug-error.md): 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,… Co
- [MQTT – The defacto IoT protocol – MQTT series #1](https://crodrigues.com/mqtt-the-defacto-iot-protocol-mqtt-series-1.md): 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 Conti
- [VS Code and dotnet core: fixing ‘The terminal shell path “dotnet” is a directory’](https://crodrigues.com/vs-code-vs-code-and-dotnet-core-fixing-the-terminal-shell-path-dotnet-is-a-directory.md): 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 readingV
- [How to open windows desktop applications from the browser](https://crodrigues.com/how-to-open-windows-desktop-applications-from-the-browser.md): 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 read
- [PostgreSQL – which configurations require a service restart](https://crodrigues.com/which-postgresql-configurations-require-a-service-restart.md): Changing database configuration settings in a production environment is not (or should no bet) a common thing. Having similar staging or test environments helps
- [SEQUELIZE AND TYPESCRIPT](https://crodrigues.com/node-orm-typescript-thoughts-examples-sequelize-typescript.md): 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 t
- [HOW I CLEARED THE AWS CSA-A WITH 95%](https://crodrigues.com/cleared-aws-csa-a-95.md): 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
- [[SQL SERVER] – CHECK RESTORE / BACKUP PROGRESS](https://crodrigues.com/sql-server-check-restore-backup-progress.md): 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
- [WHERE ARE SQL SERVER ERROR LOGS STORED?](https://crodrigues.com/where-are-sql-server-error-logs-stored.md): 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
- [[C#] EXTENDING ENUMS IN .NET](https://crodrigues.com/c-extending-enums-on-net.md): 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
- [[JAVASCRIPT] – PARSING INTEGERS WITH TRAILING “0” WITH PARSEINT (IE9-11)](https://crodrigues.com/javascript-parsing-integers-trailing-0-parseint.md): 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]
- [ADD A SECURITY TRIMMED NODE TO SHAREPOINT TOP BAR NAVIGATION](https://crodrigues.com/add-security-trimmed-node-sharepoint-top-bar-navigation.md): 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 readingA
- [[SHAREPOINT] HIDE QUICKLAUCH ON FEATURE ACTIVATION](https://crodrigues.com/sharepoint-hide-quicklauch-on-feature-activation.md): 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 basical
- [[SQL SERVER] – GENERATE RANDOM DATETIME WITHIN A RANGE](https://crodrigues.com/sql-server-generate-random-datetime-within-a-range.md): 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] –
- [UPDATING THE UI FROM A BACKGROUND THREAD ON ANDROID](https://crodrigues.com/updating-the-ui-from-a-background-thread-on-android.md): 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…
- [USING AN ENUM ON A FLUENTNHIBERNATE MAPPING [C#]](https://crodrigues.com/using-a-enum-on-a-fluentnhibernate-mapping-c.md): 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
- [“TRY-CATCH-FINALLY” EQUIVALENT IN RUBY](https://crodrigues.com/try-catch-finally-equivalent-in-ruby.md): 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

## Pages

- [About](https://crodrigues.com/page/about/)
- [Understanding Backpropagation](https://crodrigues.com/page/understanding-backpropagation/)

## Optional

- [RSS feed](https://crodrigues.com/feed/)
- [Atom feed](https://crodrigues.com/atom.xml)
- [JSON feed](https://crodrigues.com/feed.json)
- [Sitemap](https://crodrigues.com/sitemap.xml)
