For the last few weeks, I’ve been working on designing and developing a C# code generator. In this post, I want to explain some of the core concepts that I’ve learned so far and describe how you too, can get started with using the Roslyn APIs. NOTE: The Roslyn APIs are a niche feature of […]

ASP.NET Core Dependency Injection: What is the IServiceProvider and how is it Built?
If you’ve built applications using ASP.NET Core then you’ve most likely used the built-in dependency injection container from Microsoft.Extensions.DependencyInjection. This package provides an implementation of the corresponding abstractions found in Microsoft.Extensions.DependencyInjection.Abstractions. In the previous post, we learned about the IServiceCollection, including how service registrations are converted to ServiceDescriptors and added to the collection. We’ll continue learning about […]

ASP.NET Core Dependency Injection: What is the IServiceCollection?
If you’ve built applications using ASP.NET Core then you’ve most likely used the built-in dependency injection container from Microsoft.Extensions.DependencyInjection. This package provides an implementation of the corresponding abstractions found in Microsoft.Extensions.DependencyInjection.Abstractions. In this post, I wanted to take a deeper look at the first concept from the Microsoft Dependency Injection (DI) container, the IServiceCollection hopefully […]

Dream Big: Three Months in at Elastic
I recently passed my probation period at Elastic which, of course, I’m remarkably pleased about! In this post, I wanted to attempt three things. Firstly, to encourage every developer out there to dream big and realise that you can accomplish anything you put your mind to. I’m now in a dream role and if I […]

How to Become a Better Developer by Asking Questions
It’s the beginning of a new year, so I wanted to open with a post that I’ve been planning to write for some time but never quite gotten around to creating. I recently started a new job, joining Elastic, to work on their .NET language client. It, therefore, felt appropriate to finally get this topic […]