














I teach English, I design lessons in English and in Mandarin, and I build the tools that produce them. Taiwan is where I want this work. Three things shape it:
Roles I am specialised in:
I have taught real classes. In 2020, three elementary classes a day into a bilingual school in Zhongshan, every lesson written from scratch before it ran: exercises, speaking work and assessment. In 2026 I taught for a month at a cram school in Taichung. I have also been the student. I started Mandarin at UCT in 2014 and I am still at it, so I know from the inside what a Chinese speaker finds hard about English.
AI architect or software engineer is where I do best. Three things shape it:
Everything else is open.
I work anywhere in the stack: front end, back end or full stack. I pick up an unfamiliar one quickly. My deepest is Golang on GCP. I have worked in Rails, Python and Java too, on Azure and AWS.

Taivara is a development house in Columbus, Ohio. It has 50+ years of experience across business consultation and end-to-end software development. It was founded in 2011. It works with Fortune 100 and mid-cap companies across the United States. Over half of the software engineers hold the Claude Certified AI Architect Professional qualification. Taivara is an Anthropic partner. Claude Code and agentic software are what the team learnt and uses every day.
The post is an AI Architect contract, open-ended. For the first 3 months I held it alongside Accelera Digital Group, from July to October 2024. Since then Taivara has been my sole contract. The agreement carries no exclusivity clause.
2 friends I went to highschool and university with were already at Taivara, so I had a strong referral. The deciding factor over Accelera Digital Group was the nomadic lifestyle it allowed.
The main project is the frictionless credit loan white label. Bread Financial own the product. They provide loan instalments and split payments through Comenity Bank in the United States. Their partners put their own name on the white label. The work is ticket-driven and the tickets arrive already architected. Alongside the product I built the automation test app, which exercises the application’s workflows end to end.
The par benchmark is 80 hours a month and 1,000 a year. My own goal is 100 a month and 1,200 a year. Most of the developers travel. I worked from Taiwan between 24 July and 23 August 2026.
Team: 15+ developers.
Cadence: standups Mon-Wed-Fri, 1:1s every second week.
Working week: US hours, remote from wherever I am.
In 2025 I billed over 1,000 hours. Taivara paid for my Claude Certified AI Architect Professional exam, and I hold the certification.
I bought an apartment at Cheverny for R700 000.
The stack, the remote arrangement and the contract terms are what keep me. I am still an AI Architect by title. I now also work as a sales representative for the firm. I find work for myself and partnerships for Taivara, in Taiwan and South Africa. Work has died down. Engineers at the firm are looking for new work, myself included.

Accelera Digital Group is Google Cloud’s largest partner in Africa. It works across Africa, Europe and the Middle East. Its areas are data analytics, AI and machine learning, security and cloud modernisation. It has since been named Google Cloud Partner of the Year for Africa twice, in 2025 and 2026. The team did cloud migrations and held the Google partner relationship. That meant full access to Google’s tooling, their people and their offices.
The vacancy was for a senior software engineer to lead clients through migrations onto GCP. I was given the Betika contract. It overlapped with the opening months at Taivara: I held both from July to October 2024.
Accelera offered senior-level work for good pay. The role carried a Google partner status.
Accelera’s business was moving its clients onto GCP. Mine was Betika, a betting house whose hosted product needed to be migrated. I studied that product first to establish what it was built on. The migration plan came out of what I found. I worked inside Betika’s own product management lifecycle, alongside their team. The Google partner relationship put their tooling, their people and their offices behind the work. Their workshops trained us to migrate a client’s systems case by case.
Team: Accelera’s engineers and Betika’s own team, working together on the migration.
Cadence: 2-week sprints, with planning, grooming and a retro.
Working week: one Google migration workshop in Johannesburg each week, with Betika’s internal meetings and an Accelera sync around it.
Betika was migrated to GCP.
I wanted to pursue a full career in the Taivara position, where I had found the work-life balance I wanted. I was burnt out running both posts. The Accelera work had little in it for me. I was migrating a betting house into GCP so people could bet on a high-frequency FIFA gaming platform. I went full time at Taivara.

SovTech is a South African development house. It builds enterprise software for international clients. It was founded in 2012 and rebranded as Scrums.com in 2024. Its client list includes Standard Bank, Vodacom, Deloitte, Ernst & Young and Transport for London. More than 400 companies have used it. It works from offices in Johannesburg, Cape Town, London, New York and Nairobi.
The vacancy was a software engineer seat banded 5 of 8, placed on a client project rather than on anything SovTech owned. I contracted into it independently. I was put on their utility product GK4.
It paid better than Celbux. I was working as an independent contractor. It was a larger and more corporate outfit, with high value clients. They had highly skilled development teams and daily lunches. It let me keep paying my home loan.
The client was a German utility-measurement company working at high scale. Their product GK4 was built around IoT devices metering hot water, cold water and electricity. One device sat on each source in a room. That repeated for every room on a floor, every floor in a building and every building in a developer complex. The platform covered the whole information lifecycle, from taking a reading off a device through to presenting it on a dashboard. I owned everything upstream of the dashboard. The whole project ran in German, codebase included.
Team: 15+ engineers.
Cadence: 2-week sprints, with daily standups and a weekly grooming session.
Working week: 09:00-17:00, Mon-Fri.
My quarterly report recorded that I performed on par with what was expected of me.
I left because the work held no interest for me. Developing and maintaining that software was too demanding for the reward it carried. Nothing in the project drew me in. Not the German, not the utility-measurement problem underneath it, and not the tech stack. The development lifecycle was too strict, and I averaged 180 hours a month over my last 2 months there. I took the openings at Taivara and Accelera Digital Group instead.

Celbux builds mobile vouchering banking solutions. For 10 years the company specialised in South African government disbursements, paying out to NSFAS (National Student Financial Aid Scheme) students. NSFAS is South Africa’s national student funding body, and its NSFAS Wallet runs on Celbux. Students draw their allowances at partner merchants nationwide. Celbux is a Google partner and the product is built on GCP. The product rests on smart money. Spend is locked into a voucher number, and that voucher is redeemable across the country.
The vacancy was for a senior software engineer to help lead the development branch of the company. It was permanent, and taking it meant relocating inland to Centurion. I was made responsible for a number of large-scale projects in the R&D department. I owned each of them end to end: blueprint, design, implementation, test, deploy and support. Dev teams ran under me on that work.
I had been out of work for 8 months. I was interviewing at a number of companies through OfferZen. Celbux was fintech and used Golang and GCP heavily. They wanted their Java monolith rewritten into Golang microservices.
The product was a Java monolith when I arrived. The company had already decided to move off it, and that rewrite was the main project. I completed it. The R&D half of the job ran alongside. It built whatever the business had already promised a client, before anything existed to show them. The platform paid out millions of rands a week in government disbursements, to NSFAS students and to farm workers. Throughput was what mattered.
Team: 10+ engineers, with dev teams under me on the R&D projects.
Cadence: a daily standup, then writing and reviewing code. Projects ran end to end rather than in fixed sprints.
Working week: Mon-Fri.
Celbux is where I learned Golang, GCP and how to build cloud systems at scale. My brother and I bought an apartment in the same city for R2 000 000.
The company ran out of funds and faced liquidation. A business of 32 employees shrank to 3. Many were retrenched. My brother became CTO. There was no money left for promotions. My title and my salary never moved since I joined. I had a home loan to maintain and 3 cats to keep, and I needed a new income. Celbux continues to survive on a streamlined team.

Blockbytes is a game studio and an official Minecraft Marketplace partner, working with Mojang Studios and Microsoft. It builds content for the Minecraft Marketplace. Its add-ons and maps reach players worldwide. It was founded in 2020 and runs on 40+ contractors. My brother already owned the company when I started working there.
The post was project managing the studio’s logo through to delivery. I wrote the specification and briefed the studio’s illustrators and animators. They did the drawing and the animation. It was unpaid.
It was a passion project and an investment in my brother’s business, not a job. I did it for free because I wanted him to succeed.
The studio wanted a logo it could use both statically and in motion. The brief had to carry the animation from the start rather than have it bolted on afterwards. I wrote the specification and ran it through the studio’s illustrators and animators across multiple iterations. At each round I decided what to keep, what to cut and what to change.
Team: me, the studio’s illustrators and its animators.
Cadence: flexible. The review rounds set the pace rather than a working week, and there were no fixed hours.
The logo was created and animated to the standard the game studio demanded. It is live on their website, and the animated version is attached.
The logo was delivered.

Masks For Africa was a venture I started with my brother James at the beginning of COVID, to sell personal protective equipment into the South African market. It was never formally constituted. There was no registration, no premises and no staff. It was a supply line from Chinese factories to South African buyers, and the software the two of us wrote to run it.
There was no vacancy behind this and no employer. I was a co-founder, self-employed and unpaid throughout. I ran the South African end with my brother James, while our business partner in China handled the factory side. The role was whatever the two of us could not pay somebody else to do: I built and ran the software, and I did the selling.
I took it because I needed money. The teaching job in China had fallen through. I had lost around R30 000 on plane tickets that were never flown. I set out to use the contacts I already had. Those contacts came out of the TEFL course in China, where the factories were. I thought I would make a lot of money during the crisis.
The venture needed a store, an order pipeline and a way to find buyers. I built all three. The architecture came straight off what I had learned at Luno. I ran the commercial end alongside the code. The enquiries, the factory relationships, the pricing and the paperwork were mine too.
The day began with the mailbox. Order enquiries came in constantly and each one had to be worked. Phone calls ran through the rest of it. A large part of each week went into tender applications. What was left went into buyer meetings and into streamlining our own processes.
Team: the two of us, plus our business partner in China on the factory side.
Cadence: no sprints and no ceremonies. The week was set by what came in.
Working week: no fixed hours.
We made no sales and took no profit. There was no salary and no drawings. By the end I was out of pocket on the hosting for our own tools, on top of the cost of the months spent unemployed. Multi-million-rand jobs came close and did not land. The tenders went the same way. Time was lost to scams, and contracts were lost for want of credentials we did not have.
The problem was capital. Our clients wanted the stock in South Africa. Every serious lead wanted to view it before committing. The factory pipeline we had in China required 50% upfront. The minimum order quantities on offer were beyond the capital we had. We did not have the import and export expertise to close that gap. I gave up on it and pivoted back into the tech industry. The architecture we had built is what I put in front of people. It landed me at Celbux.

Zhongshan Jizhong Sanxin Bilingual School was founded in 2001. It is in Sanxiang Town in Zhongshan, Guangdong province. The campus sits close to the Zhuhai border and the Macau crossing. It is a private, fully boarding bilingual school. It teaches from kindergarten to an international high school stream, on a campus of several thousand students. It hires foreign teachers directly to teach the English side.
The post was a direct hire teaching English to elementary classes, contracted to the school and meant to be worked on site in Zhongshan. It required a TEFL qualification before the school would sponsor it, and the training was taken in person in Cape Town in two parts:
The school sponsored the work permit. The Chinese Z visa was issued as single entry, valid for 6 months.
Mandarin is a passion of mine. I first took it at the University of Cape Town in 2014 and wanted to major in it, and I have kept studying it since. Living in China was the fastest way to move it forward, and teaching English was the way in.
COVID closed the borders before I flew, so the post was never worked the way it was written. The whole of it was taught remotely from South Africa into a classroom in Zhongshan. The school set the level and the class. I wrote every lesson before it ran. Preparation was the larger half of the day.
Team: I taught alone, to classes of 5+ pupils.
Cadence: 3 classes a day, each one written and prepared before it ran.
Working week: Mon-Thu, with Fridays off.
I never taught on site and I never took up the residence permit. I left with a few weeks of remote lessons. I kept the 2 TEFL qualifications.
The school cut my pay because I was still in South Africa and not in Zhongshan. At the reduced rate the position no longer covered me. My funds ran out and I forfeited the post. I started Masks For Africa with my brother James.

Luno is a retail cryptocurrency exchange and wallet. It was founded in Cape Town in 2013 as BitX and took the Luno name in 2017. It is one of the largest crypto exchanges in Africa. It has millions of customers across more than 40 countries. Digital Currency Group acquired it in 2020.
The vacancy was for a backend engineer on the rewards and wallet team. It was permanent, on the second of the company’s five engineering levels. The team held the wallet and the rewards product as one shared surface rather than splitting it by component.
Pay, balance and a company I actively wanted to work at. Luno had a reputation for better pay and for a better life alongside the job. The other half of it was the stack. I had built everything I knew on old tech. Moving to Golang on AWS was the expansion I needed.
The wallet is where customers hold and move their crypto. Rewards is the incentive layer built on top of it. Everything sat behind a live retail exchange, so the work was on systems already carrying customer money.
Team: 5+ engineers, plus the team’s own product owner and scrum master.
Cadence: sprints with planning, grooming, a retro and a daily standup.
Working week: 09:00-17:00, Mon-Fri.
I was paid a 13th cheque for the work I did there. There was no promotion: I joined at level 2 and left at level 2.
Mandarin is a passion of mine and has been since I first took it at UCT. I wanted to live inside the language rather than study it from a distance, so I resigned to teach English in China. Then spent the rest of the year acquiring a TEFL qualification, work permit and visa.

ACI Worldwide builds white-label banking software. It is listed on NASDAQ. More than 1,000 of the largest financial institutions and intermediaries worldwide run its software. Its flagship product is Postilion. Postilion is a payment switching, ATM driving and card management platform. Commercial banks, regional financial institutions and payment processors run it in South Africa and internationally. Most of the largest South African banks are on it.
The vacancy was for a junior backend engineer on the backend database team. It was permanent, and I went into it straight from finishing my degrees at UCT. The post paired development work on the data layer with a rotating level 3 support position. That rotation was the last line before the product team, so half the job was scheduled work and half was whatever the banks raised. ACI ran a four-level engineering ladder: junior, intermediate, senior and principal. I joined on the first level and left on the second.
Pay and domain. I had deliberately been unable to find good work in games development. Java, Python and SQL were the strongest things I carried out of the degree. This job wanted all three. It was also my first step into fintech. I remain in fintech today.
Postilion ran in most of South Africa’s large banks. The team owned the SQL and the raw data model underneath it, along with the Java services that ran against them. The other half of the job was the level 3 support rotation. That meant production incidents raised by the banks themselves, reproduced against real banking data and fixed at the database or in the Java above it. I took the rotation three times. It was the hardest position on the team to hold.
Team: 15+ engineers.
Cadence: 2-week sprints against sprint goals, with planning, grooming, a retro and a daily standup.
Working week: 08:00-17:00, Mon-Fri.
I was promoted to intermediate. I earned it by volunteering to take the level 3 support rotation over the Christmas holidays. My pay went from R310 000 a year to R360 000.
The promotion came with a raise that did not match what the industry was paying for the same work. I left for Luno.

The University of Cape Town is South Africa’s oldest university and the highest-ranked on the continent. Its Computer Science department is in the Faculty of Science, on the upper campus on the slopes of Devil’s Peak.
1 Bachelor of Science, taken with 2 majors: Computer Science and 3D Distributed Games Design.
My family paid for it and I took out no loans. My transcript is attached for your perusal.
I chose UCT for that ranking. I had been fascinated by computer technology for as long as I can remember. At school I was victor ludorum for Computer Applications Technology. I loved producing electronic music and digital art on my PC. The games design degree drew me.
I wanted to major in Mandarin, making my degree a triple major. I dropped the Mandarin and finished with 2 majors.
The teaching ran across five programming languages. Each was there for a different reason. Group project work ran alongside the courses for most of each term.
Afternoons went to tutoring and to my societies. I was a Computer Science tutor in my second and third years, paid R5000 a month. I tutored privately alongside that.
My extracurriculars took the rest of it:
Cadence: 4 courses a semester and 2 semesters a year, for 3 years. Practical and theory exams came round each term.
Working week: Mon-Fri, to the timetable rather than to fixed hours.
I completed a bachelors degree: BSc Computer Science and BSc 3D Distributed Games design.
The degrees were finished and I did not continue studying. I went into the backend database team at ACI Worldwide.

Blablabla Studios makes gambling games that run on slot machines in casinos around the world. It designs the slot games and the art and animation behind them for the iGaming industry. Its operators are across Europe, the Americas, Asia and Australia.
Fuzzy Logic Studio makes games in Unity, using AR and VR. It builds immersive training and visualisation for enterprise clients. Its portfolio includes Aston Martin, Anglo American, Hyundai, Nissan, Renault and Network Rail.
Two internships in my final year at the University of Cape Town, taken alongside my coursework: Blablabla Studios in January and Fuzzy Logic Studio in July. Neither studio had a vacancy to fill and neither internship was paid. Both agreed to take me onto the team for the experience, so each post was a seat on a working team rather than a job that was being hired for.
I needed line items on my CV, commercial work before I had my degree. I wanted a job in the games development industry. Both firms were local, and both said yes.
Both studios gave me small scoped tasks rather than an area to own. The two months went on products that were already shipping.
Blablabla Studios makes slot machine gambling games for casinos worldwide. Its games ran on an in-house engine called Mobile Mil. They were written in JavaScript because the Unity gambling licence was far too expensive. My piece of it was the game client’s link to the maths model that decides a spin.
Fuzzy Logic Studio builds AR and VR in Unity for enterprise clients. I was given scoped features on two projects. One was AR and the other VR. I took each feature from build through test to a merged build.
Team: 10+ engineers at each studio.
Cadence: a daily standup and a weekly backlog grooming.
Working week: 09:00-17:00, Mon-Fri.
At Fuzzy Logic I used a CI/CD pipeline for the first time. At Blablabla I integrated into an API for the first time.
Neither job was open-ended. I went back to finish my final year at the University of Cape Town.