All projects

BizLink.

A local business discovery and offers platform with separate member and merchant experiences on one API.

Built
System architectureBizLink
BizLink architectureNext.js member and vendor applications share a .NET 8 API, with PostgreSQL persistence, Redis caching, Hangfire processing, and AWS integrations.Member + vendor web.NET 8 Web APIPostgreSQLRedisHangfireAWS S3 / SES
Application architecture.NET 8 Web API

Overview

BizLink helps people find nearby businesses and offers, and gives merchants a portal to manage profiles, locations, and promotions. Built as two Next.js applications over a shared .NET 8 API with PostgreSQL, Redis caching, and Hangfire background processing.

My role

Independent product. I designed and built the member web app, the merchant portal, and the shared API, and documented a Docker Compose and Caddy deployment.

The problem

Consumers need to find relevant local businesses and offers nearby, while merchants need a practical way to manage profiles, locations, and promotional content without a separate sales process.

The solution

Separate member and vendor web experiences share a .NET API and PostgreSQL data model. The API provides location-aware offer discovery and authenticated vendor management, with Redis and Hangfire handling caching and recurring work.

Engineering decisions

Separate merchant and member experiences

Two web applications share one API. Each audience gets an interface built around its tasks while the platform keeps a single domain boundary.

Keep location ownership explicit

Vendor-location endpoints resolve the vendor from the authenticated identity and check access before returning or changing a location.

Design for background work from the start

Hangfire with PostgreSQL storage, Redis caching, and health checks are wired in so promotional expiry and recurring jobs run outside the request path.

Key capabilities

Business and location management

Authenticated vendor endpoints manage business locations and merchant-owned data.

Local offer discovery

Offer search, active offers, and nearby discovery driven by location.

Merchant portal

A dedicated Next.js portal for the merchant side of the platform.

Redemption workflows

Redemption endpoints and services connect promotions with consumer actions.

The hard parts

  • Consumer discovery and merchant administration have different workflows but rely on consistent shared business data.
  • Location-aware discovery and promotional expiry introduce correctness and operational considerations.
  • Two frontends and one API triple the surface area to keep consistent.

Outcomes and links

  • Complete member and vendor experiences backed by a shared API, ready to deploy with Docker Compose and Caddy.
  • Not yet launched publicly.

The source repository is private. Happy to walk through the code in an interview.

Let’s build something
meaningful.

I’m looking for an Engineering Manager role where I can grow a team, own delivery, and keep a platform reliable while it changes.

Calgary, Alberta · Remote across Canada