Skip to main content

Targeted Feature Flags with Azure App Configuration and Custom ITargetingContextAccessor

· 11 min read
Kyle Oettle
Software Engineer

Hi Everyone 👋

We've all had to roll out some form of feature management, whether it was static values in an appsettings.json file or a fully managed service with feature management based on various rules.

In this post we'll be unpacking the Azure App Configuration Feature Management a little bit, using a Targeted filter and creating a custom ITargetingContextAccessor implementation.

Burnout lessons from swimming

· 4 min read
Kyle Oettle
Software Engineer

Hi Everyone 👋

I want to share a lesson I learned about burnout, from my sister's swimming!

We've all felt it, stretched too thin, juggling too many things, pushing too hard - Burnout is tricky, it creeps up on you, and by the time your realize it, you're already drained.

Burnout can happen for a bunch of different reasons, at work you might be wearing too many different hats and trying to fill too many gaps, entering a stressful period or working, taking on too much work for an unrealistic deadline. It can even be as simple as you've just been working too long without a break.
At home you might have personal circumstances that require more of you than usual, stressful life events, physical changes or stressors - we've all experienced what a few consecutive days of bad sleep can do to us 😂

My sister told me a story of how her swim training made the proverbial penny drop on how burnout can look without you even noticing it.

The lesson...

The Evolution of Console Apps - How AI Agents Could Transform Software Engineering

· 9 min read
Kyle Oettle
Software Engineer

Hi Everyone 👋

I built something cool! AI Agents repository - an AI agent that performs automated code reviews.

Like everyone, I've been playing with AI Agents for a while now. I'm lucky enough that Investec allows, and encourages, us to adopt AI and use it to our advantage. But I've always thought there should be more to it. I wanted to see the 10x it promised.

BudgetSpeech - I made something!

· 3 min read
Kyle Oettle
Software Engineer

Hi Everyone 👋

I made something cool! budgetspeech

I love personal finance, sometimes it can be hard, sometimes it can be stressful, but it's something all of us have to deal with in some capacity.

My wife and I have a bi-weekly meeting called Budget Speech - Where either of us get to be the Minister of Finance for the evening and, you know, give the Budget Speech :satisfied:

We have a big Excel document with all our budgets for different expenses and we track it throughout the month. This workes pretty great and we can be really specific about which expenses gets allocated against which category. This way we're always on the same page whether we're getting McDonalds on Friday, or if we should rather stick to the leftovers in the fridge.

Fun with (Enum) Flags

· 3 min read
Kyle Oettle
Software Engineer

Hi Everyone 👋

One of the lesser known but my favorite features of Enums are Flags

Enums are usually used to indicate a single option, like a day of the week, your favorite colour, pizza size... We all get it, we've all used it, but how often have you seen an array of Enums being passed around in your code?
There was probably a good reason for it if you have. Maybe an array of features, an array of preferred contact methods, supported payment methods? This is what's really cool about Flags, You can capture a selection of enums in a single value :satisfied:

Async (a)void

· 6 min read
Kyle Oettle
Software Engineer

Hi Everyone 👋

A while ago we had the unfortunate event of breaking prod 😮
We made some small changes to our .net api, all tests passed, everything was good and the world slept peacefully that night, until we saw the service started going down seemingly at random! Turns out it wasn't random at all, it was a pesky async void which we missed changing to an async Task and it caused the entire service to come crumbling down.

Most of us know that when you want to change a method from sync to async, you change the calls to an async Task, it's pretty simple and straight forward, but we forgot to change one of the signatures from void DoSomething() to async Task DoSomething() and left it as async void DoSomething()

Unit Testing - Test Spy Pattern

· 5 min read
Kyle Oettle
Software Engineer

Hi Everyone 👋

90% of blogs I read start with something about unit testing, so to not dissapoint anyone I'm making my first blog post about unit testing 😄

I'm a fan of unit testing code for various reasons, mostly because I've felt the pain when there were none! So I want to chat about a pattern I've been using for the better part of a decade but only found out today that it's called the Test Spy Pattern.

The Test Spy is designed to act as an observation point by recording the method calls made to it by the SUT as it is exercised. During the result verification phase, the test compares the actual values passed to the Test Spy by the SUT with the values expected by the test.

Okay I don't think my implemntation is exactly the classic Test Spy pattern, but close enough!

Welcome to my blog!

· One min read
Kyle Oettle
Software Engineer

Hi Everyone 👋

Welcome to my blog! I'm Kyle, a Software Engineer who loves writing code, sharing what I learn and reading blogs. I often have a million tabs open from reading a blog and deep diving in to the author's content. It's part of what I love about software engineers and our sharing culture.

Thanks for stopping by! Hope you find something useful here 🚀