Photograph
  • Specialties: AI Systems Architecture, Golang, GCP | 10+ years
  • Languages: English, Chinese
  • Date of Birth: August 16, 1996
  • Location: Taiwan/South Africa
  • Availability: Immediately
  • Contact: ghvvilson@gmail.com
  • GitHub: github.com/HappySaila

Ideal next job in language

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:

  1. Taiwan, anywhere in it. For a teaching post I will relocate and work on site permanently. Taipei, Taichung, Kaohsiung, Tainan or a smaller town, it makes no difference to me. Lesson and curriculum design I will also do remotely, on your timetable, from Taiwan or from South Africa.
  2. Qualified to be hired. TEFL certified, with a BSc from the University of Cape Town. A South African passport is on Taiwan’s list for foreign English teachers, and I am applying for an Employment Gold Card.
  3. I design lessons with AI, in English and in Mandarin. I am a Claude Certified AI Architect Professional and AI systems are my day job, so this is not a teacher who has read about it. Give me a syllabus and a class, and I will produce the grammar explanations pitched at their level, the drills that step up as they improve, pronunciation practice aimed at the sounds that class actually gets wrong, worksheets at three difficulties for the same lesson, speaking prompts, tests and the marking guide. A term of material in a day, and the tooling to do it again next term.

Roles I am specialised in:

  • In the classroom. A timetable at a school, a cram school or a kindergarten. Any age group, any level.
  • Behind it. Lesson and curriculum design, written to your syllabus and taught by someone else.
  • Adults. Business English, exam preparation and one to one.
  • The tooling. Building the AI that plans the lessons, for a school or an edtech company. Not a private trick I keep to myself: something the whole staff room runs, so one teacher’s best worksheet becomes the template every teacher starts from, in one house style, ready for the next intake. New teachers included, on their first week.

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.

Ideal next job in tech

AI architect or software engineer is where I do best. Three things shape it:

  1. Remote, with one exception. I am based between South Africa and Taiwan and I work from both. I can hold my schedule to the business and make daily online calls. The exception is Taiwan: for the right position I will relocate there and work on site permanently. Anywhere else, remote is how I work.
  2. Contract preferred, permanent considered. I invoice as an independent South African contractor, so there is no visa, work permit, sponsorship or payroll to arrange. I am open to any length from a single month and can bill hourly. Permanent is worth talking about, particularly in Taiwan, where I am currently applying for an Employment Gold Card.
  3. I build with AI. I hold the Claude Certified AI Architect Professional certification. Claude Code and agentic tooling are how I deliver production work.

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.com

The organisation

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 role

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.

Why I took it

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 work

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.

  • Full-stack delivery on a white-label financial product.
  • Backend feature work in Ruby and Rails.
  • Front-end feature work in TypeScript.
  • Content and configuration in YAML and JSON.
  • Agentic delivery, with Claude Code as the primary tooling.
  • End-to-end browser automation suites in Playwright.

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.

Outcome

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.

Why I’m still there

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.

adg.io

The organisation

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 role

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.

Why I took it

Accelera offered senior-level work for good pay. The role carried a Google partner status.

The work

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.

  • Cloud migration of a hosted third-party product onto GCP.
  • Discovery and assessment of an unfamiliar production system.
  • Migration planning drawn from that assessment.
  • Delivery embedded inside a client’s own development lifecycle.

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.

Outcome

Betika was migrated to GCP.

Why it ended

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.

scrums.com

The organisation

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 role

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.

Why I took it

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 work

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.

  • Data processing pipelines from hardware devices through to live dashboards.
  • IoT telemetry ingestion at scale.
  • Message broker integration between collection and storage.
  • Time-series data storage.
  • Delivery in a second language, 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.

Outcome

My quarterly report recorded that I performed on par with what was expected of me.

Why it ended

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.com

The organisation

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 role

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.

Why I took it

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 work

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.

  • Monolith-to-microservices migration from Java to Golang, onto a public cloud.
  • High-throughput payment and disbursement systems.
  • Event-driven and serverless architecture on GCP: Pub/Sub, Datastore, BigQuery, App Engine, Cloud Functions, Compute Engine and Kubernetes.
  • Data-driven API design.
  • Bulk disbursement tooling and an automated guarantee testing engine.
  • KYC and identity verification tooling.
  • Client-facing demos and prototypes stood up in pre-production environments.
  • Cloud resource and billing budget ownership.

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.

Outcome

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.

Why it ended

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.net

The organisation

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 role

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.

Why I took it

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 work

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.

  • Creative specification and detailed requirements for a brand asset.
  • Art direction across a team of external illustrators and animators.
  • Asset preparation for animation: layered source files, one element per layer.
  • Motion specification written element by element for the animators.

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.

Outcome

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.

Why it ended

The logo was delivered.

github.com

The organisation

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.

The role

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.

Why I took it

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 work

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.

  • An online store and the order management system behind it, in Golang on GCP.
  • Microservice architecture built from nothing.
  • Automated invoicing through an order pipeline.
  • Automated lead generation by scraping a public professional network.
  • Public-sector and enterprise tender applications.
  • Commercial ownership alongside delivery: pricing, contracts, invoices and supplier relationships.

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.

Outcome

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.

Why it ended

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.

The organisation

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 role

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:

  • 120-hour TEFL/TESOL programme, The International TEFL Organization. Grammar structure and how to teach it, materials creation, evaluation and testing, and the integrated skills of listening, speaking, reading and writing.
  • 20 Hour Practical TEFL Teaching Course, TEFL SA. Teaching practice with feedback, discipline and classroom management, elicitation, concept checking, error correction, drama and role play, pronunciation, and teaching young learners.

The school sponsored the work permit. The Chinese Z visa was issued as single entry, valid for 6 months.

Why I took it

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.

The work

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.

  • Teaching to fixed classes, on a client’s own timetable.
  • Lesson material written from scratch: exercises, speaking work and assessment.

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.

Outcome

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.

Why it ended

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.com

The organisation

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 role

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.

Why I took it

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 work

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.

  • Backend microservices in Golang on AWS.
  • Wallet systems holding and moving customer funds.
  • An incentive and rewards layer over a core financial product.

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.

Outcome

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.

Why it ended

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.

aciworldwide.com

The organisation

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 role

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.

Why I took it

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.

The work

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.

  • Relational data modelling and SQL behind a payments platform.
  • Backend services in Java against a production data layer.
  • Third-line production support on a live banking system.
  • Reproducing and fixing customer-raised defects under a support SLA.

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.

Outcome

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.

Why it ended

The promotion came with a raise that did not match what the industry was paying for the same work. I left for Luno.

uct.ac.za

The organisation

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.

The role

1 Bachelor of Science, taken with 2 majors: Computer Science and 3D Distributed Games Design.

  • First year: Computer Science 1015 and 1016, Mathematics 1000, General Physics A and B, Mandarin 1A and 1B.
  • Winter term: Introductory Statistics.
  • Second year: Computer Science 2001 and 2002, Computer Games & Simulation, Systems Analysis, Systems Design & Development, Business Intelligence Analysis, Introduction to Astronomy.
  • Third year: Computer Science 3002 and 3003, 3-D Distributed Games Design, C++ With Applications, Applied Statistics.

My family paid for it and I took out no loans. My transcript is attached for your perusal.

Why I took it

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 work

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.

  • Assembly and C++ for the low-level half: how a machine executes and what memory costs.
  • Java for object-oriented programming.
  • Python for scripting, and for the coursework that was about the problem rather than the plumbing.
  • C# for Unity and OpenGL game development.
  • Group projects in small teams, to deadlines that did not move.

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:

  • Latin and Ballroom Dance Society: 3 years. Reached advanced grade in the third year. Placed 5th for Latin and 3rd for ballroom at intervarsity.
  • UCT Gymnastics Society: 3 years, and a place on the national trampoline dodgeball team.
  • Chess club: played for the club, with an online rating that peaked at 2169.
  • Capoeira society: trained in Brazilian martial arts.
  • Computer Science Society: a member. It ran the coding competitions, game jams and hackathons.

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.

Outcome

I completed a bachelors degree: BSc Computer Science and BSc 3D Distributed Games design.

Why it ended

The degrees were finished and I did not continue studying. I went into the backend database team at ACI Worldwide.

blablablastudios.comfuzzylogicstudio.io

The organisation

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.

The role

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.

Why I took it

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.

The work

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.

  • API integration between a game client and a backend service.
  • Feature work in JavaScript on a proprietary game engine.
  • Manual testing and bug fixing across a shipped catalogue.

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.

  • Feature development in C# on Unity, in both AR and VR.
  • Self-testing and defect fixing on delivered features.
  • Changes taken through a CI/CD pipeline to a shared build.

Team: 10+ engineers at each studio.
Cadence: a daily standup and a weekly backlog grooming.
Working week: 09:00-17:00, Mon-Fri.

Outcome

At Fuzzy Logic I used a CI/CD pipeline for the first time. At Blablabla I integrated into an API for the first time.

Why it ended

Neither job was open-ended. I went back to finish my final year at the University of Cape Town.

照片
  • 專長: AI 系統架構、Golang、GCP|10 年以上經驗
  • 語言: 英文、中文
  • 出生日期: 1996 年 8 月 16 日
  • 所在地: 台灣/南非
  • 到職時間: 隨時
  • 聯絡方式: ghvvilson@gmail.com
  • GitHub: github.com/HappySaila

理想的下一份工作:語言

我教英文,我設計英文與中文的課程,也開發產出這些課程的工具。台灣就是我想做這份工作的地方。有三件事決定了它的樣子:

  1. 台灣,哪裡都可以。 只要是教學職缺,我願意搬過去長期到現場上班。台北、台中、高雄、台南,或是更小的鄉鎮,對我來說都一樣。課程與教材設計我也可以遠端做,配合貴校的時程,人在台灣或南非都行。
  2. 具備受聘資格。 持有 TEFL 證照,並擁有開普敦大學理學士學位。南非護照在台灣認可的外籍英語教師國籍名單上,我目前也正在申請就業金卡。
  3. 我用 AI 設計課程,中英文都可以。 我持有 Claude Certified AI Architect Professional 認證,AI 系統就是我的本業,所以這不是一個只讀過相關文章的老師。給我一份課綱和一個班級,我可以產出切合他們程度的文法講解、隨著進步逐步加難的練習、針對這個班真正念錯的音所設計的發音練習、同一堂課三種難度的學習單、口說題目、測驗,以及評分標準。一天做完一學期的教材,連下學期再做一次的工具也一起交給你。

我擅長的職務類型:

  • 站在教室裡。 學校、補習班或幼兒園的固定課表。任何年齡層,任何程度。
  • 站在教室後面。 課程與教材設計,依貴校課綱撰寫,交給別的老師去上。
  • 成人。 商務英文、考試準備與一對一。
  • 開發工具本身。 為學校或教育科技公司開發規劃課程的 AI。這不是我自己私藏的技巧:而是整個教師辦公室都能用的東西,讓一位老師做得最好的那份學習單,成為每位老師的起始範本,風格統一,下一屆招生就能直接沿用。新進老師第一週就能上手。

我教過真正的班級。2020 年,每天三堂小學課程,遠端上到中山一所雙語學校,每一堂課都在上課前從零寫起:練習、口說活動與評量。2026 年我在台中的一間補習班教了一個月。我也當過學生。我從 2014 年在開普敦大學開始學中文,至今沒有停過,所以我很清楚中文母語者學英文時,卡住的地方在哪裡。

理想的下一份工作:技術

AI 架構師或軟體工程師是我最擅長的位置。有三件事決定了它的樣子:

  1. 遠端,只有一個例外。 我往返於南非與台灣之間,兩地都工作。我可以把作息配合公司,參加每天的線上會議。例外是台灣:只要職位合適,我願意搬過去長期到辦公室上班。除此之外,遠端就是我的工作方式。
  2. 偏好約聘,正職也可以談。 我以南非獨立承包商的身分請款,所以不需要處理簽證、工作許可、擔保或薪資結算。短至一個月的任何長度我都接受,也可以按時計費。正職值得談,尤其是在台灣,我目前正在申請就業金卡。
  3. 我用 AI 開發。 我持有 Claude Certified AI Architect Professional 認證。Claude Code 與代理式工具就是我交付正式環境成果的方式。

其他都可以談。

技術堆疊裡的任何位置我都能做:前端、後端或全端,不熟悉的也上手得快。我最深的是 GCP 上的 Golang,另外也用過 Rails、Python 與 Java,在 Azure 與 AWS 上。

taivara.com

公司介紹

Taivara 是一家位於美國俄亥俄州哥倫布市的軟體開發公司。 團隊在商業顧問與端到端軟體開發上累積了 50 年以上的經驗。 公司成立於 2011 年,客戶是美國的財星百大與中型企業。 超過一半的軟體工程師持有 Claude Certified AI Architect Professional 認證。 Taivara 是 Anthropic 的合作夥伴。 Claude Code 與代理式軟體是團隊學會、而且每天都在用的東西。

擔任職務

這是一份 AI 架構師的約聘職位,沒有設定結束日期。 最初 3 個月我同時扛著 Accelera Digital Group,時間是 2024 年 7 月到 10 月。在那之後,Taivara 是我唯一的合約。 合約裡沒有專屬條款。

任職動機

兩位高中和大學時期的朋友已經在 Taivara,我因此拿到很強的引薦。 相對於 Accelera Digital Group,決定性的因素是它容許的游牧式生活。

工作內容

主要專案是無摩擦信用貸款的白牌產品。產品由 Bread Financial 所有,他們透過美國的 Comenity Bank 提供分期貸款與拆分付款,合作夥伴再把自己的名字掛在這套白牌產品上。工作以工單驅動,而且工單送到手上時架構已經定好。在產品之外,我還建了自動化測試應用程式,端到端地跑過整套系統的流程。

  • 白牌金融產品的全端交付。
  • 以 Ruby 與 Rails 開發後端功能。
  • 以 TypeScript 開發前端功能。
  • 以 YAML 與 JSON 維護內容與設定。
  • 以 Claude Code 為主要工具的代理式交付。
  • 以 Playwright 撰寫端到端的瀏覽器自動化測試。

標準門檻是每月 80 小時、每年 1,000 小時,我自己的目標是每月 100 小時、每年 1,200 小時。 多數開發者都在旅行中工作。2026 年 7 月 24 日到 8 月 23 日,我人在台灣工作。

團隊:15 位以上開發者。
節奏:週一、週三、週五站立會議,每兩週一次一對一。
工時:配合美國時區,人在哪裡就從哪裡遠端工作。

工作成果

2025 年我請款超過 1,000 小時。 Taivara 支付了我的 Claude Certified AI Architect Professional 考試費用,這張認證我也拿到了。

我以 700,000 南非幣在 Cheverny 買下一間公寓。

留任原因

技術堆疊、遠端的安排,以及合約條件,是留住我的原因。 我的職稱仍然是 AI 架構師。 現在我同時也擔任公司的業務代表。 我為自己找案子,也為 Taivara 在台灣與南非找合作夥伴。 案量已經降下來,公司裡的工程師都在找新的工作,包括我自己。

adg.io

公司介紹

Accelera Digital Group 是 Google Cloud 在非洲最大的合作夥伴。 業務橫跨非洲、歐洲與中東。 專長領域是資料分析、AI 與機器學習、資訊安全,以及雲端現代化。 公司此後兩度獲選非洲區 Google Cloud 年度最佳夥伴,分別是 2025 年與 2026 年。 團隊負責雲端遷移,並維繫與 Google 的夥伴關係。 這代表我們能完整用到 Google 的工具、他們的人,以及他們的辦公空間。

擔任職務

這個職缺是資深軟體工程師,帶著客戶完成遷移到 GCP 的過程。 我被指派到 Betika 這個合約。 它與我在 Taivara 的最初幾個月重疊:2024 年 7 月到 10 月,兩份工作我同時扛著。

任職動機

Accelera 給的是資深層級的工作,待遇也不錯。 這個職位還帶著 Google 合作夥伴的身分。

工作內容

Accelera 的生意是把客戶搬上 GCP。我的客戶是 Betika,一家博弈公司,他們託管的產品需要遷移。我先把那套產品研究一遍,弄清楚它建構在什麼之上,遷移計畫就是從這份調查結果長出來的。我在 Betika 自己的產品管理流程裡工作,與他們的團隊並肩。Google 的夥伴關係把他們的工具、他們的人與他們的辦公空間放在這件事背後,他們的工作坊也逐案訓練我們怎麼遷移客戶的系統。

  • 將第三方託管產品遷移至 GCP。
  • 對陌生的正式環境系統進行盤點與評估。
  • 依評估結果擬定遷移計畫。
  • 嵌進客戶自身開發流程中的交付方式。

團隊:Accelera 的工程師與 Betika 自己的團隊,一起做這次遷移。
節奏:2 週一個衝刺,包含規劃、整理與回顧。
工時:每週在約翰尼斯堡參加一場 Google 遷移工作坊,其餘時間排入 Betika 的內部會議與 Accelera 的同步會議。

工作成果

Betika 已經完成遷移到 GCP。

離職原因

我想把 Taivara 這個位置走成完整的職涯,我在那裡找到了想要的工作與生活平衡。 同時扛兩份工作讓我倦怠。 Accelera 的工作對我來說收穫有限:我做的是把一家博弈公司搬上 GCP,好讓人們在高頻的 FIFA 遊戲平台上下注。 我轉為全職投入 Taivara。

scrums.com

公司介紹

SovTech 是一家南非的軟體開發公司,為國際客戶打造企業級軟體。 公司成立於 2012 年,2024 年更名為 Scrums.com。 客戶名單包括 Standard Bank、Vodacom、Deloitte、Ernst & Young 與 Transport for London。 超過 400 家企業用過它的服務。 辦公室分布在約翰尼斯堡、開普敦、倫敦、紐約與奈洛比。

擔任職務

這個職缺是軟體工程師,職級為八級中的第五級,被派到客戶專案上,而不是 SovTech 自己的產品。 我以獨立承包商的身分簽約進去。 我被分到他們的公用事業產品 GK4。

任職動機

它給的比 Celbux 多,而我當時是獨立承包商。 這是一家規模更大、更企業化的公司,客戶的價值也更高。 他們有技術很強的開發團隊,還天天供餐。 這份工作讓我能繼續繳房貸。

工作內容

客戶是一家德國的公用事業計量公司,規模很大。他們的產品 GK4 以物聯網裝置為核心,量測熱水、冷水與電力。一個房間裡的每一個來源各裝一台裝置,這樣的配置再乘上一層樓的每個房間、一棟建築的每一層樓,以及一個開發案裡的每一棟建築。平台涵蓋完整的資訊生命週期,從裝置讀出數值一直到儀表板上的呈現。儀表板之前的所有環節都由我負責。整個專案以德文進行,連程式碼庫也是。

  • 從硬體裝置一路到即時儀表板的資料處理管線。
  • 大規模的物聯網遙測資料接收。
  • 蒐集端與儲存端之間的訊息佇列串接。
  • 時間序列資料的儲存。
  • 以第二外語交付,包含程式碼庫在內。

團隊:15 位以上工程師。
節奏:2 週一個衝刺,每日站立會議,每週一次待辦整理。
工時:週一至週五,09:00-17:00。

工作成果

我的季度考核紀錄寫著,我的表現符合對我的期待。

離職原因

我離開,是因為這份工作引不起我的興趣。 開發與維護那套軟體要付出的,遠超過它帶來的回報。 這個專案沒有一點吸引我:德文不是,底下那個公用事業計量的問題不是,技術堆疊也不是。 開發流程過於嚴格,最後兩個月我平均每月工時 180 小時。 我改去接下 Taivara 與 Accelera Digital Group 的機會。

celbux.com

公司介紹

Celbux 開發行動票券式的銀行解決方案。 公司十年來專注於南非政府的補助款發放,對象是 NSFAS(國家學生財務援助計畫)的學生。 NSFAS 是南非全國性的學生補助機構,它的 NSFAS Wallet 就跑在 Celbux 上。 學生可以在全國的合作商家領取並使用自己的補助金。 Celbux 是 Google 合作夥伴,產品建構在 GCP 上。 產品的核心是智慧金流:可支用的金額被鎖進一組票券號碼,這組票券在全國通用。

擔任職務

這個職缺是資深軟體工程師,要協助帶領公司的開發部門。 屬於正職,接下它意味著搬到內陸的 Centurion。 我被指派負責研發部門的數個大型專案。 每一個都由我從頭顧到尾:藍圖、設計、實作、測試、部署與後續支援。 這些專案底下有開發團隊由我帶。

任職動機

我當時已經失業 8 個月,正透過 OfferZen 面試好幾家公司。 Celbux 屬於金融科技,而且大量使用 Golang 與 GCP。 他們想把 Java 的單體系統改寫成 Golang 微服務。

工作內容

我到職時產品還是一套 Java 單體系統。公司已經決定要離開它,那個改寫就是最主要的專案,而我把它做完了。研發那一半的工作同時進行,負責把業務已經對客戶承諾、但還什麼都沒有的東西做出來。這個平台每週發出數百萬南非幣的政府補助款,對象是 NSFAS 學生與農場工人,吞吐量是最關鍵的事。

  • 從 Java 單體系統遷移到 Golang 微服務,並搬上公有雲。
  • 高吞吐量的支付與補助款發放系統。
  • GCP 上的事件驅動與無伺服器架構:Pub/Sub、Datastore、BigQuery、App Engine、Cloud Functions、Compute Engine 與 Kubernetes。
  • 資料驅動的 API 設計。
  • 批次撥款工具與自動化的保證測試引擎。
  • KYC 與身分驗證工具。
  • 在預備環境中架起面向客戶的展示與原型。
  • 雲端資源與帳務預算的管理責任。

團隊:10 位以上工程師,研發專案底下還有開發團隊由我帶。
節奏:每日站立會議,其餘時間寫程式與審查程式碼。專案以端到端的方式推進,而不是切成固定衝刺。
工時:週一至週五。

工作成果

Celbux 是我學會 Golang、GCP,以及如何建構大規模雲端系統的地方。 我和兄弟在同一座城市以 2,000,000 南非幣買下一間公寓。

離職原因

公司資金耗盡,面臨清算。 32 人的公司縮到 3 人,許多同事被資遣。 我的兄弟接任技術長。 公司沒有餘力升遷,從我到職起,我的職稱與薪資都沒有動過。 我有房貸要繳,還養著 3 隻貓,需要新的收入。 Celbux 以精簡後的團隊繼續存活著。

blockbytes.net

公司介紹

Blockbytes 是一家遊戲工作室,也是 Minecraft Marketplace 的官方合作夥伴,與 Mojang Studios 及 Microsoft 合作。 公司為 Minecraft Marketplace 製作內容。 它的擴充內容與地圖觸及全球玩家。 公司成立於 2020 年,由 40 位以上的外包夥伴支撐。 我開始參與時,公司已經是我兄弟的。

擔任職務

這個位置負責把工作室的商標從發想一路管到交付。 我寫規格,並向工作室的插畫師與動畫師說明需求。 實際的繪製與動畫由他們完成。 這份工作沒有報酬。

任職動機

這是一個出於熱情的專案,也是對我兄弟事業的投資,而不是一份工作。 我免費做,因為我希望他成功。

工作內容

工作室要的是一個靜態與動態都能用的商標。需求從一開始就得把動畫算進去,而不是事後再加上。我寫下規格,交給工作室的插畫師與動畫師,來回跑過多輪修改。每一輪我都決定哪些留下、哪些刪掉、哪些要改。

  • 品牌資產的創意規格與細部需求撰寫。
  • 帶領外部插畫師與動畫師的美術指導。
  • 為動畫準備素材:分層原始檔,一個元件一層。
  • 逐一元件寫出給動畫師的動態規格。

團隊:我,加上工作室的插畫師與動畫師。
節奏:彈性。步調由審稿輪次決定,而不是由工作週決定,也沒有固定工時。

工作成果

商標依遊戲工作室要求的水準完成製作與動畫。 它目前用在他們的官方網站上,動態版本已附在下方。

離職原因

商標交付完成。

github.com

公司介紹

Masks For Africa 是 COVID 剛開始時,我和兄弟 James 一起做起來的事業,把個人防護裝備賣進南非市場。 它從來沒有正式設立,沒有登記、沒有辦公室,也沒有員工。 它就是一條從中國工廠到南非買家的供應線,加上我們兩個人自己寫的軟體。

擔任職務

這背後沒有職缺,也沒有雇主。 我是共同創辦人,全程自僱,而且從頭到尾沒有領過薪水。 我和兄弟 James 顧南非這一端,中國的合作夥伴顧工廠那一端。 這個角色就是我們兩個人請不起別人做的所有事:我建了軟體也維運它,銷售也是我在跑。

任職動機

我做它,是因為我需要錢。 中國的教職沒了,我在沒有飛成的機票上損失了大約 30,000 南非幣。 我打算用手上既有的人脈,而那些人脈來自我在中國的 TEFL 課程,工廠就在那裡。 我以為自己會在這場危機裡賺到一大筆錢。

工作內容

這門生意需要一個商店、一條訂單流程,還有找到買家的辦法,這三件事都是我建的。架構直接沿用我在 Luno 學到的東西。我一邊寫程式,一邊扛商務端:詢價、工廠關係、定價與文件作業也都是我的。

  • 以 Golang 在 GCP 上建置線上商店與背後的訂單管理系統。
  • 從零打造微服務架構。
  • 透過訂單流程自動開立發票。
  • 以爬取公開職業社群網站的方式自動開發潛在客戶。
  • 公部門與企業標案的投標作業。
  • 交付之外同時扛商務責任:定價、合約、請款與供應商關係。

一天從信箱開始。訂單詢問不斷進來,每一封都得處理,其餘時間被電話填滿。 每週有很大一部分投入標案,剩下的時間拿去跟買家開會,以及把我們自己的流程理順。

團隊:我們兩個人,加上中國負責工廠端的合作夥伴。
節奏:沒有衝刺,也沒有任何固定會議,一週怎麼走由進來的案子決定。
工時:沒有固定工時。

工作成果

我們沒有做成任何一筆生意,也沒有拿到利潤。 沒有薪水,也沒有分紅。到最後,自家工具的雲端費用是我自掏腰包,還要加上那幾個月沒有收入的代價。 幾筆數百萬南非幣的案子差一點成交,最後都沒有落地,標案也是一樣的結果。 有些時間耗在詐騙上,也有合約因為我們拿不出資格文件而丟掉。

離職原因

問題出在資金。 客戶要的是已經在南非的現貨,每一個認真的買家都想先看到貨才願意下單。 我們在中國的工廠供應鏈要求 50% 訂金,而對方開出的最低訂購量超出我們手上的資金。 我們也沒有足以補上這段落差的進出口專業。 我放掉了它,回頭轉進科技產業。 我拿出去給人看的,正是我們當時建起來的那套架構,它讓我進了 Celbux。

公司介紹

中山市紀中三鑫雙語學校創立於 2001 年。 校址位於廣東省中山市三鄉鎮。 校區鄰近珠海交界,離澳門關口也很近。 這是一所私立、全住宿的雙語學校。 從幼兒園一路辦到國際高中部,校內學生數千人。 學校直接聘用外籍教師負責英語這一塊。

擔任職務

這是學校直接聘用的職位,教小學班級英文,合約與學校簽訂,原本應該在中山當地到校授課。 學校要求先取得 TEFL 資格才願意提供擔保,而這項訓練我在開普敦分兩階段實體完成:

  • 120 小時 TEFL/TESOL 課程,The International TEFL Organization。內容包含文法結構與教法、教材製作、評量與測驗,以及聽、說、讀、寫的整合技能。
  • 20 小時 TEFL 實務教學課程,TEFL SA。內容包含帶回饋的教學實作、班級經營與常規管理、引導提問、概念檢核、錯誤糾正、戲劇與角色扮演、發音,以及兒童教學。

學校為我申請工作許可,中國 Z 字簽證核發為單次入境,效期 6 個月。

任職動機

華語是我的熱情所在。 2014 年我在開普敦大學第一次修課,當時就想把它列為主修,之後也一直沒有停下來。 住在中國是讓它進步最快的方式,而教英文就是進去的門路。

工作內容

COVID 在我出發之前就封了邊境,所以這份工作從來沒有照原本寫的方式做過。整段任教都是從南非遠距連線,教中山的一個班級。學校決定程度與班級,每一堂課都由我在上課前寫好,備課佔掉一天裡比較大的那一半。

  • 依客戶既定的課表,對固定班級授課。
  • 從零撰寫課堂教材:練習、口說活動與評量。

團隊:我獨自授課,班級人數 5 人以上。
節奏:每天 3 堂課,每一堂都在上課前寫好並備妥。
工時:週一至週四,週五休息。

工作成果

我始終沒有到校任教,也沒有真的用上居留許可。 最後留下的是幾週的遠距課程。 兩張 TEFL 資格證書我保留了下來。

離職原因

學校因為我人還在南非、沒有到中山,把我的薪資調降了。 在調降後的待遇下,這個職位已經撐不起我的生活。 我的資金用盡,只好放棄這個職位。 接著我和兄弟 James 一起做了 Masks For Africa。

luno.com

公司介紹

Luno 是一家面向散戶的加密貨幣交易所與錢包服務。 公司 2013 年在開普敦成立,當時名為 BitX,2017 年改名 Luno。 它是非洲規模最大的加密貨幣交易所之一。 在超過 40 個國家擁有數百萬名客戶。 2020 年由 Digital Currency Group 收購。

擔任職務

這個職缺是獎勵與錢包團隊的後端工程師,屬於正職,位階在公司五級工程職涯中的第二級。 團隊把錢包與獎勵產品當成同一個共用的產品面來顧,而不是按元件切開。

任職動機

薪資、生活平衡,還有一家我真心想進去的公司。Luno 在薪資和工作之外的生活品質上都有名聲。 另一半原因是技術堆疊。我過去會的一切都建立在舊技術上,轉到 AWS 上的 Golang 正是我需要的拓展。

工作內容

錢包是客戶存放與移動加密貨幣的地方,獎勵則是疊在上面的誘因層。這些都在一個營運中的散戶交易所後面,所以處理的是已經承載客戶資金的系統。

  • 在 AWS 上以 Golang 開發後端微服務。
  • 保管與移轉客戶資金的錢包系統。
  • 核心金融產品之上的誘因與獎勵機制。

團隊:5 位以上工程師,另有團隊自己的產品負責人與 Scrum Master。
節奏:衝刺制,包含規劃、整理、回顧與每日站立會議。
工時:週一至週五,09:00-17:00。

工作成果

我因為在那裡的表現拿到第 13 個月的獎金。沒有升遷:進去是第 2 級,離開時也是第 2 級。

離職原因

華語是我的熱情所在,從我在開普敦大學第一次修課開始就是如此。 我想住進這個語言裡,而不是隔著距離研究它,所以我辭職去中國教英文。 那一年剩下的時間,我都在取得 TEFL 資格、工作許可與簽證。

aciworldwide.com

公司介紹

ACI Worldwide 開發白牌銀行軟體,並在 NASDAQ 上市。 全球有超過 1,000 家大型金融機構與中介機構使用它的軟體。 旗艦產品是 Postilion,一套支付交換、ATM 驅動與卡片管理平台。 商業銀行、區域型金融機構與支付處理商在南非與國際市場上都在用它。 南非多數大型銀行都跑在這套系統上。

擔任職務

這個職缺是後端資料庫團隊的初階後端工程師,屬於正職,我從開普敦大學唸完學位後直接進去。 職務一半是資料層的開發工作,一半是輪值的第三線支援。那個輪值是進到產品團隊之前的最後一道防線,所以工作有一半是排定好的任務,另一半是銀行隨時丟過來的問題。 ACI 的工程職涯分四級:初階、中級、資深與首席。 我從第一級進去,離開時是第二級。

任職動機

薪資與產業領域。我當時一直沒能在遊戲開發領域找到理想的工作。 Java、Python 與 SQL 是我從學位裡帶走最扎實的三項能力,而這份工作三樣都要。 這也是我踏進金融科技的第一步,到今天我仍然在這個產業裡。

工作內容

南非多數大型銀行都在跑 Postilion。團隊擁有底層的 SQL 與原始資料模型,以及跑在其上的 Java 服務。工作的另一半是第三線支援輪值,處理銀行自己回報的正式環境事故,用真實的銀行資料重現問題,再從資料庫或上層的 Java 把它修好。這個輪值我接了三次,是團隊裡最難守住的位置。

  • 支付平台底層的關聯式資料建模與 SQL。
  • 以 Java 開發直接打在正式資料層上的後端服務。
  • 線上銀行系統的第三線正式環境支援。
  • 在支援服務水準協議(SLA)之下重現並修復客戶回報的缺陷。

團隊:15 位以上工程師。
節奏:2 週一個衝刺,訂有衝刺目標,並有規劃、整理、回顧與每日站立會議。
工時:週一至週五,08:00-17:00。

工作成果

我升上了中級工程師。 這個升遷,是我自願在聖誕假期接下第三線支援輪值換來的。 年薪從 310,000 南非幣調到 360,000 南非幣。

離職原因

升遷帶來的加薪,跟同樣的工作在市場上的行情有落差。 我離開,去了 Luno。

uct.ac.za

公司介紹

開普敦大學是南非歷史最悠久的大學,也是全非洲排名最高的學府。 資訊科學系隸屬理學院,位於魔鬼峰山坡上的上校區。

擔任職務

一個理學士學位,修了兩個主修:資訊科學,以及 3D 分散式遊戲設計。

  • 一年級:資訊科學 1015 與 1016、數學 1000、普通物理 A 與 B、華語 1A 與 1B。
  • 冬季學期:統計學導論。
  • 二年級:資訊科學 2001 與 2002、電腦遊戲與模擬、系統分析、系統設計與開發、商業智慧分析、天文學導論。
  • 三年級:資訊科學 3002 與 3003、3D 分散式遊戲設計、C++ 應用、應用統計學。

學費由家人支付,我沒有申請任何就學貸款。 成績單已附在下方,供您查閱。

任職動機

我選開普敦大學,正是為了那個排名。從我有記憶以來,就對電腦科技深深著迷。 中學時我拿下電腦應用科技這一科的總冠軍。 我熱愛用自己的電腦做電子音樂與數位藝術,遊戲設計這個學位因此吸引了我。

我原本想把華語也列為主修,讓這個學位變成三主修。 後來我放掉了華語,以兩個主修完成學業。

工作內容

課程橫跨五種程式語言,每一種都有它存在的理由。多數學期裡,小組專案與課程同時進行。

  • 組合語言與 C++ 負責底層那一半:機器如何執行,以及記憶體的代價。
  • Java 用於物件導向程式設計。
  • Python 用於腳本,以及那些重點在問題本身、而不在底層細節的作業。
  • C# 用於 Unity 與 OpenGL 的遊戲開發。
  • 小組專案以小團隊進行,期限不會因為任何理由延後。

下午的時間給了家教與社團。 二年級與三年級時我擔任資訊科學助教,每月 5,000 南非幣。 同時我也接私人家教。

其餘時間都投入課外活動:

  • 拉丁與國標舞社:3 年,第三年達到高級組,校際賽拉丁舞第 5 名、國標舞第 3 名。
  • 開普敦大學體操社:3 年,並入選國家彈翻床躲避球代表隊。
  • 西洋棋社:代表社團出賽,線上等級分最高 2169。
  • 卡波耶拉社:練巴西武術。
  • 資訊科學學會:社員,學會主辦程式競賽、遊戲創作馬拉松與駭客松。

節奏:每學期 4 門課,每年 2 個學期,連續 3 年。每學期都有術科與筆試。
作息:週一至週五,依課表而非固定工時。

工作成果

我完成了學士學業:資訊科學理學士,以及 3D 分散式遊戲設計理學士。

離職原因

學位唸完後我沒有繼續升學,直接進了 ACI Worldwide 的後端資料庫團隊。

blablablastudios.comfuzzylogicstudio.io

公司介紹

Blablabla Studios 開發在全球賭場拉霸機上運行的博弈遊戲。 公司為 iGaming 產業設計拉霸遊戲,以及背後的美術與動畫。 合作的營運商分布於歐洲、美洲、亞洲與澳洲。

Fuzzy Logic Studio 以 Unity 開發遊戲,運用 AR 與 VR。 公司為企業客戶打造沉浸式的教育訓練與視覺化應用。 作品實績包括 Aston Martin、Anglo American、Hyundai、Nissan、Renault 與 Network Rail。

擔任職務

兩份實習都在開普敦大學最後一年、與課業並行時完成:1 月在 Blablabla Studios,7 月在 Fuzzy Logic Studio。 兩家工作室當時都沒有職缺,兩份實習也都沒有薪水。 雙方都同意讓我進到團隊裡累積經驗,所以這兩個位置是正式團隊中的一個座位,而不是對外招募的職位。

任職動機

我需要在履歷上寫下實績,在拿到學位之前先有商業專案的經驗。 我想進入遊戲開發產業。 這兩家公司都在當地,而且都答應了我。

工作內容

兩家工作室給我的都是範圍明確的小任務,而不是一整塊由我負責的領域。這兩個月都投入在已經上線的產品上。

Blablabla Studios 為全球賭場開發拉霸機博弈遊戲。遊戲跑在自研的 Mobile Mil 引擎上,以 JavaScript 撰寫,因為 Unity 的博弈授權費用高得不切實際。我負責的部分,是遊戲前端與決定每一次轉輪結果的數學模型之間的串接。

  • 遊戲前端與後端服務之間的 API 串接。
  • 在自研遊戲引擎上以 JavaScript 開發功能。
  • 對已上線的遊戲產品進行人工測試與除錯。

Fuzzy Logic Studio 以 Unity 為企業客戶開發 AR 與 VR。我被指派兩個專案中範圍明確的功能,一個是 AR,一個是 VR。每項功能都由我從開發、測試一路做到合併進共用版本。

  • 在 Unity 上以 C# 開發 AR 與 VR 功能。
  • 對交付的功能自行測試並修正缺陷。
  • 透過 CI/CD 流程把變更帶進共用版本。

團隊:兩家工作室各有 10 位以上工程師。
節奏:每日站立會議,每週一次待辦清單整理。
工時:週一至週五,09:00-17:00。

工作成果

在 Fuzzy Logic,我第一次用上 CI/CD 流程。 在 Blablabla,我第一次做 API 串接。

離職原因

兩份工作都有既定的期限。 我回到開普敦大學,把最後一年的學業唸完。