Software Engineer · Circle POS
Worked on restaurant-focused web tools, including digital menus, QR ordering flows, API integrations, POS database communication, and performance fixes for mobile and tablet screens.
Software Engineer
I build full-stack web applications with React, Next.js, APIs, and databases. Lately, most of my work has been around restaurant and POS-related tools, including QR ordering, digital menus, admin dashboards, and payment flows.
What I Work On
My recent work usually sits between the frontend, API layer, database, and the parts of the product staff actually use during a busy day.
About
I am a software engineer with hands-on experience building and debugging full-stack web applications. I spend a lot of time on the parts that are easy to miss: API responses, database records, async UI state, edge cases, and performance on mobile or tablet screens.
My recent projects have been close to restaurant technology: digital menus, QR ordering, POS/database integration, and admin tools that staff can use without needing to think about the technical pieces underneath.
Skills
Experience
Worked on restaurant-focused web tools, including digital menus, QR ordering flows, API integrations, POS database communication, and performance fixes for mobile and tablet screens.
Built parts of a Korean taxi dispatch platform with React, Google Maps API, REST APIs, ride tracking, driver matching, and debugging work around async data flow.
Developed a Yelp-like web application using Node.js, Express.js, MongoDB, HTML, CSS, and EJS while implementing backend APIs and improving frontend usability.
Featured Project
A QR ordering system I built to test how a small restaurant could take table orders, accept card payments, manage orders from a dashboard, and send accepted orders to a kitchen printer.
Overview
Customers scan a table QR code, browse the menu, place an order, and pay online. After payment, the order shows up in the admin dashboard for staff to accept or cancel.
When staff accept the order, the app creates a kitchen print job. I wanted this to feel closer to how a small restaurant would actually use it, instead of stopping at a simple demo checkout page.
Problem
If ordering, payment, order review, and kitchen tickets live in separate places, staff have to fill in the gaps by hand. That gets hard to manage quickly when orders start coming in.
Solution
I connected the steps with Next.js, Supabase, Stripe, and Star CloudPRNT. Each table has its own URL, paid orders show up in the dashboard, and accepted orders are queued for the kitchen printer.
Order Flow
Each table uses its own QR link, so the order keeps the table context.
The customer places the order and pays by card through Stripe Checkout.
Staff review the paid order in the dashboard and accept or cancel it.
Accepted orders become CloudPRNT jobs for the kitchen printer.
Key Features
Each table has a separate QR link, so the dashboard can show where the order came from.
Customers can complete payment by card before the order goes to the staff dashboard.
Staff can accept, cancel, complete, and review orders without touching the database.
The history page shows daily revenue and order details by selected date.
Accepting an order creates a CloudPRNT job that a compatible kitchen printer can poll.
The project is deployed on Vercel with a custom domain and server-side API routes.
Project Tech Stack
Contact
I am especially interested in full-stack web applications, API integrations, payment systems, database-backed products, and restaurant/POS technology. You can reach me at woochangchang@gmail.com.
Project Highlight