Patrick Kerzee · Product-focused software developer

I build polished software products.

I take products from architecture through implementation, testing and delivery. A live SaaS platform, a native Windows theme engine and a sales intelligence system, each built end to end.

  1. ArchitectureData model, system design
  2. ImplementationFront end, back end, native
  3. TestingAutomated suites, real use
  4. DeliveryDeployed, running, maintained
SaaS platformLive product · vitaroapp.com

Vitaro.

A Performance Score for every team member. Earned, not self-reported.

The problem: small sales teams run on status updates. Reps report their own week, owners guess who is actually doing the work, and reviews reward whoever tells the best story.

DashboardPipelineAccountsReports
Sam · Performance ScoreLast 10 days
0/100
Needs work
Activity0
Results0

Weighted 50/50 Activity to Results. Every point traces back to a stage change, a closed deal or logged activity.

Team · click anyone to see whyScore
Deals move → Activity + Deals close → Results = Performance Score
Contacted 2

$24,900

Talon Financial

$18,700 · 20% likely

todayJS
Bluepeak Systems

$6,200 · 20% likely

3d agoDF
Demo Scheduled 1

$31,000

Halcyon Retail Group

$31,000 · 40% likely

2d agoDF
Closed Won 1

$42,000

Crestline Manufacturing

$42,000

todayJS
Recreated from Vitaro's interface · example team dataTry it: switch views, or click a team member

What I built

An auditable scoring engine

Every point traces back to a timestamped event: a stage change, a closed deal, logged activity. Owners set the weighting and thresholds.

Role-based visibility

Owners see the whole team and can open anyone's score to see why. Team members only ever see their own.

The "Now What" workflow

One click for a deal brief, a follow-up draft or a suggested next task, built only from what is in the activity log. It never runs on its own.

Technical depth

Authentication
Firebase Auth with owner and team-member roles, joined by invite code
Team isolation
Multi-tenant: each team's data is isolated at the database level, not just hidden in the interface
Data architecture
Cloud Firestore for teams, accounts, deals and a timestamped activity log
Server logic
Cloud Functions for server-side application logic.
Integrations
Zapier, Gmail, Google Calendar and a REST API
Front end
Framework-free JavaScript (ES modules) on Firebase Hosting
Try it live at vitaroapp.com →
Native Windows theme enginePrivate technical demo

Aether.

A native Windows application that turns the desktop into one real-time, animated environment.

The problem: customizing Windows usually means stacking a wallpaper app, an icon pack, a widget tool and a taskbar mod. None of them know about each other, so the result rarely feels like one design.

In-browser illustration of theme switching · theme names are illustrative · the real app renders natively through Direct3D 11Switch themes to see the whole desktop change together

What I built

A native Windows application

C# on .NET 10 with WinUI 3 and the Windows App SDK. A real desktop program, not a web wrapper or a wallpaper player.

A real-time theme engine

Themes coordinate the wallpaper, icons, HUD elements, effects, colors and transitions, rendered live through Direct3D 11 so the desktop moves as one.

Built around the real taskbar

Aether never replaces or hides the native Windows taskbar. It works around it, so Start, search, pinned apps and the tray keep working.

Technical depth

Interface
WinUI 3 on the Windows App SDK 2.5.1
Runtime
C# on .NET 10, targeting Windows 11
Rendering
Direct3D 11, drawn in real time on the GPU
Theme system
One theme drives wallpaper, desktop and taskbar treatment, icons, HUD, effects and transitions
Desktop integration
Works with the native Windows desktop and taskbar and keeps both fully functional
Testing
Extensive automated test suite, across multiple implementation and testing phases
Sales intelligence platformPrivate build

Nexus.

Sales intelligence that tells reps who to contact next, and why.

The problem: a small sales team was prospecting out of spreadsheets. Accounts, events, tasks and research lived in different places, so deciding who to call next came down to memory and gut feel.

01EvidenceA post, an announcement, an event listing, with source and date
02SignalRelated evidence grouped into one buying trigger
03ScoreEvidence-driven account scoring and prioritization
04PriorityHot, warm or cool, ranked for the team
05Next actionA clear task tied to an event or deadline
Priority queueranked by score
Illustration of how Nexus explains a score · example accountsClick an account to see the evidence behind its score

What I built

Evidence-driven scoring

Scores are built from evidence with a source and a date, grouped into signals. A rep can see exactly why an account ranks where it does.

One system for the work

Accounts, events, tasks, activity and imported prospect lists live together instead of across a stack of spreadsheets.

Actionable workflows

Priorities turn into next actions tied to real events and deadlines, so the queue tells a rep what to do today.

Technical depth

Application
Next.js / React 19 and TypeScript, styled with Tailwind CSS 4
Database
Prisma 6 schema with Evidence and Signal as separate models, each with its own status. SQLite in development, with a PostgreSQL migration path
Data ingestion
Imported prospect lists, logged activity and event discovery feed one data model
Prioritization
Evidence-driven account scoring and prioritization.
Authentication
Custom session authentication
Testing
Vitest test suite

Have a product in mind? Let's build it properly.

I build complete products: the data model, the application, the tests and the deployment. A SaaS idea, an internal tool your team has outgrown spreadsheets for, or a Windows app. Send me the details and I'll reply with a plan and a quote.