Posts

The Time-Travel Problem: Reviving Legacy Cloud Tooling with Modern AI Teammates

The Time-Travel Problem: Reviving Legacy Cloud Tooling with Modern AI Teammates In enterprise infrastructure, legacy systems never truly vanish. While technology conferences celebrate the latest cloud-native architectures, real-world platforms often depend on dependable workhorses running versions deployed years ago. A classic example is OpenShift 3.6. Released back in 2017 and built on Kubernetes 1.6, it powered an entire generation of enterprise container platforms. Fast forward to today: developers and platform engineers are working on modern Apple Silicon Macs (M1/M2/M3/M4) running ARM64 architecture, using Go compilers far ahead of Go 1.7, and relying on AI-assisted workflows. When you need to build the oc client locally for OpenShift 3.6 on a modern machine, you immediately run into what I call the Time-Travel Problem : how do you take a codebase frozen in 2017 and compile it natively on modern hardware without getting stranded in build-system archaeology? This is where pairing ...

Tips for Using LLMs in Software Development

Background Context is everything when working with LLMs. Here are five practical levers that determine whether your agent session succeeds or wastes a lot of tokens. This article explores the minimum amount of context you need to provide to an LLM in order to perform a given software development task. When answering a user's prompt, an agent harness (like Claude Code or Cursor) can perform additional work such as reading files, exploring trial solutions, and updating existing source code. We want the LLM — together with its harness — to succeed at whatever task we provide, but we need to be thoughtful about the context we give it. Context 1: Project Folder For the LLM to efficiently reach application source code, database schemas, table structures, and markdown documents, it is best to start the agent harness inside the project folder, or just by specifying the project folder for the conversation. The harness will allow the LLM to list directories, search for keywords within the pr...

The LLM as Teammate: Rethinking Software Development

The LLM as Teammate: Rethinking Software Development In this era, Artificial Intelligence engines now help people build software. I am not talking about embedding AI capabilities into existing applications — that is another topic altogether — but about using AI to write software itself, removing the programming language barrier for the person building it. In the past, if we needed to build software with a particular programming language, we needed to be proficient in it, or we needed to know someone who was. With AI, I could be less proficient in a platform yet still build something meaningful with it. As long as the LLM has proficiency in that programming language, all is well. And with the LLM joining as part of the "programming team," the limitation of working hours almost vanishes. If I still have sufficient LLM token quota, even starting some coding work at 11 PM is possible — no need to wake a programmer for a task. In some respects that is a win, but in others we get l...

Copying Big Oracle Tables into Iceberg

During my piloting of Trino Query Engine (formerly PrestoSQL), I tried several datawarehouse destination options. The first option is using Trino's Hive connector with the data stored in Minio storage accessed using S3 API. The Minio services were  run on IBM hardware (ppc64le architecture), but that's another story for another blog post. The metadata were stored in a Hive metastore to serve the metadata, which takes some effort because at some point the metastore need to access the S3 storage (which I don't understand why) and thus need to have proper Hadoop AWS jars. The second option is using Trino's Iceberg Connector to store the data in the same Minio storage and Hive metastore with Iceberg table format. For reference's sake, I will note the version of the software being used in this experiment.  Trino version 442, deployed on openshift OKD 4.13 using Pulumi and Trino Helm template as starting point. Using pristine Trino image taken from docker hub (docker.io...