Work / Noize · 2026

Prodesk

A marketplace and management layer where brands, agencies, contractors and staff run projects together — under each brand’s own subdomain, theming and data boundary.

Role
Software Engineer — platform, payments, real-time
Timeline
2026 — present
Platform
Web platform
Outcome
Several standalone products consolidated onto one backend
Prodesk — An operating system for brands and the agencies they hire

The problem

Agencies and the brands they work for live in different tools. Briefs sit in email, files in Drive, invoices somewhere else, and contractors get paid weeks after the work lands. Prodesk collapses that into one place — but only works if every brand can trust it feels like their own product and only shows their own data.

What I built

White-labelled subdomains where the tenant is resolved at the edge and drives both theming and every data boundary below it. A brand sees its own logo, palette and typography, and structurally cannot read another tenant’s records.

Real-time reactivity throughout — Firestore streams push project, task and message changes to every connected client without polling. Redis absorbs the hot reads and rate-limits the expensive paths, and Cloud Run handles the workloads that outgrew a function timeout.

A 3D floor planner built on Three.js, React and tRPC over PostgreSQL, so spatial jobs can be laid out and quoted inside the same tool that manages them.

The AI strategist shown here is grounded on a brand’s live record — identity, positioning and market context shape every reply, and it can act on the workspace rather than just talk about it.

Payments were the hard part

Contractors are global; payment rails are not. Stripe covers most of the world, Wise reaches the rest, and neither settles fast enough on its own. I built a floating balance in front of both: Prodesk fronts the payout the moment work is approved, then reconciles against whichever rail eventually settles.

That means idempotent webhook handling, a ledger that survives retries and out-of-order events, and a reconciliation path a human can actually audit when something looks wrong.

Consolidation

Prodesk started as several separate products. I merged them onto a shared backend with CI/CD that deploys them together, so a change to auth, billing or the brand record lands everywhere at once instead of being reimplemented three times.

What it came to

Multi-tenant
Subdomain-scoped data and theming
Real-time
Firestore streams, no polling
2 rails
Stripe + Wise with floating balance
  • TypeScript
  • React
  • tRPC
  • Firebase
  • Cloud Run
  • PostgreSQL
  • Redis
  • Three.js
  • Stripe
  • Wise

Open to senior engineering roles

Tell me what you are building.

Full-time roles, contract work, or a system that needs someone to own it. I read everything and reply within a few hours.

Start a conversation Download CV