Kurniadi Ahmad Wijaya
Forward Deployed AI Engineer
Built production-grade AI and software for banking, fintech and enterprise.
Technical Consultant, Software & AI · Metrodata (PT Mitra Integrasi Informatika)
Skip to content

Serupa Ticket Hub: Event Ticketing Platform

An event ticketing platform with an attendee site, an organizer dashboard and an Express API, from event discovery to QR e-tickets.

Key results

  • 3 apps

    Delivered as an Express API, an attendee site and an organizer dashboard

  • 95%

    Share of commits I authored on the attendee site and the organizer dashboard (62 of 65)

  • 34%

    Share of backend commits I authored (45 of 133); my teammate wrote the order and payment code

Role
Full Stack Engineer in a two-person team, responsible for the API foundation, attendee site and organizer dashboard
Period
Jun 2025 to Aug 2025
Client
Serupa
Project type
Featured
Room in the 3D HQ
L3:event-ticketing-platform

Results

  • 3 apps

    Delivered as an Express API, an attendee site and an organizer dashboard

    From the three project repositories.

  • 95%

    Share of commits I authored on the attendee site and the organizer dashboard (62 of 65)

    Non-merge commits in git history from Jun to Aug 2025, excluding commits generated by v0.

  • 34%

    Share of backend commits I authored (45 of 133); my teammate wrote the order and payment code

    Non-merge commits in git history from Jun to Aug 2025.

Problem

Serupa needed its own ticketing platform: organizers publish events with ticket tiers, attendees find events and get free or paid tickets online, and every order ends in a ticket that can be shown at the door. Two freelance engineers built it as three apps between June and August 2025.

Contribution

  1. I set up the API on Express 5 and Bun with routes, controllers, services and repositories over PostgreSQL and Drizzle, plus Helmet, rate limiting, structured logs, seed data and GitHub Actions deploys.
  2. I built accounts and events in the API: JWT access and refresh tokens, email verification and password reset, user and admin roles, event search with filters, a Redis event cache with invalidation, rate-limited view counts and S3 uploads for event covers and profile photos.
  3. I built the attendee site in Next.js with TanStack Query, from event discovery and search to event pages with ticket tiers. It includes a free-ticket flow, checkout with a payment method choice, payment result pages and My Tickets with QR codes, plus SEO metadata and a sitemap.
  4. I turned a v0-generated scaffold into the organizer dashboard and connected sign-in and event creation, editing and listing, with sub-categories and a location map, to the API.
  5. My teammate built ticket orders and payments in the API: quota and per-user limits, payment links and callbacks for QRIS, cards, e-wallets and virtual accounts, PDF invoices, status emails and Socket.IO payment events. My checkout and My Tickets pages call those endpoints.

Architecture

Tech stack

  • Express
  • TypeScript
  • Bun
  • PostgreSQL
  • Drizzle ORM
  • Redis
  • Socket.IO
  • JWT
  • Google OAuth
  • AWS S3
  • Next.js 15
  • TanStack Query
  • Tailwind CSS
  • shadcn/ui
  • GitHub Actions

Related career entryFull Stack Engineer (freelance), Serupa

I am open to freelance or part-time work in software and AI engineering.

kurniadiahmadwijaya@gmail.com
About and contactView CV