by dwoldrich | 2025-06-02 09:48:53+00:00
Not delegating, just tricking everything I develop out far more than I would have in the past. I'm on yet another hodgepodge project in a looong, decades long series of hodge and podge. AI is letting me begin to answer to my own satisfaction, "what does it look like to do everything to the best of my ability?"

In my current gig, I have an on-prem database and legacy application that is human-powered software, where parts of the business process never touch the computer and a human does the work (mostly support stuff), (and for no good reason other than this system never had real engineering support.) So, I joined the team, and started to wrangle the system.

First thing I was asked to do was get their database code and schema into source control with managed releases. The gold plating process that I never would have entertained in the past led me to get a migration tool installed, get a unit test engine installed in the database and writing new code with tests, figure out even how to refactor the big ball of mud and coming up with patterns there, doing github workflows to run the tests and deploy to multiple environments, linters, Slack alerts.

It's not that I wasn't aware of all these things, I just never would have done all of them _to the extent_ that I did because the time needed to research it all traditionally and spike the solutions would have been too great. And I documented it all!

After the databases were basically under control and I had gained the team's trust, I moved the team to start automating the human-powered parts of the software. We started an admin console webapp project. Again, I was heavy into AI all along the way, even during requirements elicitation. Our data is a rube goldberg machine of cloud and on-prem, but the majority of what we need to get under control is legacy/on-prem. We want the webapp to eventually be hosted in the cloud, but to be close to our databases and not have to fuss with private links, we decided for starters to deploy the webapp on-prem next to them.

So, that meant figuring out how to get our github builds deployed on-prem. There was this huge saga in figuring out how to provision an on-prem GitHub Runner and use Powershell Remoting to fan out our deployments from there to all of the on-prem servers. Never EVER would I have been able to figure out the permissions and powershell provisioning steps needed to pull that off. It's all very gross, Windows is gross, but what we've built works dependably and is secure. I probably would have just used Samba or some other cheesy way to move files around and trigger deployments if I didn't have AI to bounce all these ideas off of.

Another example: we wanted our BFF microservices to eventually deploy as Azure Functions, so gold plating meant we had to figure out how to build and deploy functions on-prem. It ended up being very productive, but again I would have never entertained doing such a thing unless I could bounce my ideas off AI and get credible directions on how to proceed. Instead, I would have written the service as trusty/crusty old Express 4.x and ported the code to Functions once we made the jump to cloud. I am saving future me a ton of work and heartburn!

At every step AI is giving me the latitude to ask, given whatever nasty situation I'm in, what would be the best code/most secure/nicest architecture in that case? It's arduous to continually pepper it with questions and spend many days zeroing in on a final solution with it. But, it beats the guessing game of searching DuckDuckGo, StackOverflow, and software vendors' documentation - those are now the _last_ places I look for answers. (For ill, I'm sure.)