RSSAmplifier

Blog

Mpho Mphego

Hi! I'm Mpho Mphego, a self-taught Python developer.

blog.mphomphego.co.zaRSS feed ↗20 posts

Latest posts

Harness Engineering in Practice: Building Maestro v2, an Autonomous GitHub Agent Orchestrator using Claude Code

Listen to this article: Your browser does not support the audio element. Disclaimer: AI-assisted post. Structure and phrasing are Claude’s. The decisions, war stories, and 2am tequila are mine. It was a Saturday afternoon, after driving to & from Langebaan for my daughter’s sports match (#PresentDads), everyone was on devices...

Did I Just Accidentally Build a Memory Management System for Claude Code?

It has been one of those months where you fix something small and discover something big. The Story It’s a Tuesday afternoon. I’m updating a GitHub Actions workflow when Claude Code tells me actions/checkout@v5 doesn’t exist and downgrades to v4. No confirmation. (I’m running --allow-dangerously-skip-permissions, I know, I know.) I’d...

Running Google ADK Agents on AWS Bedrock via LiteLLM in Production: A Practical Guide to the Gotchas

It was supposed to be one of those focused days, the kind where you block off a few hours for deep work and knowledge transfer (set your MS Teams status to “Do Not Disturb” and hope for the best). Suvi. R. - One of the engineers on the team was...

How I Built 20+ Custom AI Coding Skills to Automate My Entire Engineering Workflow

It has been a productive few months — too productive, if you ask my Git history. But this post has been brewing for a while, and it’s time to share what happened when I stopped accepting the grunt work as “just part of the job.” The Story It’s 5 PM....

Why Mpho Mphego Might Be The World’s Worst AI Software And Data Engineer

5 Min The Story A completely unfair, deeply biased, and rigorously reasoned critique This post was inspired by Andrew Baker’s essay, “Why Andrew Baker Is the World’s Worst CTO”, which uses self-critique as a lens to expose what real technical leadership and engineering rigor actually look like. By ChatGPT, on...

How I Simplified LLM Telemetry Using Dual-Destination Observability Without Performance Degradation

Note: I haven’t written a blog post in over a year, so tread carefully! But this story felt worth sharing. The Story Picture this: You’re an engineer trying to convince (or shall I say, sell) Langfuse to your enterprise architect for LLM observability. You’ve done extensive homework and made the...

How To Enforce SQL Code Quality Using SQLFluff, Pre-Commit And GitHub Actions

The Story As a data engineer, one of your task is to ensure that you and everyone in your team is writing efficient and maintainable SQL code. This is crucial to the success of any data-driven project. However, ensuring that your SQL code adheres to best practices can be challenging,...

How An EC2 Instance Became My Go-To Remote Development Solution Using Terraform

The Story Due to strict network security policies enforced by tools like ZScaler causing endless installation failures and security warnings for Python dependencies on local development machine (work laptop). The constant need to reconfigure settings and whitelist packages to bypass these restrictions did not only cause disruption but also pose...

How To Automate Jira And Confluence Using Python

The Story So, I found myself getting frustrated with the time-consuming process of manually updating numerous Jira issues (Death-by-Admin)? Imagine having to create over 44 tickets with new descriptions and acceptance criteria. The mere thought of opening 44 tabs (on a simple 16GB RAM Dell laptop), copying & pasting data,...

How To Connect To AWS Athena Using DBeaver Community Edition Via AWS SSO

The Story As a data engineer, I find myself entrenched in Amazon Athena from verifying/validating source extracts to daily analysis, the struggle with AWS console is all too familiar. Its cumbersome nature-repetitive logins, navigations and manual query input challenges efficiency and creativity. Engaging solely through this console impedes agile data...

How To Verify Data Quality On Tables Landed On AWS Data Lake And Data Warehouse

The Story As a data engineer, the responsibility of ensuring data quality is not just a task - it’s a commitment to the integrity of insights derived from the vast volumes of data we manage. The accuracy and dependability of your insights depend on the quality of the data you...

How To Efficiently Extract Tables From MSSQL Server To A Data Lake

The Story As a Data Engineer, one of the core responsibilities is to ensure the optimal utilization of resources and minimize costs while performing data related work such as extractions and transfers. In this step-by-step guide, I’ll walk you through the process I followed when extracting tables from MicroSoft SQL...

Managing Jenkins Plugins

The Story I (well We, @AneleMakhaba and I) needed a way to get a list of all plugins installed on our production Jenkins instance in the format <plugin>: <version>. The motivation for that was to be able to install all plugins on our production Jenkins instance to our development Jenkins...

How I Setup Jenkins On Docker Container Using Ansible (Part 1)

The Story Recently, my team found themselves in a situation where they needed to have a staging or development Jenkins environment. The motivation behind the need for a new environment was that we needed a backup Jenkins environment and a place where new Jenkins users could get their hands dirty...

How I Setup Jenkins On Docker Container Using Ansible (Part 2)

The Story This post continues from How I Setup Jenkins On Docker Container Using Ansible (Part 1) In this post, we will detail how an auto-configured Jenkins environment was built and deployed as a Docker container. The Walk-through The setup is divided into 3 sections, Instance Creation, Containerization and Automation....

How I Uninstalled YouTube From Android TV

The Story Not sure about you, but the fact that some apps come pre-installed on your Android TV and you cannot remove them is a big deal to me. YouTube is one of them. Due to some inappropriate content found on YouTube, I decided to uninstall it. Pre-installed apps on...

How I Setup Jenkins On Docker Container Using Ansible (Part 3)

The Story This post continues from How I Setup Jenkins On Docker Container Using Ansible (Part 2) In this post, I will try to detail how to we deployed Jenkins environment using Ansible and configure Jenkins Jobs after system initialization. TL;DR The How Now that we have our EC2 instance...

Note To Self: How To Get A Complete Plugin List From Jenkins

The Story I needed a way to get a list of all plugins installed on our production Jenkins instance in the format <plugin>: <version>. The motivation for that was to be able to install all plugins on our production Jenkins instance to our development Jenkins instance(from a Dockerfile). As I...

Lunch And Learn - Security Hardening For Your Docker Environment

The Story This talk is aimed at SysAdmin/DevOps/Devs/SecExperts and/or intermediate Docker users and was motivated by this blog-post: How I Hardened The Security Of My Docker Environment In this video, I am going to be giving you an overview on how to harden the security of your Docker environment and...

I Signed Up For A Udacity's Digital Marketing Nano Degree, Here's Why!

The Story I am sure the first question running through your mind is, why did a Software Engineer decide to sign up for a Udacity’s Digital Marketing Nano Degree. It’s simple really, the world as we know it is driven by the internet and technology has been evolving at a...