
Malin Market
A stall-rental platform for a 406-stall, 12-zone market in front of Chiang Mai University — vendors browse an interactive market map, check live availability, and request a stall in a few steps, while the team manages tenants and bookings from one admin system. Built end to end as a solo engineer, owning both development and infrastructure — from a pnpm monorepo of a Next.js frontend, a NestJS API with LINE Login, and a shared Prisma data layer, to a containerized stack on AWS EC2: Docker Compose services behind a Caddy reverse proxy, PostgreSQL 16 persisted on a Docker volume, and a GitHub Actions pipeline that gates every release on Playwright E2E tests, pushes images to GitHub Container Registry, and deploys over SSH, all fronted by Cloudflare. The timeline was cut from 25 days to 14 as the launch date kept moving up, and the platform still shipped to production on schedule.
Next.js · NestJS · TypeScript · Tailwind · Prisma · PostgreSQL · Docker · Caddy · AWS EC2 · GitHub Actions · Playwright · Cloudflare · LINE Login








