Header image showing a human taking with an AI counterpart.

AI Development Is a Documentation Problem, Not a Prompting Problem

Most developers start using AI coding tools the same way. They open a chat, describe what they want, and ask it to write the code. Sometimes it works. More often, it produces something almost there but slightly wrong, and fixing it costs more time than it saved.

That was my experience too, until I changed how I approached using AI in my work. The difference was not the model. It was the method. I have used this approach with both GitHub Copilot and Claude across professional and personal projects, and it has consistently outperformed ad-hoc prompting. What I eventually realised is that I did not have a prompting problem. I had a context management problem. Once I started treating documentation as a shared memory system between me and the AI rather than project paperwork, I immediately noticed the benefits.

The Problem I Kept Running Into

When I asked an AI tool to build something without proper context, I was asking a capable developer to work from a rough verbal description. It would fill gaps with assumptions. The output reflected those assumptions, not my actual requirements.

The result was code that compiled, looked reasonable, and missed the point.

There was a second problem compounding that. AI sessions have limits. Context windows fill up, sessions time out, and picking up mid-project means re-explaining everything the tool no longer has access to. Without structure in place, each new session felt like starting from scratch. The tool would drift, contradict earlier decisions, or hallucinate details about code it could no longer see. The problem was not the tool. It was the lack of shared context.

Continue reading →
Header image for my article on PromoForge, catchy tagline.

PromoForge

Over the past few years I’ve been running a gaming YouTube channel, Chambers Plays Games, and like most small creators I’ve found that making the content is only half the battle. The other half is the relentless work of promoting it… writing tweets, scheduling posts, engaging with other channels, and keeping track of which accounts in your following list are actually worth keeping around. I was doing all of this manually, which was both time-consuming and inconsistent. So, as I’ve done more than once before with problems that annoy me enough, I decided to write a tool to solve it.

That tool is PromoForge.

This isn’t my first attempt at Twitter automation. Back in early 2018, as part of a #30DayDev challenge, I built and open-sourced the Microcosm retweet bot, a Python and Tweepy script that retweeted content from a configurable set of hashtags on a schedule. It did one thing and did it reasonably well, and I wrote about it on this blog at the time. The repository is now archived. PromoForge is in some ways the natural successor to that project, built on the same instinct to automate the repetitive parts of being online, just considerably more ambitious about what “automated” actually means.

What started as a fairly simple idea (fetching my YouTube videos and generating tweets for them) has grown into something considerably more ambitious over the last ten days. This post covers what’s been built, some of the more interesting challenges I ran into along the way, and where I plan to take it next.

What Is PromoForge?

At its core, PromoForge is a promotion and audience-growth platform built specifically for gaming content creators. It has two entry points: a command-line tool for headless operation, and a full web UI that you run locally and access through your browser. The web interface is where most of the action happens and it covers three broad areas of work: content scheduling, audience growth, and channel maintenance.

The scheduling side of things works by connecting to the YouTube Data API, fetching your public videos, and then generating algorithm-optimised tweets for each one. It detects which game is being played from the video title using a combination of exact matching and fuzzy search, selects appropriate hashtags from a curated set, and composes a tweet from a template library. You can export everything as a CSV or push directly to Buffer or X’s own scheduling API. The whole flow from “fetch my videos” to “tweets are scheduled” can be done in a couple of clicks.

The tweet generation interface showing video source options, days to look back, number of tweets, start date, posting time, and tweet spacing settings
The generation panel. You choose the video source (recent videos, full history, highest viewed, etc.), set your schedule preferences, and hit Fetch & Generate. The AI enhancement feature can then refine each tweet using the Anthropic API.
Continue reading →
Python Logo on a stylized background

Python Style Guides

In my pursuit to update my open-source Python Twitter bot, the retweet-bot, I decided to implement style recommendations followed by other open-source projects. This led me to use Pylint and follow the official PEP guidelines in the project. However, I was not prepared for the level of difficulty and pain that followed while implementing style guidelines. While my codebase now follows a consistent style found throughout the open-source Python world, it presented numerous pain points. Through this article, I aim to provide an overview of the pros and cons of Python style guidelines, and to enlighten readers to view these guidelines as flexible, especially for older codebases.

As developers, we have a responsibility to ensure that our code is of high quality and meets certain standards. This is the primary focus of Python style guidelines, and we will explore the pros and cons of both Pylint and PEP8 in this article. I will share my perspective as a relatively novice Python developer.

Continue reading →
My Top 5 TV Shows Of 2018

My Top 5 TV Shows Of 2018

2018 was another stellar year for television, it was also the year that streaming became the most watched thing in my household something I hadn’t expected to happen for at least another few years. Similarly to last year, this post will look at the 5 shows that had me hooked and that I would recommend to any fan of TV.

Altered Carbon

Altered Carbon Header

Altered Carbon was one of the most highly anticipated TV shows of the year for sci-fi fans. The book series was long regarded as some of the best-written cyberpunk stories ever so when Netflix announced they’d be doing a big budget adaptation the hype was real. The show delivered on that hype and then some. It was a sheer visual spectacle from start to finish featuring some of the best CGI I’ve seen on a TV show. That isn’t to say the storytelling was awesome as well, it was as good if not better than the visuals. I’d regard this as a must see for any sci-fi fan.

Continue reading →
Global Game Jam 2018 Header

Global Game Jam 2018

Having spent the past 2 months working on both the Microcosm Framework and Super Blasty Blasty V2, I felt that I needed a bit of a change of pace and decided to join in with #GlobalGameJam2018. This was the perfect opportunity to put the framework into action with a fresh project that could be far smaller scope than Super Blasty Blasty V2. Unfortunately, I didn’t get any time on the Friday or Saturday to take part but I wasn’t ready to let that stop me taking part, so on Sunday morning, I set myself a challenge to get something built and “released” in 12 hours.

Needless to say, this was a bit ambitious. But I did it! My initial plan had been to get a fully polished release on the Google Play Store in these 12 hours, looking back this was a ridiculous goal. The version I quote unquote released was far from polished, but it was functional on Android devices and had some great features, mostly thanks to the Microcosm Framework doing its job exceptionally well in saving me development time.

Continue reading →