A marginally less dumb bot

I thought this would be the most excellent and memorable place to start. A defining moment in my software career. My formation as a formidable and immovable force in my own discomfort.

It all started on a [insert weather type here] day in February the start of my final year as a student at Canterbury University. It was the beginning of times, software engineering pre-GPT.

Jump to recipe

It did exist, the AI, I recall an acquaintance speaking animatedly of "GPT" (there will be no research in this post to which model was around in 2021) as he multitasked vigorously on the course-load and his emerging YouTube channel. But they weren't doing my assignments, and ultimately, I am grateful to get out on the cusp of the revolution.

As many a, cough, B student may attest to, I was on the hunt for any way to coast through the hurdle that was my 4th year. When we arrive, with wonder and awe, on the day of Capstone project offers. I had a well constructed, and clever plan, being, to heavily cross off any project that had a whiff of AI or Machine learning. I craved the ease of logic, the comfort of if statements, understanding the flow. Having done several labs and assignments with TensorFlow and Spark and all things matrix multiplicatory, a cool calm flow was the balm needed for a cruisy year.

It took me less than two weeks to turn a simple matrix into a semantic reasoning, trained transformer for aiding storage of software decisions, with a side project in gamified labelling.

The grist

To build a bot, using slash commands, which classifies your design decisions, stores those decisions - hand waves - 'somewhere' with a classification confidence better than classifying birds using computer vision: you need a Transformer. Wherein steps HuggingFace. Why the name, they probably say on their site (reference earlier, we won't fact check here). However they have some amazing models, which you can run in the browser to discover what you think you want, what you really want, then working out what you need to build it with.

So here we get to Natural Language Processing, and several weeks learning (before data dumping post university) how a packet of words gets encoded and helps us to predict the following words in context. Thereby allowing us to understand what the sentiment, or the classification of said words or phrases might be. So BERT+ the plus being that I need it to understand some context around software and the decisions we make. The why, being crucial, why we need to damn well write them down 'somewhere' so when Frankie comes in three months down the line and asks me why we are using TinaCMS and not Sanity.... The facts do speak based on the time they were made. Names changed, but the angst remains.

At the end of the day, you get the evening. I found that I was immeasurably glad for this project. The year flew by, the work was engaging and fulfilling, and I'm desperate to find some time to make a Mark II (is it mack?) of the project. Not connecting to an agent, but using a base model again.

All stories aside, the key learnings from this body of work are, as life invariably shoves you towards those things that drain your batteries, networking. Bet you didn't expect that. There was a PhD student I ran into in the hallway, he had taught a class, perhaps, and suggested exploring transformers. There is also something to be said about being on the tools proper, AI can unblock doors, but I'm interested to know how many projects I can unlock simultaneously while waiting for the grunt work to prompt through.

Which brings me to the start of this portfolio/blog. The site itself has been built using Claude Design and Claude Code, but I would like it to mark the start of my journey back to creative writing and to creative code.

If you are after the technicals on the classification bot, I'll let the paper speak for itself. Summarise it in AI, you know you want to.

Links of interest

NB: If you wonder about the nark bot, I will cover it off in a new post. Its origin stories stemmed from un-reviewed prs and the bot was made to crawl data for stats.