2026-06-04
▶ Man vs. Ai
During an extended client meeting, we attempted to use Canva and ChatGPT to batch-process images. The goal was to remove backgrounds from over 1,000 photos, center the images, and save each product as a PNG. This was simple enough to explain during the meeting—and equally simple for a person to do manually—but it becomes expensive and time-consuming when the task must be repeated at scale.
Normally, I'm not a proponent of assigning visual work to LLMs, but the steps were straightforward enough that I was fully on board with helping construct the prompts to get the job done.
Our first attempt was with Canva, which unfortunately could not produce square (1x1) images. We ended up sinking nearly two hours into crafting prompts and trying to replicate a successful workflow within Canva. Either the prompts produced incorrect outputs, or the manual process restricted us from using certain features. In the end, we were unable to reduce the workload through Canva.
We then turned to ChatGPT. After about 30 minutes, we had a workable solution—but the service tier we were on throttled our efforts, allowing us to process only 10 images at a time. That meant we would have to run the prompt operations over 100 more times, all while hoping for no hallucinations.
While others were testing the ChatGPT method, I reviewed the steps—which seemed so simple in human-readable form—and decided to write a Python script to perform them instead. The Python scripting and ChatGPT efforts developed in parallel. Around the time the first ChatGPT batch finished, the Python script was completed, tested, and running.
Due to the service throttling, the Python script ultimately won out. It ran quietly in the background, processing the images while the rest of the team was still preparing the next batch of 10 for the LLM.
Repository URL & Photos Coming soon!
2026-05-06
▶ Sharing Perspectives with Clients on the limits of Ai
The temptation to make things easier, faster, and cheaper has led some folks to get a bit over their skis. Promises of shorter timelines, more features, and other wishlist items are often made—yet these tend to become lower priorities once teams actually meet to discuss deliverables. In those meetings, the benefit of having SMEs advising and contributing to the project direction is extremely valuable. Ultimately, that bit of due diligence saves project owners and stakeholders significant headaches, because they are the ones held accountable when things go wrong.
I had to explain to a client why images should not be generated through prompts for their ecommerce platform. My concern was this: if the LLM hallucinates and renders something inaccurately, and a customer makes a purchase based on that image, it opens the door for claims that the product was misrepresented in some way. I also had to explain why we couldn't simply pull photos from the internet—we would run afoul of intellectual property rights, which could become more trouble than it's worth down the road.
To complicate matters further, there were no stock photo vendors offering images of the client's specific inventory for purchase or licensing. The solution was to set up a small studio background and take the photos ourselves. That, of course, created more work—the images then had to be edited and renamed so they could be matched to the corresponding products in the inventory.
Throughout that process, I assured the client that while the time investment may feel less than ideal in the moment—and no one enjoys losing man-hours—the peace of mind on the backend makes it worthwhile. Not having to worry about potential cease-and-desist letters, changing terms of service, or litigation is well worth the extra effort in the long run.
2026-04-14
▶ Tech Consulting, Integrations and Automation
The short version of what I covered with the client:
We talked about managing API keys—those random characters that make the automagic happen—and how they tie into integrating third-party apps and automating internal workflows. We touched on payment processors, SMS alert systems, and AWS SES for keeping everyone in the loop.
We also dove into user access management (because not everyone needs the keys to the kingdom), consulted on system architecture, and—my personal favorite—undersold just enough to overdeliver and look like heroes. I walked them through the very real limitations of LLMs and content generation, because as impressive as they are, they arent not magic.
And finally, we had the ever-thrilling conversation about inventory management and why it's so important not to let bad practices build up inertia—because once that snowball starts rolling, it i s a lot harder to stop than you'd think. All in all, a productive chat with a healthy dose of reality checks.
2026-03-16
▶ UI Design and Dev in React
Building UIs in PHP & Bootstrap is officially a thing of the past. The orders came down from above—my employers decided we’re building everything with ReactJS & TypeScript now. Thankfully, I had a little React experience under my belt already, so the learning curve wasn’t too brutal. I’ve never really considered myself a UI person, but now that I’ve got this combo in my toolbox, I might start telling people I’m a Fullstack UI/UX API DB LMNOP DevOps Engineer.
2026-01-14
▶ Technical Debt and Legacy Systems: Case 1
Situation:
Mounting technical debt led to semi-automated processes without clear explanation or purpose, and no clear next steps or direction. Because these legacy systems and processes are so integrated with critical business workflows when problems arise technical teams are not empowered to take action. Instead what should be a simple update will turn into an all hands on deck meeting about risk, what should have been done before and how can we kick the can down the road in order to buy time. A standard resource pit
Problem:
The lack of Development and Test environments and no SMEs to define core acceptance tests. Processes that were presented as being automated were anything but. The skills and knowledge required to maintain the current systems were not adequately documented or sought out during the hiring process. This process became the metaphoric equivalent of the copy machine held together by duct tape and bubble gum. "As long as no-one breathed to hard on it, the system would be okay." But with organization needs and requirements constantly evolving, leaving the system as is became more untenable.
Solution:
I introduced a DjangoREST API as a micro service running behind AWS Lambda to standardize how data is taken in. Because this endpoint functioned as a general gateway for data, after the web application received an entry it would post the data to the Lamda Interface. Upon receipt of the entry data a microservice would process it, saving its contents in S3 as JSON data files holding submission data as well as paths to any attachments associated with it. From there a scheduled task on a separate system pulls the data then stores it in its final location.. Prior to this update our client would log in every morning to initiate the process, which involved several other scheduled tasks for transforming the data before it could be saved into the content manager.
The proof of concept was presented to the clients, additional notifications related had to be implemented to reassure stakeholders the process was still behaving as expected without the need for human involvement.
Result:
Reduced complexity and more robust solution. Additional benefits were the introduction of logs, retry policy and notifications.
2025-09-06
▶ 5k Win (The Freedom Run)
I let a friend convince me to participate in a local 5K hosted by his organization—that race turned out to be tougher than advertised. I crossed the finish line first overall. While the official times may suggest a comfortable margin, the reality was very different. Once you take the lead, the pressure to hold it can be intense, and every step to the finish demands focus and determination.
This marked my first, first overall, win; making it a very rewarding achievement. …sweet victory
2025-07-06
▶ Python3 IsoMetric Tiling Engine
Rebuilt the old Java tiling engine in Python, just to see if I could. Because a lot of the math had already been worked out, it was not to difficult. The means were different, but the methods to calculate and render accurately are still the same. As an added bonus/challenge I took a stab at hexagonal tiling and design. My love of video games made this rewarding on such a deep level. The next logical step here would be to make a few small scale games if I can just find the inspiration.
XXXX-XX-XX
▷ Big Distance Energy
2024-06-02
▶ Project Cold Plunge 1.0
Cold plunging was a craze that swept through the fitness community and got a foothold in social media space. Even though trends can gather widespread popularity and acceptance the results may vary or be fudged. So I had to see for myself if this was something I could benefit from.
My first times cold plunging yielded benefits very early on. Aches and pains from marathon training were winning the battle. There are only so many hours in a day, if a certain amount of time is spent training then a certain amount of time will have to be spent recovering. One of the ideas in training is being more efficient and effective with your timing. I believe as an athlete you should also be efficient and effective with the time you spent recovering. I.E if you're dedicating X hours sleep, Y Hours to other passive recovery methods and Z hours to active recovery methods. How do we get the most out of each? I found one of the answers to be cold plunging. It helped me deal with swelling and got me to relaxed meditative states.
I started out using a local wellness and recovery companies cold plunging service, that enabled me to run longer and train harder. Which meant I needed to plunge more to mitigate the wear and tear, before an injury sidelined me. This had the potential to be very expensive but the cost/benefit was still in a good place so far. This prompted the thought "why don't I just do it myself?" If I can plunge as much as I wanted, whenever I wanted for however long I wanted I thought I could squeeze more of a benefit from the equation. So based on what I knew about the process and with a little additional research I built my own fully functional cold plunge. And my friends let me test it out on them.... or used the fact that I had it to their advantage.
Need: Better way to Deal with the Wear and Tear of Running
Solution: Cold Plunging
Secondary Need: Cheaper more convenient way to cold Plunge.
Secondary Solution: DiY Cold Plunging
Impact: Can sustain higher Mileage with no physical problems. Although running 112 miles in a week takes time away from so many other things. Proposed solution... figure out how to become a professional lol
2023-06-16
▶ First Sub 3 Marathon (Grandma's Marathon)
Finishing a marathon in under 3 hours has been one of the most rewarding running goals because it was the result of dedication, discipline and perseverance. No matter how much you prepare you still end up experiencing setbacks and adversity during the race. This distance will test your mental resilience and ability to fight through discomfort. I feel that the marathon is a great analogy for life where that deep sense of commitment and determination can turn challenges into success.
2023-07-15
▶ First Sub 18 5k (Rosé 5k)
2021-06-21
▶ Process Improvement and Automation Scripts
Writing automation scripts is an exercise in architectural discipline, that involves building reusable and maintainable utilities as tools to improve processes.
Repositories used to document and govern scripts help establish better means of sharing tools and libraries that will promote reuse across teams. Applying software engineering principles to process improvement shifts focus from short-term efficiency gains through adhoc scripting to building scalable/resilient foundations that reduce technical debt and enforce compliance. This is how you empower an organization to adapt workflows rapidly with confidence.
2020-02-03
▶ Web Modernization: Migrating from Virtual Hosts to Containers
Situation:
The organization finds itself trapped on old infrastructure because of high coupling, low cohesion and mountains of technical debt related to short term decision making. That reality made patching and upgrading systems not only expensive, but time consuming as well. Addressing bugs or applying fixes could take multiple weeks from the time a change started to additional days troubleshooting outside of the change window. Disaster recovery was also more of an art than a science, so unplanned outages would plague the organization and institution in ways I had never seen before.
Problem:
A majority of the legacy systems were old enough that vendors would not offer full support. Also the way virtualization was handled meant only a couple of engineers at a time would have the required knowledge to bring a system back to business as usual.
Solution:
Cloud-native development was already sweeping through the industry, making tech stacks everywhere more flexible and less tied to underlying hardware. Using a lift and shift strategy as a baby step to help align the organization with the goal of modernizing, applications and services that were once hosted through on premise legacy hardware was hosted in the cloud. From there I was able to decouple and remove dependencies from these applications with the cloud services offered by AWS. Any software with major dependencies were spun off from the large cluster and run in containers that supported its unique requirements. Software that could be upgraded was placed on track to be upgraded/patched tested than deployed. What started out as a large legacy cluster became smaller micro services that were handled by the respective SMEs and dealt with over time.
Result:
Through my contributions to the Web Modernization effort I introduced improved resource utilization, lifecycle management and improvements to web disaster recovery procedures by leveraging Infrastructure as Code (IaC), containers and Orchestration. These contributions led to our tech stacks being more scalable, flexible, portable and cohesive.
2019-11-10
▶ The Power of the Tiny Link
Situation:
There was no standard set for marketing, organizations and departments had a Wild West approach to directing client traffic to desired URL. Some methods appeared more successful than others, but there was no way to tell which worked from the ones that were ineffective.
Problem:
The organization needs to overcome the barrier that separates digital and physical media. Physical media is more effective when it is simple, memorable and trustworthy. Digital media tends to use URLs which were long, difficult to deal with and did not communicate professionalism.
Solution:
A bespoke PHP application that enabled branding and analytics in ways that were previously unavailable to the Organization. By Leveraging AWS Cloud Services, ECS & RDBMS, I was able to provide the organization with a solution they could use to fill their analytics vacuum. This application collected data points that shed additional light on usage patterns such as user location, time of day, URL referrer and types of devices used when interacting with a URL.
Result:
The URL shortener bridged the gap between the tangible infrastructure that makes up the internet and the intangible nature of peoples need for simplicity, clarity and trust. Within the first year this application registered over a million uses and had widespread adoption into marketing workflows.
2019-06-24
▶ Color Palette Program
Using the Munsell Hues Color wheel, a system for organization colors, I developed a small script using a few Python libraries that allowed me to selectively 'mute' colors to make others pop more. the Munsell Hues color wheel helps scientists and artists communicate colors with a higher level of precision by arranging them into evenly spaced hues, based on perception. The wheel makes color selection more systematic and reliable.
2018-08-07
▶ Java Engine Isometric Tiling Engine
I enjoy the challenge of isometric tiling because it is an art that at a minimum requires precision. Once you've mastered being precise the sky is the limit. Isometric tiling can be challenging because it requires careful alignment and consistent angles to maintain an illusion of three dimensional space, on a flat surface. Small measurement errors in the angles or length of the edges can distort the overall pattern and shatter the illusion due to the lack of symmetry. Maintaining seamless repetition across large areas is also difficult because a variety of shapes and layers must fit together perfectly without gapping or overlapping. The combination of both technical and visual demands make isometric tiling an art of patience and precision
EOF;
© 2026 - Andrew Mbiam