The platform
PlayPickup helps players find, host and join local pickup games. We work across the whole stack as part of the product team.
Shareable, indexable event pages
Games spread through group chats, so link previews matter. We moved the frontend to Angular 19 SSR (standalone components, signals and the new control flow) so every event page is indexable and renders a rich preview. Social crawlers were rejecting large OG images, so we added a small Node/Express image proxy using sharp that serves right-sized images to them.
API and product features
- An ASP.NET Core 8 API with about 140 endpoints, JWT roles and Swagger.
- Recurring events that generate individual occurrences, each with its own attendance and status.
- Payments and payouts through Stripe and PayPal, with a transaction ledger, organizer balances and settlement (payment screens built together with the wider team).
- Notifications: SendGrid/Brevo email, Twilio SMS and scheduled jobs with Hangfire; SignalR chat; S3 media.
Database migration
We migrated the database from MySQL to SQL Server: 30 tables and about 39 stored procedures, with a repeatable provisioning script.
Supporting services
A .NET 8 reminder worker, a Node/Socket.IO/MongoDB chat server, an Angular admin portal and EC2 deployment scripts.