The product
PerkZilla is a US viral-marketing and referral-rewards SaaS that helps brands grow through incentivized engagement instead of paid traffic. Its own positioning says it best: “Stop renting traffic. Start owning growth.” Marketers pick a campaign type, set the rewards, and the platform runs the flywheel: referral loops, viral contests and giveaways, pre-launch waitlists, leaderboards, and the analytics that show what is working.
My role
I have been the Fractional CTO and lead software architect since PerkZilla launched in 2016, the single point of technical accountability for a non-technical founding team. I own the complete engineering lifecycle: architecture, scaling, security, releases, and the product’s technical roadmap. It is one of my longest-running engagements, and the kind of long-term technical partnership most founders are actually looking for.
Architecture
PerkZilla runs on a modern PHP 8.4 stack built on Laravel’s Illuminate components, with a deliberately layered, service-oriented design that keeps the codebase maintainable as features grow:
- Clean separation of concerns. Thin controllers delegate to a large suite of domain service classes, which call repositories for data access, which map to schema-only models. Business logic never leaks into the HTTP layer or the database layer. This is SOLID in practice, not on a slide.
- Smart repositories with a cache-first read path. A custom repository layer serves reads from Redis first and falls back to the database on a miss, then warms the cache. It degrades gracefully to file-based caching if Redis is unavailable, so a cache outage never takes the product down.
- Event-driven core. Dozens of domain events and listeners decouple side effects (stat counters, notifications, fraud scoring, webhook delivery, integration syncs) from the request that triggered them, so the user-facing path stays fast while the heavy work happens out of band.
- Pluggable integration registry. PerkZilla connects to a large catalog of email and CRM platforms through a single provider contract with one implementation per platform. Adding a new integration means adding a class, not editing the core. That is the Open/Closed Principle doing real work.
- Stateless, versioned API. The current API generation is stateless with JWT-based auth, per-request tenant/campaign resolution, standardized RFC 9457 problem-details error responses, and sliding-window rate limiting backed by Redis with a file fallback.
- Multi-tenant isolation. Every request validates that the caller owns the campaign and customer it is acting on, so accounts stay cleanly separated on shared infrastructure.
The engineering challenge
Referral systems live or die on trust, timing, and scale. Rewards have to fire reliably, fraud has to be caught before it pays out, and the whole thing has to stay fast while campaigns spike. PerkZilla includes a dedicated fraud and risk engine (IP reputation, disposable-email detection, duplicate-signup and referral-fraud checks, real-time risk scoring) and an attribution layer that ties clicks, shares, and visits back to the right campaign and promoter. Holding all of that together for 100K+ users and high-volume referral campaigns, while keeping the no-code builder simple enough for any marketer, is the work that has kept the product competitive for nearly a decade.
What I built
- The Campaign Live Editor and a custom drag-and-drop campaign builder, so non-technical marketers launch campaigns in minutes without code
- Referral, contest, giveaway, and viral-waitlist campaign types from a shared, reusable foundation
- A pluggable integration framework connecting PerkZilla to a wide catalog of email and CRM platforms
- A fraud and risk engine with real-time scoring, plus the attribution layer behind the analytics
- Real-time analytics and leaderboards to track viral growth and surface top promoters
- AppSumo launch integrations that grew customer acquisition and recurring revenue
Engineering practices
The platform is backed by automated tests, static analysis, and coding-standard enforcement, with a CI/CD pipeline that builds, lints, tests, and deploys across staging and production. A custom three-tier logger (file, database, and alerting) means failures surface instead of being swallowed. The frontend is a modern Preact single-page app built with Vite and Redux Toolkit, with a layered design-token CSS system, progressively replacing older jQuery code.
Stack
PHP 8.4 on Laravel Illuminate components, MySQL/MariaDB, Redis for caching and rate limiting, AWS S3 with CDN delivery, JWT auth, a Preact + Vite + Redux Toolkit frontend, and a Bitbucket Pipelines CI/CD workflow with PHPUnit, Codeception, ESLint, and coding-standard sniffs.
Outcome
A decade as the technical owner for a founding team that does not have an in-house CTO. Infrastructure scaled to 100K+ users and high-volume referral campaigns, AppSumo integrations grew recurring revenue, and the architecture above is the foundation I am now using to build the product’s AI roadmap on top of what already earns revenue.