Build, Run, Repeat - page 2

  • Old Tools, New(ish) Tricks: Static Methods with C# Dependency Injection

    Most of my time producing software is spent in JavaScript/TypeScript/node these days, but I still like to keep an eye on C#/dotnet. It’s important to keep yourself exposed to different languages and ecosystems, as often neat solutions to problems can be found in other languages, because the common uses are different. One aspect of JavaScript I’ve really grown to love is the functions. Being able to declare and use functions like variables unlocks some really nice code patterns, and using libraries like neverthrow or just raw promises can allow you to enforce error handling into your application. So recently when writing some C#, I’ve wanted to bring this kind of thinking with me, and it’s been quite an experience.

    Image of Handaxes

  • Traefik Control: Using OAuth2 Proxy with Traefik

    In recent months a lot of my world has revolved around kubernetes. Full disclosure on my biases - K8S has routinely impressed me and I’ve found it really easy to work with. The only thing that has given me trouble has been Ingress - in a lot of ways because in my downtime I’m working with a “bare metal” cluster on some Raspberry Pi’s (a subject for another day). This podcast episode is a great listen into why this can be problematic, as it talks about how K8S basically expects you to be using a load balancer from a cloud provider.

    Initially using nginx-ingress, I then migrated to Traefik when I moved from MicroK8S to K3s. The performance and stability improvements have been amazing, but I struggled to find a good explanation on how I could continue to use Oauth2 Proxy to protect my applications.

    KubeCube Image

  • Happy Path: Build Projects You'll Come Back To

    You’ve got that side project you were working on, right? It’s been a few months, work has been busy, life has been happening, so it’s not like you’ve done much with it. But you’ve got a nice clear weekend afternoon, with a few free hours you’ve already mentally earmarked to work on that new feature you wanted to add. Except you pick it up, and it’s like it’s been written by another person - spaghetti everywhere, dozens of TODO comments, the styling is completely broken and doing an npm i reveals a frankly terrifying list of packages that need updating.

    Maybe I’ll just go do the gardening instead…

    Messy Workshop - Source https://commons.wikimedia.org/wiki/File:Railway_workshop_museum_exhibition_in_Ljubljana,_Slovenia.jpg

  • Being Emptyheaded: The Subtle Art of Being a Rubber Duck

    It’s not hard to find writing about the benefits of pair programming. As much as I sometimes enjoy tinkering away with a problem in isolation, it is easy to see that working in a pair (or sometimes even a mob) easily improves both the speed and quality of output. Throw in the extra benefits of having multiple people understanding the code, different perspectives unlocking simpler solutions, the ability to mentor members of the team - makes it hard to argue against the practice. One of the trickiest things to learn when pair programming is how to take your hands off the wheel and let someone else drive - here is my perspective on it, and maybe you’ll find some handy ideas here.

    Rubber Duck

  • You're awesome. Your code is probably worthless though.

    If you’re reading this and you’re a software developer - or really anyone that twists programming languages into shape - let’s start by saying you’re awesome. The work we do is mentally taxing, demanding, and constantly evolving. The goal of this post however is to try and hammer home that your code is the least important part of what you do.

    Damaged Punchcard

subscribe via RSS