Opinions

Solving Code Review Frustrations with CodeRabbit AI Automation 🤖

Speed up Code Reviews!

CodeRabbit is a new AI LLM-powered tool for automated code reviews. It integrates with platforms like GitHub, GitLab, and Azure DevOps to automatically review pull requests, thus giving developers suggestions and feedback. The setup is quick and can be done in less than 10 minutes. CodeRabbit can be used with any programming language.

Read more...


Nazi Submarines, High-Tech Toilets, and Lessons in Software Engineering

Do not flush the toilet; it may initialize the self-destruct sequence.

What do German World War II submarines and modern software development have in common? Surprisingly, quite a lot: Overengineering, ignoring testing, poor modularity, and cascading failures, to name a few.

Read more...


Web components with Blazor .NET 7

Inject order into JavaScript frameworks by replacing them with C# Web Components

Web components are web standards that allow you to create custom, reusable HTML elements. These can encapsulate their styles and behaviors, preventing conflicts with other parts of your website. They are built using HTML, CSS, and JavaScript and can range from simple UI elements to complex, fully-featured web applications.

Read more...


Finding the Perfect Date: Exploring DateTime Formats for Developers

The bane of every developer's existence.

As developers, it's easy to think that working with dates and times is strictly a computer science problem. Even if it sometimes looks like someone is playing a cruel joke on programmers, historically making sense of time was a challenging task, much more than trying to parse some weird local datetime format. Tom Scott has a great video about problems with Timezones:

Read more...


Public Nested Classes

Are public nested classes really so bad?

For some time, I've been using public nested classes (often records) for POCOs (Plain Old C# Object), mostly with MediatR and services. I have found this approach very useful. Everything is contained within the MediatR model (or service), there is no way to access subclasses without explicitly understanding what you are doing.

Read more...


Library: HashIds - Masking System Data (Id Series)

Hiding identifiers

When we present information about the system to the users, we want to hide the system's inner workings. But, sometimes, it is necessary to give the user some of the details like:

Read more...


NCEFMRFVSxU - .Net Core + EF + MediatR + FluentValidation + Serilog + xUnit

The Heavenly (dev) Kingdom? Or the Little Slice of (dev) Hell

To misquote Lord Vader:

Read more...


Creating Custom Randomized Sequential Ids (Id Series)

Guid ❤

I am a big proponent of GUIDs as a surrogate key.

Read more...


Cascade Deletion Purge and The Void World of Soft Deletion

The Void is here, and it is real.

Cascade deletion never made much sense to me.
It's not just about wanting to state intentions explicitly but about understanding the data relationships.
If you don't know how things are working, maybe you should not be the one doing the deletion?

Read more...