← Selected work

Cross-platform · flagship

ZEVA referral & promotions engine

Full-stack developer

I built one referral system that lives in three places at once. The Django backend issues rewards, the Angular web flow manages them, and the Flutter app redeems them. It's the clearest example of my range: a single feature that had to be right across the whole stack.

  • Django
  • Angular
  • Flutter
  • PostgreSQL
  • Deep links
  • Signed redemption
Platforms
Web + mobile
Backend
Django + PostgreSQL
Web
Angular
Mobile
Flutter

Redemption authority / ZEVA

Two clients can ask. One service decides.

Django issues rewards on a cycle and signs each one. The Angular console manages referrals and promotions; the Flutter app takes a deep-linked referral and presents the signed token at redemption.

Neither client settles anything. Django verifies the signature and the single-use state, then writes to the one PostgreSQL record both surfaces read.

A forged or replayed token fails at the signature

The problem

A referral and promotions program only works if every tier agrees. Rewards have to be issued on a cycle, a shared link has to land the recipient on the right screen with its referral context intact, and redemption has to be tamper-proof, all across web and mobile at once.

What I owned

I designed and shipped the feature end to end: cycle-based reward issuance in Django, referral and promotion management in Angular, and deep-linked referral entry plus in-app redemption in Flutter, all over one shared PostgreSQL model.

The hard parts

  1. Keeping reward state consistent across backend, web, and mobile without drift.


    PostgreSQL is the single source of truth for referral and reward state. Both surfaces read the same record, so there is no second copy to fall out of sync.

  2. Carrying referral context from a shared link through to the right in-app screen, on both a cold and a warm start.


    Deep links resolve into the running app and land the recipient on the referral screen with its context intact.

  3. Signing promo redemption so it cannot be replayed or forged.


    Django issues a signed reward token and verifies both the signature and the single-use state before it settles. The client presents; it never decides.

The result

I shipped a referral and promotions engine that behaves identically across web and mobile, issuing and redeeming rewards on a live product.

© 2026 Anna Chester

Toronto, Canada · Open to full-stack roles and freelance builds