Fullstack Engineer · Cape Town, ZA

Gerald

Kallis

An engineer who sees the whole stack, and still cares how it looks.

Right now I'm building Volley, a React Native, TypeScript, NestJS and Supabase mobile app that connects squash players across Cape Town. Before that I was a Product Trainer and Front-End Engineer at Kurtosys, where I shipped production interfaces and turned dense platform workflows into training that enterprise teams could actually follow. I came up through years of image work before I ever wrote code, which is probably why I notice the things in a layout that most developers only catch once someone else points them out.

Tech across projects

React Native / TypeScript
NestJS / Supabase / PostgreSQL
HTML
CSS
JavaScript
Gerald Kallis
Front-end
UI & interfaces
React NativeTypeScriptHTML5CSS3ResponsiveAnimationMobile-firstExpo
Backend & data
Fullstack layer
NestJSNode.jsSupabasePostgreSQLPrismaREST APIsJWT AuthRate limiting
Logic
JavaScript / TS
ES6+TypeScriptAsync/AwaitState mgmtELO engine
Developer edge
Visual precision
UI accuracyLayout systemsTypographyColour theoryDesign QA
Quality & performance
Standards & compliance
Accessibility (WCAG)SEOComponent optimisationCross-browser QA
Workflow
Dev tools
GitHubVS CodeSupabase StudioEAS BuildRenderJiraAgile/Scrum
Approach
Working style
Detail-orientedSelf-directedProduct thinkingTechnical trainingCross-functional
Volley — currently building
React Native · TypeScript · NestJS · Supabase · PostgreSQL · EAS · Render
In progress
movie-search app screenshot
React + API

movie-search

A React app for searching films in real time using the OMDb API. Built around a clean component structure and styled with Tailwind, with the API wired straight into the search bar.

ReactTailwindOMDb API
Watch the walkthrough
AuthApp screenshot
Auth flow

AuthApp

An authentication flow built on React 19 and React Router 7, with protected routes and a Tailwind interface. Named "secureauth" internally, it's the foundation for login, session handling and route guards.

React 19React Router 7Tailwind
Watch the walkthrough
@keyframes glow { filter: brightness() }
Animation

Glow

A small study in CSS animation, playing with keyframes, timing and layered motion. It's the kind of project that shows whether someone understands design or just knows how to write the code for it.

CSS 76%HTMLJS
Watch the walkthrough

I'm a fullstack engineer based in Cape Town, and right now I'm building Volley, a mobile app for matching squash players, from the ground up. NestJS, Prisma, PostgreSQL, React Native, TypeScript and Supabase, all of it mine to own, from the database schema through to the last pixel. It's the project that says the most about where I am as an engineer at the moment.

Before I went fullstack, I spent close to a decade in high volume, precision driven imaging work. I shot e-commerce product photography under strict production targets at Superbalist.com, then ran imaging workflows as a Senior Photographer at TFG Labs, alongside years of freelance work doing UX focused content. It's part of why I notice when spacing is half a pixel off or a colour doesn't quite sit right, the sort of thing that's hard to teach and easy to spot once you've spent years actually looking at images for a living.

My time at Kurtosys combined hands-on engineering with product training. I translated dense fintech platform workflows into documentation and onboarding that enterprise teams could follow, which did a lot to sharpen how I explain technical decisions to people who aren't technical.

A squash player who builds squash apps. I understand what I'm building because I actually live it, and that's the bit that separates a developer from someone who's just solving a brief.

I'm looking for fullstack, front-end, or product-minded engineering roles where craft and technical depth both matter, not just one or the other.

What sets me apart as a developer
Most engineers need a designer to flag a spacing or colour inconsistency. I usually catch it first.
Because I can judge the code and the visual result at the same time, I get from spec to shipped without the usual back and forth with design. Fewer review cycles, and it looks right the first time.
Volley — founder & engineer
React Native · TypeScript · NestJS · Supabase
Dec 2025 — present
Product Trainer
Kurtosys · Cape Town
Apr 2025 — May 2026
Front-End Engineer
Kurtosys · Cape Town
Aug 2023 — Mar 2025
Senior Photographer
TFG Labs
Nov 2021 — May 2022
Self-directed learning
HTML · CSS · JS · React · TypeScript · NestJS · Node.js · REST APIs
Ongoing
Download CV (PDF)

Open to fullstack, front-end, and product-engineering roles. Cape Town-based, open to remote. Let's talk.