IMTI

Architecting, Developing, SRE, DevOps, AI/ML

AI on a Leash: Complete Go Project Configuration

AI on a Leash for Go

The principles article covered why verification matters. The precursor Go article covered why Go’s constraints help AI produce better code. This article provides every configuration file you need. Drop these files into your Go project, change the module path, and you have a verification pipeline that catches the mistakes AI makes before they reach human review. One less round trip between you and the AI.


Ralph's Uncle

AI on a Leash

My daughter called me an “unk” the other day. I’ll take it. If Ralph is the young hotshot running AI in a bash loop until the output converges, I’m the uncle who’s been shipping software long enough to know that “it looks right” and “it works” are not the same thing.


Go's Constraints and Idioms Make AI Coding Better

From Vibe Coding to Vibe Engineering

Andrej Karpathy coined “vibe coding” in early 2025: “forget that the code even exists… I ‘Accept All’ always, I don’t read the diffs anymore.” Code becomes disposable, malleable, generated on demand. Karpathy vibe-coded a BPE tokenizer in Rust without deeply knowing Rust. For throwaway projects and weekend experiments, this works.


Apache NiFi: Production Kubernetes Deployment

Apache NiFi Part 1

This article covers deploying Apache NiFi on Kubernetes for production workloads: a clustered deployment with ZooKeeper, persistent storage, and proper ingress handling.


Kubernetes Team Access - RBAC for developers and QA

Role Based Access Control

RBAC (Role Based Access Control) allows our Kubernetes clusters to provide the development team better visibility and access into the development, staging and production environments than it has have ever had in the past. Developers using the command line tool kubectl, can explore the network topology of running microservices, tail live server logs, proxy local ports directly to services or even execute shells into running pods.


A Microservices Workflow with Golang and Gitlab CI

Continuous Integration & Deployment

Many of the resources on Cloud Native Microservices show you how easy it is to get up and running with AWS or GKE. I think this is great but for the fact that I see a trend (in my clients at least) of associating concepts with particular products or worse, companies. I love Amazon, but it’s not THE cloud). In my opinion, to embrace Cloud Native and Microservices you should develop some, and host them yourself. The cloud is not Google or Amazon; it’s any cluster of virtualized systems, abstracted from their hardware interfaces and centrally managed.


Reverse Proxy in Golang

Retrofit security proxy to prevent XSS and code injection.

Reverse proxies are standard components in many web architectures, from Nginx in front of php-fpm serving Drupal or Wordpress, to endless mixtures of load balancers, security appliances, and popular firewall applications. Reverse proxies differ from forward proxies in little but their intended implementation, be it service-side or client side. The following information is useful in either context. However, I focus on a service-side architecture. Further down this article, I’ll be going over the reasonably simple go code needed to develop a basic, yet production quality proxy, but first I’ll give you my take on why they solve so many problems and offer up my little workhorse, n2proxy.