Canal do Boi streaming platform still live in June 2026

Canal do Boi: The First 24/7 TV Channel on Brazilian Internet

I was there, I handled that. I was 14. My father and I put the first full time TV channel on the Brazilian internet, over dial-up connections. And if that wasn’t enough, it was a RURAL TV CHANNEL! For a rural audience that had barely heard of the internet. In fact, most of them just despised the internet. You might not believe it, but at the time, I remember, there wasn’t another one. And today, I’ve spent time looking for any record of something similar happening in Brazil around 2000. I found nothing. As far as I can verify, this was it. ...

July 21, 2026 · 8 min · 1598 words · Eduardo Potumati
Four trophies representing the main AI model types: Embeddings, Vision Models, Image Generation and LLM

Beyond LLM: models are what really matter!

Stop Using LLMs for Everything When we think about AI, the first thought is: LLMs. Chatting with the machine is cool, and the user loves it. BUT it’s not enough, you don’t need a robot friend (I hope, at least). To an engineer, not even ‘AI skills’ are enough… we need to go deeper. And one of the most important (and forgotten) subjects is: models. Each one is focused on a specific situation. ...

June 15, 2026 · 6 min · 1114 words · Eduardo Potumati
Historical screenshot of the MF Rural platform homepage

MF Rural: The Biggest Brazilian Rural E-commerce

MF Rural - The biggest brazilian rural e-commerce It started in early 2005, I was just 18 and I already was deeply immersed in IT work and rural fields. At that time, I had already launched some professional websites to Canal do Boi (a rural national TV channel) and to some auction companies in Brazil. So I received a visit from some guys from another state (São Paulo), who wanted to create a new way to make business in the rural field. ...

June 5, 2026 · 8 min · 1574 words · Eduardo Potumati
Diagram illustrating a high-throughput background pipeline using System.Threading.Channels in ASP.NET Core

C# Channels - Why so forgotten? Designing High-Throughput Background Pipelines

Designing high-throughput background pipelines with C# System.Threading.Channels When our project receives thousands of requests per minute, we need to take some cares. Usually, the bottleneck isn’t CPU. Probabily the problem is one (or more) of these: I/O contention, thread starvation, uncontrolled concurrency, excessive allocations… et cetera. One of the most common mistakes in high-throughput (even in medium-throughput) APIs is coupling request processing with expensive secondary operations such as: audit logging; telemetry; webhook dispatching; email sending; analytics; event persistence. So it causes response times increasing, thread pressure growing and throughput collapses. ...

May 13, 2026 · 7 min · 1280 words · Eduardo Potumati
Performance comparison chart showing C# Native AOT vs standard Runtime. Native AOT achieves 11MB app size, 40MB memory usage, and 35ms startup time.

C# Native AOT: High Performance for Cloud-Native Architectures

C# Native AOT: Reaching Maximum Performance In the modern cloud landscape, where every millisecond and every megabyte counts toward your monthly bill, how we compile and deploy our code has become a strategic decision. As developers, we are used to the standard .NET execution model: code is compiled into Intermediate Language (IL) and then compiled into machine code at runtime by the Just-In-Time (JIT) compiler. While the JIT is incredibly fast and optimized, modern architectures-especially Serverless and Edge Computing-demand something even more efficient. ...

February 15, 2026 · 2 min · 402 words · Eduardo Potumati
A comparison table or code snippet demonstrating List vs IEnumerable in C#

List<T> or IEnumerable<T> in C#: Which one to choose?

That classic question: List<T> or IEnumerable<T> in C#? Straight to the point: IEnumerable<T>: when you only need forward iteration. It also works with deferred execution, the basis of LINQ and ideal for handling large amounts of data without loading everything into memory. ICollection<T>: in addition to iteration, it allows you to add, remove, and count items, but without index access. IList<T>: includes everything from ICollection<T>, plus index-based access and the ability to insert/remove at specific positions. List<T>: the concrete implementation of IList<T>, the class you usually use to instantiate a list. Why does this matter? Whenever possible, use the minimal required interface. Clear contracts reduce coupling and make your code more flexible and easier to maintain. ...

November 15, 2025 · 1 min · 125 words · Eduardo Potumati
Semaphore and SemaphoreSlim

Concurrency Control in C#: Semaphore and SemaphoreSlim

I recently published a detailed technical article on Balta.io-one of the premier .NET ecosystem references in Brazil-addressing a critical topic for high-performance systems: concurrency control. As software engineers with extensive experience in high-demand solutions, we often face the challenge of “doing as much as possible, as fast as possible”. However, infrastructure realities-such as rate limits in third-party APIs or hardware constraints-force us to understand exactly when and how to throttle our execution. ...

August 13, 2025 · 2 min · 251 words · Eduardo Potumati
A code snippet illustrating the usage of tuples in C# to return multiple values

Tuples in C#: Too simple or too complex?

Too simple to be a complex type, too complex to be a simple attribute. That’s what tuples in C# are. Perfect for returning multiple values from a method. No need to create a class (or even a record). Easy to read. Take a look at the image post and see how to use it. Do you use tuples, or do you prefer DTOs/records? 👉 Adapted from my original post on LinkedIn . ...

July 20, 2025 · 1 min · 72 words · Eduardo Potumati
A code snippet illustrating the syntax for BULK INSERT in SQL Server

How to Insert Millions of Records into SQL Server

If you’re trying to insert millions of rows using INSERT in a loop, you’re doing it wrong. A few days ago, I was asked about it. It’s funny how a tool you use usually can slip our mind. Anyway, BULK INSERT is one of the most efficient ways to load large datasets into SQL Server. It can increase the insertion speed by up to 10x to 50x, which means that it can significantly reduce the time required for the operation. ...

April 10, 2025 · 3 min · 468 words · Eduardo Potumati
An example showing implicit operator conversions in C# with potential pitfalls

Implicit Operators in C#: Convenience vs. Clarity

In C#, implicit operators enable automatic type conversions without the need for explicit casting. This functionality not only enhances code readability but also boosts development agility while safeguarding against runtime conversion exceptions. However, be careful. While implicit conversions offer convenience, excessive usage can potentially compromise code clarity. It’s essential to tread carefully as an overreliance on implicit conversions may obscure the precise moments and locations where conversions occur. 👉 Adapted from my original post on LinkedIn . ...

March 22, 2025 · 1 min · 77 words · Eduardo Potumati