Werner Pieterson

Staff Software Engineer, Backend

Pretoria, South Africa · Remote since 2020

Werner Pieterson

Profile

I'm a backend engineer. I've been building web applications, APIs and microservices since 2009, these days mostly in Go and Python. For the last few years I've worked in the cryptocurrency space at Luno, building the API services that power our mobile and web apps.

I enjoy refactoring code with a focus on reusability, readability and ease of use, and a lot of what I work on is foundational to the engineering team or has high impact across it. I like to automate the repetitive, write a technical design doc when there are real unknowns, and prototype when that's the faster way to find the answer. I believe simpler is better. The first solution is rarely the final one, so I iterate, refactor and improve.

Experience

Now
Luno · Staff Software Engineer, Backend
Cryptocurrency exchange serving millions of customers across Africa, Europe and Southeast Asia
4,600+
commits since 2019
1,500+
merged merge requests
Weekly commits at Luno · hovertap for detail · as of Jul 2026
JanFebMarAprMayJunJulAugSepOctNovDec20192020202120222023202420252026LessMore

I make time to pay down technical debt, even when it isn't on the roadmap. As the coin catalogue grew, I rebuilt our digital-assets package around a single per-coin config map, so settings that had been scattered across functions all over the codebase now live in one place. Along the way I split a service another team had built into smaller, focused packages, reworked our coin filtering, and built the shared testing helper the team now uses as standard.

Much of our UI is server-driven: the backend describes each screen and the apps render it. I built the layer that turns our business logic into those UI structures and keeps them separate from the Protocol Buffers (protobuf) definitions, so screens can change without reshaping the services underneath.

May 2025
1st place, Luno company hackathon
Oct 2023
2nd place, Luno company hackathon
Jul 2023
Luno · Staff Software Engineer, Backend
Luno · Johannesburg (Remote)
  • Backend lead on a company-wide analytics migration: untangled three efforts that had been rolled into one, re-sequenced them, and built the Go code generator that plugs into our multi-platform pipeline, turning the data team's event definitions into a Go module our core services import.
  • Helped launch 50+ tokenised stocks and ETFs in 2025, including our Blue Chip+ bundle, and shipped compliance features under regulatory deadlines. Two examples are our transaction-monitoring (KYT) integration and the UK Financial Promotions work under the FCA's October 2023 deadline.
  • Over the past year, made agentic coding part of how I work, treating what it produces as a first draft to review and refine, not something to trust blindly, and folding historical review feedback into a team AI review skill.
  • Sit on our backend standards squad and interview Senior and Staff candidates. Most of my mentoring is informal, through review feedback: explaining the why, not just what to change.
  • Work day to day in Go, building gRPC microservices with protobuf across 25+ of Luno's 100+ services, using our open-source Go libraries, including reflex, a Kafka-inspired event-streaming framework, along with jettison, shift and weld. Grafana is open most days, with OpenSearch for logs and Prometheus feeding the metrics behind it, plus GitLab CI/CD. It all runs on AWS (RDS, S3, CloudFront) and Cloudflare.
Jul 2021
Shooting Stars peer recognition award
Jul 2021
Luno · Senior Software Engineer, Backend
Luno · Cape Town (Remote)
  • Co-designed our portfolio profit & loss service, which replays more than a billion ledger entries to work out each customer's returns.
  • Introduced our themes package, starting with an asset layer that decoupled hard-coded assets from business logic. It shipped one brand refresh behind a feature flag and carried a second.
  • Led the currency-formatting work so that every monetary value a customer sees flows through a single, client-version-aware layer, and migrated the callers across 10+ services.
  • Trimmed noisy and stale logging in favour of metrics, which cut our log volume and unnecessary on-call alerts.
  • Led the wind-down of our savings product: built the account sweep and unwind processors, ran the phased disablement from staging to production, and swept the remaining customer accounts to closure.
Sep 2019
Luno · Software Engineer, Backend
Luno · Cape Town (Remote)
  • Designed and built the client API for our savings product, working with the mobile and web teams to deliver its features.
  • Shipped a real-time price-change monitoring and alerts service.
  • Worked on the content system behind the app's Explore tab: an internal service that aggregated and cached crypto news and market data from external feeds alongside our own blog posts and learning articles, plus the card layer that served it all to clients.
2018 2019
Independent Software Engineer
Self-employed · Pretoria

I worked with clients on short contracts. For one, I built Django middleware, view mixins and a custom authentication backend that authenticated users against a remote API with no local user database. For another, I built a Flask web UI to manage the schedules of a hydroponic greenhouse. For a third, I built a debtor self-service portal.

PythonDjangoFlask
2013 2018
Swordfish Software · Developer
Swordfish Software · Pretoria

I worked on an online debt-collection platform serving retail, banking and collections clients. We did test-driven development, and every change was reviewed before it was merged. I started on the original product, built in PHP and MySQL, and later worked on its Django rewrite. I designed and built the core of our in-house services framework, a REST API to third-party SMS, voice, debit-order and payment integrations shared across both, using Django REST Framework and PostgreSQL with RabbitMQ and Redis for asynchronous work. I served on the technical committee, and I looked after infrastructure too: Ubuntu servers, MySQL replication and CI/CD.

PHPMySQLPythonDjangoPostgreSQLRabbitMQRedis
2012 2013
Bridge South Africa · Senior Developer
Bridge South Africa · Pretoria

I acted as technical lead and developer on a web and mobile loan-application portal built in CakePHP and integrated with the company's in-house loan-origination system.

PHPCakePHPSQL Server
2009 2012
AfriGIS · Web & Mobile Developer
AfriGIS · Pretoria

I built location-based services in PHP (CakePHP) and Java (JSF): ATM and branch locators across USSD, mobi and web, and weather and traffic backends that pulled in mobile-network location data and partner feeds.

PHPCakePHPJavaMySQL
2008 2009
Luuk ICT · Developer
Luuk ICT · Pretoria

I worked on a real-time vehicle-tracking and fleet-management system in PHP, JavaScript and Java, along with R&D proofs of concept, document tracking, a J2ME tracking app and spatial-data processing, and helped build the company's in-house web framework. I also set up and ran its Ubuntu servers.

PHPJavaScriptJavaMySQLJ2ME
2007
Epi-Use Prize: Best Undergraduate Project
2005 2008
Bachelor of Information Technology
University of Pretoria

A four-year programme across Computer Science, Informatics and Information Science, with a six-month industry learnership in the final year.

At home

I have a soft spot for the Internet of Things. A lot of my free time goes into tinkering with hardware and automating my home with Home Assistant. I've flashed ESP32 relay boards and written ESPHome firmware to control my garage doors, gates and irrigation, and I reverse-engineered my alarm system's RS485 protocol, with AI-assisted coding, to bring it into Home Assistant.

My homelab runs on Proxmox and Docker, with a k3s cluster where I'm experimenting with AI agents that help plan, build and review software through a CI/CD pipeline, using Hermes Agent as the harness. I've submitted upstream fixes to the project as PRs too. The containers run on Ubuntu, Debian and Alpine, and I've been a Linux user since 2004. I favour open source, and I believe technology should simplify life without getting in the way.

Open source

Most of my open-source contributions are in the Home Assistant ecosystem.

Public contributions on GitHub · hovertap for detail · as of Jul 2026
JanFebMarAprMayJunJulAugSepOctNovDec20192020202120222023202420252026LessMore

Skills

Go · Python · SQL · Bash
Django · Django REST Framework · Flask
Microservices · gRPC · Protocol Buffers · Event-driven systems · REST APIs · System design
MySQL · PostgreSQL · Redis · RabbitMQ
AWS (RDS, S3, CloudFront) · Cloudflare · GitLab CI/CD · Docker · Linux
Grafana · Prometheus · OpenSearch
Test-driven development · Code review · AI-assisted engineering
Homelab & hardware · Proxmox · TrueNAS · Kubernetes (k3s) · Home Assistant · ESP32 · ESPHome · Soldering & firmware flashing · BLE & RS485 reverse engineering

Languages

Afrikaans (native proficiency) · English (bilingual proficiency) · German (limited working proficiency)

Beyond work

When I step away from tech, I like to stay active. These days that mostly means running. I'm a husband, father, home barista and coffee aficionado.