logo

Choosing the Right Tool

I’ve been working on an MCP server for my service atlas api. My original idea was to do this in Golang, but I gave up on that path. I wanted to talk a bit more about the why and the alternative in this post. Go vs Python? Golang offers a very robust library for MCP server development. A library I really, really wanted to take advantage of. But as I got past HelloWorld, I found a major problem: the library was really clunky to use.
3 minutes to read

C# Extension Methods

Its officially time for a new .Net LTS Release , and with it comes C# 14, a new iteration with quite a few fancy new features. One such is covered in this video , which shows the use of extension methods. I wanted to share my initial reaction of this video. First of all, this doesn’t read like old school C# anymore. This reads like golang. Take the below example
3 minutes to read

Service Dependency API Phase 3 Announcement

No post for this week, though I do want to say I’m almost done with phase 3 of my service dependency api (CMDB lite) project! This phase has been mainly about cleanup with osme minor improvements. I’ve very excited about what’s next, namely learning to program an MCP server
One minute to read

Why We Overcomplicate Things

Something I’ve been more and more aware of lately is the tendency of engineers, good engineers, to over complicate the hell out of something. Is it a product of the time they were working? Or is it something else? Seeing engineers come out the other side of the age of monoliths, I wonder if this is a major contributing factor. It could be, old habits die hard. Before we had “the cloud”, you had to build your own queues, callers, etc.
3 minutes to read

My Experience With RLS

I’ve been using Supabase lately for a new project and had the opportunity to work with postgres’s row level security (RLS). Its been interesting to say the least. I can see its usefulness, but it has some foot-gun properties that are kind of hard to get used to if you’ve never used it before. The Good Abstracts permissions down to the database layer Simplifies queries in the application layer Keeps users limited to only their data set The Bad Its really easy to forget to set up the proper policies Policies for complex relationships get complicated quickly Can cause really hard debug paths if you have an elevated login Conclusion So that seems like pretty significant cons, so is it worth it?
2 minutes to read

Building Api Tests With Ai

So lately I found a new pattern to increase my productivity. I work on APIs pretty extensively, and have adopted using Bruno to test with and store my test calls in my repo with the api. Since Bruno calls are basic text files, I found I can do the following: use a swagger page to collect curls for all the calls I make for setup and testing feed those calls into copilot, telling it to use them to set up the pre and post script runs then tell copilot what specifically to test for and have it create a bruno file for that call (or update one that has the bare bones for the call I’m making) additionally, I will tell copilot to update the docs section with how to manually run the test in case QA wants to review manually I’ve found that this process greatly speeds up how I test and has completely replaced integration tests in some instances.
2 minutes to read

Back to Programming

This weeks post will be a bit of quick one, not too much going on. One thing of interest I’ve noted about myself is even successes in hard games (like SilkSong) aren’t as rewarding anymore. I play a few hours, got to and defeated Moorwing, and I haven’t even thought about it again. It was just “meh”. After that I picked up my secret project (which may stop being secret soon) and honestly I found that much more rewarding, even if AI was doing some of the heavy lifting.
One minute to read

On Changing Languages

Been a long couple of weeks on a tight deadline project, and I’m just now having time to begin thinking about moving to the projects I was supposed to be working on. This work has been pretty exclusively in C#, with some minor reviews of JavaScript. This swapping languages, coupled with a new want to write more in Go, has me wanting to writing about languages and changing them frequently.
2 minutes to read

On Software Engineering

I recently read the article Writing Code is not Software Engineering , which I highly recommend reading. I thought I would take this weeks article to share my personal experiences with it. First and foremost, context is king. If you don’t know why you’re writing something, you’re going to get the how wrong because you never had a good target in the first place. The language and methods don’t really matter.
2 minutes to read

Go Thoughts Part 2

I’ve spent several months and two side projects working with Go, so I think its time to revisit this post . Overall I’ve come to really enjoy the language and think about it differently now. The good The concurrency system is extremely good and allows you to do things very quickly. It also allows you to not worry about if something is done, just when its done. I like that so much is built in.
2 minutes to read