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…
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…
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…
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…
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…
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 –…
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…
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…
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…
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…