Posts

Descending the Programming Tower of Babel

Image
  In the last decade as a software engineer I've consistently read that one of the best ways to improve is to learn a new language.  Personally, I've found fault with that assertion and have wondered at length why it's so generally agreed upon.  In certain cases, like learning functional programming the reward is clear.  However, these strike me as special cases that don't generalize well. Now, I've not shied from the task.  On the contrary, I've worked to pick up multiple languages.  Regardless of whether or not it makes me better, to a certain extent we're all obligated to keep up to stay relevant.  To date, I've viewed this not so much as a matter of improving but one of economic necessity. Today however, it struck me that there's in fact an order to computer programming language discovery.  One that's largely chronological.  If you proceed from old to new, the exercise of mastering a new language is essentially one of memorizing a ...

Building a Semantic Layer Using AI

Image
Introducing the Semantic Layer My employer was running a software architect's nightmare, the spreadsheet farm .  This happened because our business grew quickly in a short period of time due to the economic climate created in the 2008 aftermath.  Their core competency was not software so, naturally focus was elsewhere and they perhaps under-invested in technology.  Business users needed to respond to opportunities quickly and over time, ingeniously built their own software solutions using the tools they had available, (incidentally Turing Complete) MS Excel. Each day they consumed data from upstream partners to produce an array of reports which guided their decision making.  Junior analysts spent hours a day manually cleansing, enriching, and aggregating data.  This presented software engineering with an automation opportunity.  I introduced and built a semantic layer to house all of the enrichment data that had hitherto lived in s...