2023  9

September  1

Observing .NET microservices with OpenTelemetry - logs, traces and metrics

September 5, 2023 · 27 min · 5619 words · João Antunes

August  1

“Parse, don’t validate” and other type safety driven shenanigans (plus a C# wishlist)

August 17, 2023 · 15 min · 3111 words · João Antunes

July  1

Enforce conventions (but don’t go overboard) with architecture tests

July 28, 2023 · 7 min · 1394 words · João Antunes

May  2

From domain events to infrastructure - thinking out loud about possible approaches I don’t hate

May 16, 2023 · 16 min · 3237 words · João Antunes

Checking out EF Core inheritance options

May 8, 2023 · 10 min · 1931 words · João Antunes

April  2

A reminder to consider that your context, isn’t the only context (.NET 8 TimeProvider edition)

April 24, 2023 · 4 min · 653 words · João Antunes

Contract first OpenAPI development (but still use Swagger UI with ASP.NET Core)

April 2, 2023 · 12 min · 2411 words · João Antunes

January  2

Mapping ASP.NET Core minimal API endpoints with C# source generators

January 31, 2023 · 8 min · 1624 words · João Antunes

The “insert specific tech here” developer: yay or nay?

January 19, 2023 · 9 min · 1790 words · João Antunes

2022  10

November  1

On résumé-driven development, FOMO and dismissing it

November 7, 2022 · 3 min · 544 words · João Antunes

September  1

Beware of records, with expressions and calculated properties

September 1, 2022 · 7 min · 1304 words · João Antunes

July  1

[Video] Outbox meets change data capture - hooking into the Write-Ahead Log (feat. .NET, PostgreSQL & Kafka)

July 27, 2022 · 1 min · 136 words · João Antunes

May  2

[Video] What’s the point of async/await in an ASP.NET Core application?

May 30, 2022 · 1 min · 93 words · João Antunes

[Video] Quick shout-out to DevToys

May 3, 2022 · 1 min · 106 words · João Antunes

April  1

[Video] Polymorphic JSON Serialization (feat. .NET & System.Text.Json)

April 13, 2022 · 1 min · 68 words · João Antunes

February  1

OpenAPI extensions and Swashbuckle

February 21, 2022 · 5 min · 861 words · João Antunes

January  3

Array or object JSON deserialization (feat. .NET & System.Text.Json)

January 31, 2022 · 4 min · 689 words · João Antunes

[Video] Outbox meets change data capture (feat. .NET, PostgreSQL, Kafka and Debezium)

January 17, 2022 · 1 min · 89 words · João Antunes

Getting a complex type as a simple type from the query string in a ASP.NET Core API controller

January 3, 2022 · 8 min · 1589 words · João Antunes

2021  10

December  1

[Video] Checking out NDepend

December 6, 2021 · 1 min · 80 words · João Antunes

November  1

[Video] High-performance and compile-time logging source generation in .NET 6

November 21, 2021 · 1 min · 72 words · João Antunes

October  1

[Video] Exploring distributed tracing with ASP NET Core 6

October 26, 2021 · 1 min · 108 words · João Antunes

August  1

[Video] Are ASP.NET Core Minimal APIs just for demos?

August 17, 2021 · 2 min · 251 words · João Antunes

July  1

Next level console apps with Spectre.Console

July 27, 2021 · 9 min · 1917 words · João Antunes

May  1

Mistaking software for a finished product

May 10, 2021 · 6 min · 1078 words · João Antunes

April  1

Virtual as a code smell*

April 7, 2021 · 5 min · 1040 words · João Antunes

March  2

Setting up demos in Azure - Part 2: GitHub Actions

March 14, 2021 · 8 min · 1535 words · João Antunes

Setting up demos in Azure - Part 1: ARM templates

March 7, 2021 · 15 min · 3012 words · João Antunes

January  1

Streamlining package versioning with MinVer

January 24, 2021 · 6 min · 1180 words · João Antunes

2020  20

December  1

Getting started with GitHub Actions

December 22, 2020 · 6 min · 1122 words · João Antunes

November  2

Going all-in with nullable reference types

November 28, 2020 · 9 min · 1763 words · João Antunes

.NET Conf 2020 and .NET 5 links

November 15, 2020 · 2 min · 246 words · João Antunes

October  1

Setting up a build with NUKE

October 24, 2020 · 7 min · 1378 words · João Antunes

September  2

Shaking things up a bit - ASPF02O Outro

September 21, 2020 · 3 min · 541 words · João Antunes

Some comments, tips and rants about my path to Kubernetes certification

September 7, 2020 · 13 min · 2589 words · João Antunes

August  1

Event-driven integration #6 - Publishing events (feat. Apache Kafka) [ASPF02O|E045]

August 18, 2020 · 11 min · 2264 words · João Antunes

July  1

Microservices and correctly built distributed systems

July 15, 2020 · 5 min · 1022 words · João Antunes

June  1

Event-driven integration #5 - Quick intro to Apache Kafka [ASPF02O|E044]

June 9, 2020 · 11 min · 2266 words · João Antunes

May  1

Event-driven integration #4 - Outbox publisher (feat. IHostedService & Channels) [ASPF02O|E043]

May 7, 2020 · 21 min · 4397 words · João Antunes

April  4

Event-driven integration #3 - Storing events in the outbox table [ASPF02O|E042]

April 28, 2020 · 10 min · 1965 words · João Antunes

Event-driven integration #2 - Inferring events from EF Core changes [ASPF02O|E041]

April 20, 2020 · 8 min · 1547 words · João Antunes

Event-driven integration #1 - Intro to the transactional outbox pattern [ASPF02O|E040]

April 13, 2020 · 4 min · 795 words · João Antunes

Event-driven integration - Overview [ASPF02O|E039]

April 5, 2020 · 7 min · 1280 words · João Antunes

March  1

More explicit domain error handling and fewer exceptions with Either and Error types [ASPF02O|E038]

March 2, 2020 · 19 min · 3995 words · João Antunes

February  3

Better use of types - avoiding nulls with an Optional type [ASPF02O|E037]

February 17, 2020 · 13 min · 2614 words · João Antunes

E036 - Making things more object oriented with rich domain entities - ASPF02O

February 6, 2020 · 9 min · 1852 words · João Antunes

A look at Building the Future 2020

February 4, 2020 · 10 min · 2011 words · João Antunes

January  2

E035 - Experimenting with (yet) another approach to data access organization - ASPF02O

January 20, 2020 · 8 min · 1666 words · João Antunes

E034 - Segregating use cases with MediatR - ASPF02O

January 10, 2020 · 14 min · 2916 words · João Antunes

2019  27

December  3

E033 - Redesigning the API: Improving the internal architecture - ASPF02O

December 20, 2019 · 9 min · 1796 words · João Antunes

Use POCOs to group data and logic - there’s more to life than services and DTOs

December 10, 2019 · 6 min · 1115 words · João Antunes

“Equals” and “==” are not… equal

December 1, 2019 · 4 min · 728 words · João Antunes

November  2

Episode 032 - Upgrading to ASP.NET Core 3.0 - ASP.NET Core: From 0 to overkill

November 21, 2019 · 8 min · 1508 words · João Antunes

A year remote

November 3, 2019 · 14 min · 2924 words · João Antunes

October  2

Episode 031 - Some simple unit tests with xUnit - ASP.NET Core: From 0 to overkill

October 25, 2019 · 8 min · 1596 words · João Antunes

Episode 030 - Analyzing performance with BenchmarkDotNet - ASP.NET Core: From 0 to overkill

October 8, 2019 · 23 min · 4761 words · João Antunes

September  1

Episode 029 - Simplifying the BFF with ProxyKit - ASP.NET Core: From 0 to overkill

September 11, 2019 · 12 min · 2483 words · João Antunes

August  2

Episode 028 - Multiple service instances tweaks - ASP.NET Core: From 0 to overkill

August 31, 2019 · 7 min · 1339 words · João Antunes

Episode 027 - Up and running with Docker Compose - ASP.NET Core: From 0 to overkill

August 12, 2019 · 16 min · 3205 words · João Antunes

July  2

Episode 026 - Getting started with Docker - ASP.NET Core: From 0 to overkill

July 29, 2019 · 14 min · 2916 words · João Antunes

Episode 025 - Integrating IdentityServer4 - Part 5 - Frontend - ASP.NET Core: From 0 to overkill

July 13, 2019 · 14 min · 2855 words · João Antunes

June  3

Episode 024 - Integrating IdentityServer4 - Part 4 - Back for Front - ASP.NET Core: From 0 to overkill

June 22, 2019 · 17 min · 3619 words · João Antunes

Episode 023 - Integrating IdentityServer4 - Part 3 - API - ASP.NET Core: From 0 to overkill

June 16, 2019 · 7 min · 1383 words · João Antunes

Episode 022 - Integrating IdentityServer4 - Part 2 - Auth Service - ASP.NET Core: From 0 to overkill

June 13, 2019 · 14 min · 2908 words · João Antunes

May  3

Episode 021 - Integrating IdentityServer4 - Part 1 - Overview - ASP.NET Core: From 0 to overkill

May 29, 2019 · 6 min · 1174 words · João Antunes

The Uri composition mystery

May 22, 2019 · 3 min · 472 words · João Antunes

Episode 020 - The backend for frontend and the HttpClient - ASP.NET Core: From 0 to overkill

May 5, 2019 · 13 min · 2672 words · João Antunes

April  2

Episode 019 - Roles, claims and policies - ASP.NET Core: From 0 to overkill

April 29, 2019 · 11 min · 2336 words · João Antunes

Episode 018 - Internationalization - ASP.NET Core: From 0 to overkill

April 24, 2019 · 13 min · 2675 words · João Antunes

March  1

Episode 017 - More Identity, more Razor Pages - ASP.NET Core: From 0 to overkill

March 31, 2019 · 15 min · 3133 words · João Antunes

February  4

Episode 016 - Authentication with Identity and Razor Pages - ASP.NET Core: From 0 to overkill

February 24, 2019 · 24 min · 5067 words · João Antunes

Episode 015 - Calling the Web API from the frontend - ASP.NET Core: From 0 to overkill

February 12, 2019 · 6 min · 1186 words · João Antunes

Episode 014 - Centralizing frontend state with Vuex - ASP.NET Core: From 0 to overkill

February 7, 2019 · 17 min · 3433 words · João Antunes

Episode 013 - Starting the frontend with Vue.js - ASP.NET Core: From 0 to overkill

February 2, 2019 · 18 min · 3636 words · João Antunes

January  2

Episode 012 - Move to a Web API - ASP.NET Core: From 0 to overkill

January 26, 2019 · 12 min · 2426 words · João Antunes

Episode 011 - Data access with Entity Framework Core - ASP.NET Core: From 0 to overkill

January 16, 2019 · 20 min · 4151 words · João Antunes

2018  53

December  3

Episode 010 - Async all the things - ASP.NET Core: From 0 to overkill

December 17, 2018 · 21 min · 4300 words · João Antunes

Episode 009 - MVC filters - ASP.NET Core: From 0 to overkill

December 10, 2018 · 8 min · 1588 words · João Antunes

Episode 008 - Middlewares - ASP.NET Core: From 0 to overkill

December 5, 2018 · 8 min · 1692 words · João Antunes

November  3

Episode 007 - Logging - ASP.NET Core: From 0 to overkill

November 21, 2018 · 11 min · 2254 words · João Antunes

Episode 006 - Configuration - ASP.NET Core: From 0 to overkill

November 16, 2018 · 9 min · 1863 words · João Antunes

Episode 005 - Dependency Injection - ASP.NET Core: From 0 to overkill

November 4, 2018 · 11 min · 2251 words · João Antunes

October  5

Episode 004 - The Program and Startup classes - ASP.NET Core: From 0 to overkill

October 27, 2018 · 9 min · 1769 words · João Antunes

Episode 003 - First steps with MVC - ASP.NET Core: From 0 to overkill

October 13, 2018 · 10 min · 2039 words · João Antunes

Episode 002 - Project structure plus first application - ASP.NET Core: From 0 to overkill

October 7, 2018 · 6 min · 1248 words · João Antunes

Episode 001 - The Reference Project - ASP.NET Core: From 0 to overkill

October 6, 2018 · 4 min · 728 words · João Antunes

ASP.NET Core: From 0 to overkill - Intro

October 2, 2018 · 4 min · 643 words · João Antunes

September  4

Finally found a cross-platform Excel parsing library

September 15, 2018 · 2 min · 299 words · João Antunes

First look at Kotlin - my first pains

September 12, 2018 · 6 min · 1068 words · João Antunes

[Redirect Magazine] #27 - ASP.NET Core and Serilog, techie to tech lead, microservices and messaging

September 9, 2018 · 1 min · 154 words · João Antunes

[Redirect Magazine] #26 - Web performance, constructor over-injection and the Elastic stack

September 2, 2018 · 1 min · 78 words · João Antunes

August  6

[Redirect Magazine] #25 - Event sourcing problems, Bing on .NET Core 2.1 and testing distributed systems

August 26, 2018 · 1 min · 116 words · João Antunes

[TIL] int vs short and the (unexpected) performance impact

August 25, 2018 · 3 min · 498 words · João Antunes

[Redirect Magazine] #24 - Service boundaries, orchestrating containers, event sourcing and CQRS, plus some ASP.NET Core less known features

August 19, 2018 · 1 min · 150 words · João Antunes

[Video] Creating a CI/CD pipeline for a .NET library

August 19, 2018 · 1 min · 167 words · João Antunes

[Redirect Magazine] #23 - distributed systems, testing, more distributed systems and actors on distributed systems

August 12, 2018 · 1 min · 130 words · João Antunes

[Redirect Magazine] #22 - Imaginary problems, .NET pipelines, patterns misuse, architecture resources and CI/CD

August 5, 2018 · 1 min · 192 words · João Antunes

July  9

Creating a CI/CD pipeline for a .NET library: Part 3 - Building on AppVeyor and Travis CI

July 30, 2018 · 6 min · 1079 words · João Antunes

Creating a CI/CD pipeline for a .NET library: Part 4 - Code coverage on Coveralls, badges and wrap up

July 30, 2018 · 4 min · 644 words · João Antunes

Creating a CI/CD pipeline for a .NET library: Part 2 - Defining the build with Cake and publishing to NuGet

July 30, 2018 · 7 min · 1279 words · João Antunes

Creating a CI/CD pipeline for a .NET library: Part 1 - Intro

July 30, 2018 · 2 min · 314 words · João Antunes

[Redirect Magazine] #21 - Web architecture fundamentals, stability patterns and antipatterns plus a quick look at Kotlin

July 29, 2018 · 1 min · 143 words · João Antunes

[Redirect Magazine] #20 - Debugging HTTP requests in Docker, homographs, learning new things and evolutionary architectures

July 22, 2018 · 1 min · 145 words · João Antunes

[Redirect Magazine] #19 - Microservices gone sour, OOP done wrong, more on .NET’s new Pipelines and HTTPS all the things

July 15, 2018 · 1 min · 209 words · João Antunes

[Redirect Magazine] #18 - Span, Memory and Pipelines on .NET Core 2.1

July 8, 2018 · 1 min · 95 words · João Antunes

[Redirect Magazine] #17 - Using containers for build environments, configuration in .NET Core, HTTPS all the things, containerized distributed data stores and Shopify’s architecture

July 1, 2018 · 1 min · 124 words · João Antunes

June  4

[Redirect Magazine] #16 - Sharing sources through NuGet, modern .NET overview, some more microservices and a tour through programming history

June 24, 2018 · 1 min · 64 words · João Antunes

[Redirect Magazine] #15 - Performance with strings in .NET, cryptography, Node.js issues, microservices and clean architecture

June 17, 2018 · 1 min · 142 words · João Antunes

[Redirect Magazine] #14 - Micro Frontends, Polly extensions for HttpClient, WebSockets and Nginx

June 10, 2018 · 1 min · 185 words · João Antunes

[Redirect Magazine] #13 - .NET Core 2.1 released, Twelve-Factor App, Reactive Manifesto, readable code, Rx on the cloud and extra JS stuff

June 2, 2018 · 1 min · 167 words · João Antunes

May  5

[Redirect Magazine] #12 - More JS inner workings, serverless, ASP.NET Core 2.1 and microservice websites

May 27, 2018 · 1 min · 100 words · João Antunes

[Redirect Magazine] #11 - Async stuff, cleaning up DI, using Git merge, Spotify engineering culture and new shiny things in EF Core

May 20, 2018 · 2 min · 228 words · João Antunes

Dotnetifying gRPC: Sane Edition

May 19, 2018 · 16 min · 3213 words · João Antunes

[Redirect Magazine] #10 - Events past week, .NET Core future, project versioning, Visual Studio Live Share, Angular 6 and the new SignalR

May 13, 2018 · 1 min · 205 words · João Antunes

[Redirect Magazine] #9 - GraphQL vs REST, multi-targeting .NET libraries, analyzers and designing APIs

May 6, 2018 · 1 min · 112 words · João Antunes

April  8

[Redirect Magazine] #8 - HttpClient, the actor model, saga pattern, ASP.NET Core issues and some more perf stuff

April 29, 2018 · 1 min · 210 words · João Antunes

Using .NET’s HttpClient without following redirects

April 28, 2018 · 5 min · 932 words · João Antunes

[Redirect Magazine] #7 - Using Firefox, .NET Core 2.1 performance improvements, learning new skills and new C# features

April 22, 2018 · 2 min · 225 words · João Antunes

Using cancellation tokens on ASP.NET Core MVC actions

April 21, 2018 · 3 min · 599 words · João Antunes

Dotnetifying gRPC

April 15, 2018 · 19 min · 3862 words · João Antunes

[Redirect Magazine] #6 - Code reviews, side projects, functions as dependencies and performance profiling

April 15, 2018 · 1 min · 143 words · João Antunes

[Redirect Magazine] #5 - Repository pattern diverging opinion, .NET and Go concurrency, JS Event Loop and Zones

April 8, 2018 · 1 min · 196 words · João Antunes

[Redirect Magazine] #4 - CLI tools, coding ASP.NET Core on Linux, actors and some more perf stuff

April 1, 2018 · 1 min · 147 words · João Antunes

March  4

[Redirect Magazine] #3 - DDD with EF Core, ASP.NET Core, JS and .NET perf and some logging bits

March 25, 2018 · 1 min · 164 words · João Antunes

[Redirect Magazine] #2 - Stack Overflow developer survey, general tips, code reviews and some other stuff

March 18, 2018 · 2 min · 247 words · João Antunes

My couple of cents on remote work

March 15, 2018 · 7 min · 1368 words · João Antunes

[Redirect Magazine] #1 - Sharing some links

March 11, 2018 · 2 min · 294 words · João Antunes

January  2

Quick intro to Docker and Docker Compose: Angular, ASP.NET Core and Postgres app

January 31, 2018 · 8 min · 1534 words · João Antunes

[Video] Moving the blog to Jekyll and hosting on Netlify

January 29, 2018 · 1 min · 99 words · João Antunes

2017  4

September  2

A way to simplify unit tests on static methods

September 14, 2017 · 4 min · 659 words · João Antunes

[Video] .NET performance curiosities

September 11, 2017 · 1 min · 47 words · João Antunes

July  2

[Video] Using Polly to improve .NET applications resilience

July 29, 2017 · 1 min · 42 words · João Antunes

[Video] REST vs GRPC in C# just for fun

July 17, 2017 · 1 min · 53 words · João Antunes

2016  10

November  3

[Redirect] How To Save The Princess In 8 Programming Languages

November 12, 2016 · 1 min · 10 words · João Antunes

Simpler error handling in .NET applications using Polly

November 8, 2016 · 5 min · 942 words · João Antunes

Boilerplate hunting with Castle DynamicProxy

November 1, 2016 · 8 min · 1665 words · João Antunes

October  7

[Redirect] How you should (not) use HttpClient

October 27, 2016 · 1 min · 94 words · João Antunes

BenchmarkDotNet - Library for benchmarking .NET code

October 24, 2016 · 4 min · 804 words · João Antunes

Getting this up and running – Bonus round: SSL, Email and stuff (3/3)

October 18, 2016 · 5 min · 1046 words · João Antunes

Getting this up and running – Installing Docker and running applications with it (2/3)

October 15, 2016 · 8 min · 1605 words · João Antunes

Getting this up and running – Initial server setup (1/3)

October 8, 2016 · 7 min · 1433 words · João Antunes

Getting this up and running - Intro

October 5, 2016 · 3 min · 455 words · João Antunes

“Time’s up, let’s do this! Leeeeeeeeeeeeeroy Jenkins!”

October 3, 2016 · 2 min · 285 words · João Antunes