Software Engineering categories

.NET Conf 2023 Review

This year I watched a bunch of the sessions from .NET Conf, both live streams and in the days following. I’ve collated my top recommendations and my reviews and thoughts on others that may be of interest to some Developers in the Microsoft ecosystem. Without any further ado, we’ll crack into the must-watch …

My idea of an ideal CICD pipeline

This article represents my current thoughts around building and deploying software (circa 2023). It is a general straw man. As usual in software development, the caveats apply that there is no one size fits all silver bullet pattern. This is where I start as a “given no further constraints” approach. It is …

An almost seamless transition from Ghost to Hugo

Well, I finally did it. Ghost has been sitting on an older version for a long time, my certs were expiring, and I did something about it. TL;DR; My blog engine and hosting were deteriorating fast, so I moved to GitHub Pages, Hugo, and Static Site Generation, (mostly) without losing or breaking anything. Synopsys Years …

Failed to query available provider packages - Terraform NewRelic Provider :facepalm:

Recently I tried upgrading from Terraform 0.12 to 1.0.1. I think the key here is leaving 0.12. Anyway, there was a breaking change in 0.13 around how providers worked, and we got this cryptic error. (Caveat: I don’t actually know how much of this has to do with a newrelic provider update as well or instead, but …

Kotlin, TeamCity and reflection

I’ve been getting stuck into upskilling in Kotlin. Mostly for TeamCity build automation and trying to produce quality tested code in a space where automation was retrofitted in. Today’s fun little problem was the error message: Runtime error RootProjectId: …

Nullable and notnull Serialisation Properties

The C# 8 feature Nullable has been well received by myself and others into our workflows and has improved code bases immensely. However, there is one niggly workaround that I’m not a fan of, and that is = default!; problem definition // This class is used to serialise/deserialise a payload from a server public …

We are all 10x engineers, but I don't think it means what you think it means

If your reading this blog, and used twitter in the past few days, you have probably already seen this tweet, or some of the replies coming through from the community: 10x engineers Founders if you ever come across this rare breed of engineers, grab them. If you have a 10x engineer as part of your first few engineers, …

Snuffleupagus-Oriented Programming

An impromptu introduction to Snuffleupagus-Oriented Programming (SOP): https://t.co/jPkjPRgqQr — Casey Muratori (@cmuratori) July 21, 2015 Sometimes naming something is the best way to start talking about a topic that lots of people do but don’t realise or haven’t pulled together as a concept. This is …

Looking Back on C# 7: Pattern matching

With C# 8 on our doorstep, I figure it is a good time to reflect on recent additions to the language that have come before. There are some great improvements you may have missed, some that I really enjoy using, and some I consider have reached canonical usage status that I think are all worth some reflection. Pattern …

Looking Back on C#: async and await

With C# 8 on our doorstep, I figure it is a good time to reflect on recent additions to the language that have come before. There are some great improvements you may have missed, some that I really enjoy using, and some I consider have reached canonical usage status that I think are all worth some reflection. …

Looking Back on C# 7: refs enhancements

With C# 8 on our doorstep, I figure it is a good time to reflect on recent additions to the language that have come before. There are some great improvements you may have missed, some that I really enjoy using, and some I consider have reached canonical usage status that I think are all worth some reflection. We talked …

Looking Back on C# 7: Out variables

With C# 8 on our doorstep, I figure it is a good time to reflect on recent additions to the language that have come before. There are some great improvements you may have missed, some that I really enjoy using, and some I consider have reached canonical usage status that I think are all worth some reflection. What are …

Looking Back on C# 7: Local functions

With C# 8 on our doorstep, I figure it is a good time to reflect on recent additions to the language that have come before. There are some great improvements you may have missed, some that I really enjoy using, and some I consider have reached canonical usage status that I think are all worth some reflection. Lambdas - …

Looking Back on C# 7: throw expressions

With C# 8 on our doorstep, I figure it is a good time to reflect on recent additions to the language that have come before. There are some great improvements you may have missed, some that I really enjoy using, and some I consider have reached canonical usage status that I think are all worth some reflection. Throwing …

Looking Back on C# 7: More Expression body members

With C# 8 on our doorstep, I figure it is a good time to reflect on recent additions to the language that have come before. There are some great improvements you may have missed, some that I really enjoy using, and some I consider have reached canonical usage status that I think are all worth some reflection. We …

Looking Back on C# 6: Expression body members

With C# 8 on our doorstep, I figure it is a good time to reflect on recent additions to the language that have come before. There are some great improvements you may have missed, some that I really enjoy using, and some I consider have reached canonical usage status that I think are all worth some reflection. Method …

Looking back on C# 6: Initializers

With C# 8 on our doorstep, I figure it is a good time to reflect on recent additions to the language that have come before. There are some great improvements you may have missed, some that I really enjoy using, and some I consider have reached canonical usage status that I think are all worth some reflection. …

Looking back on C# 6: String interpolation

With C# 8 on our doorstep, I figure it is a good time to reflect on recent additions to the language that have come before. There are some great improvements you may have missed, some that I really enjoy using, and some I consider have reached canonical usage status that I think are all worth some reflection. String …

Looking back on C# 6: Static Imports

With C# 8 on our doorstep, I wanted to go through some of the C# 6 and 7 language features I have been using that you may have missed. Another feature that I avoided for a while, but have really starting to use a lot more. using brings a namespace into the scope of the file. This allows us to write …

Looking back on C# 6: nameof expressions

With C# 8 on our doorstep, I wanted to go through some of the C# 6 and 7 language features I have been using that you may have missed. This is such a small feature but I use it everywhere. The nameof expression keyword acts like a function, that takes any reference as its argument, and evaluates to the string …