RSS Amplifier

Blog

Ottorino Bruni

Passionate Software Engineer

ottorinobruni.comSource feed ↗10 posts

Live Last read · last published · next check

Latest posts

Why I Rebuilt CodeSwissKnife as a Native macOS Developer Toolbox

The Problem with Online Developer Tools Over the years, I have used countless online utilities for everyday development tasks: formatting JSON, decoding JWTs, converting data, checking certificates, testing regular expressions, and inspecting logs. They are convenient, but convenience can easily become a bad habit. It is very common to copy some data from a project, […] The post Why I Rebuilt…

Build a Local RAG Application in C# with Ollama and Qdrant – Part 1

Introduction In my previous article, AI Basics for Developers: Tokens, Inference, Embeddings, Vector Databases and RAG Explained, I covered the main concepts behind modern AI applications from a developer’s perspective. This time, we will put some of those concepts into practice. In this two-part series, we will build a local Retrieval-Augmented Generation (RAG) application in […] The post Build a…

OpenAPI in ASP.NET Core 10: Swagger Differences, Benefits and UI Integration

Introduction Modern applications rarely operate in isolation. Web APIs connect front-end applications, mobile apps, cloud services, third-party integrations, and increasingly AI-powered tools. As an API grows, however, developers need a reliable way to describe its endpoints, request parameters, response models, authentication requirements, and possible errors. This is where OpenAPI becomes…

AI Basics for Developers: Tokens, Inference, Embeddings, Vector Databases and RAG Explained

Introduction Artificial Intelligence is everywhere now, and as developers we hear terms like tokens, inference, embeddings, vector databases, and RAG almost every day in documentation, API pricing pages, architecture diagrams, conference talks and product announcements. Sometimes these words are used as if everyone already understands them, but if we want to build real applications on […] The post…

How to Implement the Idempotency Pattern in ASP.NET Core APIs to Prevent Duplicate Requests

Introduction When building APIs, one of the most common challenges is dealing with duplicate requests. Imagine a user submitting an order, completing a payment, or triggering an important business operation. The request reaches the server and is processed successfully, but due to a network issue or timeout, the client never receives the response. Believing that […] The post How to Implement the…

Builder Pattern in C# and .NET – Simplify Object Creation with Real Examples

Introduction Creating objects in C# is usually simple at the beginning of a project.But as applications grow, classes often become more complex and require more configuration. A constructor that starts with just a few parameters can quickly become difficult to read and maintain: At first glance, it is not always obvious what every value represents.As […] The post Builder Pattern in C# and .NET –…

Microsoft Agent Framework in C#: A Practical Introduction for .NET Developers

Introduction Artificial Intelligence is becoming part of many modern applications. Today, developers can use large language models to summarize text, generate content, analyze data, answer questions, and automate repetitive tasks. In a previous article, Getting Started with AI in .NET: A Simple Guide to Microsoft.Extensions.AI, we explored how to call a language model from a […] The post Microsoft…

How to Build Resilient APIs in ASP.NET Core with Polly Retry and Circuit Breaker

Introduction When building modern APIs, one thing is certain: HTTP calls will fail. It does not matter how well your code is written. Networks are unreliable, external services can be slow, and temporary errors happen all the time. A request might timeout, return a 500 error, or simply fail because of a short network interruption. […] The post How to Build Resilient APIs in ASP.NET Core with Polly…

Getting Started with gRPC in ASP.NET Core with a Real Example

Introduction When building modern backend applications, communication between services is a key aspect of system design. Most developers are familiar with REST APIs, which have been the standard approach for years. However, as systems grow and performance becomes more critical, alternative solutions start to gain attention. One of these solutions is gRPC, a high-performance Remote […] The post…

Advanced LINQ Operators in C# – Practical Examples for .NET Developers

Introduction In a previous article, we explored the fundamentals of LINQ in C# and how it simplifies working with collections. We covered the core operators such as Where, Select, OrderBy, and FirstOrDefault, and saw how they can replace manual loops with more expressive queries. Those operators already cover a large percentage of everyday scenarios. However, […] The post Advanced LINQ Operators…