CongoSky CongoSky

Curriculum vitae

Andries J.
Greyling

Senior Developer — backend by nature,
full-stack with AI

Java PostgreSQL Python TypeScript .NET

congosky.cloud/cv 27 years · Remote-first

Twenty-seven years of production software — retail banking, product SaaS, GIS platforms, APIs and the batch jobs nobody sees until they stop. I am a backend developer by nature: data models, transaction boundaries, integration contracts, and the unglamorous correctness of money arriving in the right account. AI has closed the gap on the front end, so I ship full-stack now — backend instinct, full-stack reach. I am looking for a remote-first senior developer role, and I am open to hybrid in Somerset West, Stellenbosch, or Cape Town.

How I build

Boring is predictable. Predictable is smooth. Smooth is fast.

I choose a safe, boring stack on purpose. Java, PostgreSQL, Python, TypeScript, .NET — technologies with long support horizons, deep hiring pools, and answers that are already written down somewhere. Boring technology has had its bugs found by somebody else already, on their weekend rather than mine. The speed does not come from the tool being clever. It comes from not fighting your own tools, not rewriting last year's decision, and being able to hand the codebase to the next person without a seminar.

AI does the coding, never the stack choices

I use AI every day and I am genuinely good at it — Claude Code is part of my working hands now, not a novelty I tried once. But there is a hard line, and I hold it: AI writes code; AI does not choose architecture. Data modelling, dependency selection, service boundaries, and the decision about what not to build stay human and stay mine. A language model will cheerfully talk you into a fashionable framework that neither of you can maintain in eighteen months, because it is optimising for a plausible answer and I am optimising for the person who carries the pager. Engineering judgement is not a thing I delegate. Typing is.

No bleeding-edge JavaScript

I do not chase the newest JavaScript framework. I have been doing this long enough to watch several of them arrive as the future and leave as a migration project, and I would rather spend that budget on the domain. Give me a stable rendering story and I will put the interesting work where it belongs — in the model, the queries, and the contracts.

Mobile: PWA first, then properly native

My default for mobile is a Progressive Web App. One codebase, updates that ship the moment I push them, no store gatekeeper between a fix and the person who needs it, and it runs on the low-end Android handsets most of this continent is actually holding.

When an app genuinely needs the device — background work, sensors, offline-first storage, platform integration — I go fully native, and separately native: an Android codebase and an iOS codebase, each written in its own native language, deliberately sharing no code. What unifies them is not a cross-platform framework and its permanent abstraction tax. It is the specification: one Domain-Driven Design model of the domain, and one set of BDD scenarios that both codebases implement and both test suites have to satisfy. The spec is the shared artefact; the implementations stay idiomatic on their own platform. Two codebases that agree on behaviour beat one codebase that is second-class on both.

Profile

Senior Developer exiting Mezzanine. Banked experience across high-volume banking systems, product SaaS, GIS-enabled platforms, APIs, automation, and practical AI adoption — plus repeated delivery leadership when the role needed it (Capitec, Worth, Mezzanine product development management). Comfortable in governance-heavy, brownfield, client-facing settings and distributed teams, including four and a half years delivering from the United Kingdom.

I have spent most of my career in regulated environments where being interesting is a liability and being correct is the entire job. Credit decisioning, core banking transactions, batch windows with a hard end time. That shaped how I work: read the existing system before changing it, make the data model carry the invariants, and leave the codebase more obvious than I found it.

Stack: Java, PostgreSQL, Python, TypeScript, and .NET — tools in the belt, not a single-language identity. Two decades on Microsoft and Windows, then a zero-Windows shop pushed me fully Linux-native. I am at home on both, which is rarer than it should be.

Side builds (CongoSky, lucid.rodeo, Arjuna Badger Press) stay on the side — proof of end-to-end ownership, not the job I am applying for.

What I am looking for

  • Role: Senior Developer — backend-leaning, full-stack where it helps.
  • 1st: Full-time remote.
  • 2nd: Hybrid — Somerset West, Stellenbosch, or Cape Town.
  • 3rd: Full-time office — Somerset West or Stellenbosch.
  • Happiest when: the domain is genuinely hard, the stack is deliberately dull, and somebody cares whether it is still running in five years.

Experience

August 2022 – Present · Mezzanine · Stellenbosch

Senior Software Developer exiting

Architect and develop GIS- and AI-enabled production SaaS: APIs, automation, internal developer tooling, and practical evaluation of both local and hosted LLM workflows — including the unglamorous question of what a model costs you per month when it is wired into a real product.

Built the Helium Rapid DSL tooling as a VS Code / Cursor extension, giving a production domain-specific language the editor support its users had been working without.

A zero-Windows shop. After a career on the Microsoft stack this meant relearning my own habits in Linux-native tooling, and I would not trade it back.

April 2022 – July 2022 · Sabbatical · Somerset West

Sabbatical — homesteading

A short, deliberate break between contracts. I grew up on a farm and wanted to test the other life properly rather than romanticise it: microgreens, culinary and medicinal mushroom cultivation, and chickens from coop-build to first eggs — with our homeschooled children learning entrepreneurship and farm-to-fork alongside it.

The honest conclusion is the reason I am a developer and not a farmer: at that scale it was a hobby that cost money rather than a business that made it. I went back to work to fund the next phase instead of pretending the numbers worked.

August 2021 – March 2022 · Worth Internet Systems · Somerset West

Technical Lead

Reported to the Head of Software Engineering, leading the development team and owning the technical vision for the project. Kept client stakeholders aligned to that vision, managed third-party relationships, and carried delivery risk across client, team, and vendor.

Supported, guided, and mentored the developers so delivery landed on time and to specification — most of which is regular, unglamorous communication rather than heroics.

January 2018 – August 2021 · Mezzanine Ware · Stellenbosch

Solutions Architect

Owned the cross-cutting and non-functional concerns on SaaS products under enterprise client expectations: security, scalability, maintainability, and architectural direction. Identified technical risk and — the part that actually matters — reported it early enough to be actionable.

May 2017 – January 2018 · Mezzanine Ware · Stellenbosch

Product Development Manager

Managed three Product Owners and eleven developers across the Mezzanine SaaS product portfolio.

May 2011 – April 2017 · Capitec Bank · Stellenbosch

Team Lead / Technical Lead

Technical leadership for three teams of architects, analyst developers, and programmers working in C#, Java, and T-SQL. Solutions architecture for high-volume, high-performance online and batch processing in retail banking. Interviewed and hired extensively, for my own teams and others. Spent the final year on DevOps and automation evangelism.

The achievement I actually measure by: I coached and mentored two team leaders whom I had originally hired as developers. If lasting impact is the yardstick, that is the best thing I have done in this industry — the code I wrote in 2011 is gone, and they are still leading.

My last contribution there was a JSON command-line test-data provisioning and automation framework, including ground-up middleware that could execute core banking transactions from the command line to simulate client-triggered activity. Ansible, Puppet, or Chef would have covered most of it — but a Linux server was not on the table, so I built it in C# and it shipped. Choosing the tool that is allowed to exist in your environment is part of the engineering, not a compromise of it.

August 2009 – April 2011 · Capitec Bank · Stellenbosch

Systems Architect

Designed, developed, and implemented an automated credit rules engine in C#, T-SQL, SQL Server, and Java — design through to production in a regulated lending context, where a wrong answer is a compliance event and not a bug report.

January 2007 – July 2009 · Mercer · South Croydon, United Kingdom

Senior Software Developer

C# and T-SQL / PL-SQL across WinForms and ASP.NET applications in a global financial-services organisation — formal process, approval gates, and the constraints of a large international corporate.

July 2005 – December 2006 · Mercer · Croydon, United Kingdom

Technical Analyst

VB6, VBA, T-SQL, and C# in a UK corporate environment. A South African emigrating into a London financial-services delivery culture — my first lesson in working across geographies under someone else's process.

2002 – 2005 · Capitec Bank · Stellenbosch

Analyst Developer

VB.NET, T-SQL, and VBA — Microsoft-stack delivery in retail banking, back when Capitec was still small enough that you met the consequences of your own code.

January 1999 – July 2002 · BoE Bank · Paarl

Analyst Programmer

Delphi 5, VB.NET, and T-SQL. Where it started: the bank was Boland PKS when I joined and BoE by the time I left, which turned out to be a useful early lesson in systems outliving the names on the building. Certificate of Service names the role at termination.

Selected evidence

Capitec

Credit rules engine

C# / SQL Server / Java — design through implementation in a regulated banking context.

Capitec

Core-banking test automation

C# CLI plus purpose-built middleware simulating client-triggered transactions for safe, repeatable provisioning — built in-stack because Linux was not permitted.

Capitec

Two team leads

Hired as developers, coached into leadership. Still leading.

Mezzanine

Helium Rapid DSL tooling

VS Code / Cursor extension for a production domain-specific language.

Open source

/sleep

MIT-licensed agent-memory skill: consolidate a working session into durable facts instead of choosing between context bloat and a hard reset.

Side builds

CongoSky · Arjuna Badger Press

End-to-end product ownership, from sovereign-cloud routing to a live publishing platform — secondary to employment history, useful as proof of range.

Skills

Java PostgreSQL Python TypeScript .NET REST APIs Backend & data modelling SQL performance Domain-Driven Design BDD / specification-led delivery Progressive Web Apps Production SaaS Enterprise / brownfield delivery Windows and Linux CI/CD · GitHub · Bitbucket Unit & integration testing SQL Server / T-SQL Claude Code / AI delivery GIS & data systems DevOps & automation Technical leadership (when useful)

Long tail, honestly declared: C#, VB.NET, VB6, VBA, Delphi, PL/SQL. Twenty-seven years leaves sediment. I list it because brownfield work is real work, and somebody has to be able to read the 2004 code.

Education

2016 – 2017 · GIBS

Capitec Leadership Programme for Managers

1998 – 1999 · NCC Education

International Diploma in Computer Studies

Distinction · overall 79.3.

1998 · NCC Education

International Diploma in Computer Programming

Credit.

2010 · SAMSA

Day Skipper, Category C

1993 – 1997 · Voortrekker Hoërskool

Senior Certificate

Languages & availability

  • English — native or bilingual
  • Afrikaans — native or bilingual
  • Fully remote preferred · flexible hours · Western Cape based
  • Experienced across UK + South Africa time zones, from both ends

Notice period and start date: happy to discuss directly.

Off the clock

Linux, locally hosted LLMs, virtualisation, and more Raspberry Pis than I will admit to in writing. Overland travel in Africa, which is where the taste for systems that work without a support contract comes from — if it cannot be fixed at the roadside, it is not really working.

I write, too. My debut novel — The African Gold Trilogy · Book I: RESONANCE — is out in print with the audiobook in production, and Arjuna Badger Press is the creator-owned publishing platform I built to put it there. It began as an experiment in what an AI co-worker could sustain over months rather than minutes, and it turned into the thing that taught me most about agent memory. That lesson became /sleep.

Still keeping chickens. The hydroponics phase is pending a budget review by management.

Public links