Full-Stack Engineer — Phnom Penh, Cambodia

Lythean
Sem

They call me Zen. I build calm, dependable software for real businesses — currently the senior engineer keeping a live supermarket's point of sale running, every day.

click to stir the wind

Selected Works

eight systems, and where each one stands

drag · hover · tap
01Retail Suite — In Production

VinMart

The software that runs a real supermarket, every day.

The retail suite behind VinMart, a supermarket in Phnom Penh — point of sale, barcode inventory, purchasing, and reporting. When the original team moved on, I became its sole engineer: I kept the live system shipping daily and built its complete next-generation replacement from the ground up, in parallel. Today I'm the senior engineer on the small team that has grown around it.

  • Inherited a live multi-branch POS alone — now its senior engineer on a small team
  • Khmer-first bilingual, down to thermal-printer receipts
  • Legacy data migration reconciled to the cent
  • Offline-first rebuild, staged for cutover — a sale is never silently dropped
Legacy — liveLaravelReact
Rebuild — stagedNext.jsSupabaseDrizzle ORMPostgreSQL

Private system — running daily at VinMart, Phnom Penh

drag · hover · tap
02Client Platform — Live Events

EmotionWork

A concert company's stage, rebuilt in the browser.

A production platform for Visual Emotionwork, a concert and event production company in Cambodia running since 2013. Customers browse the real equipment catalog, design their own stage in an interactive 3D editor, and book consultations that auto-create Zoom meetings, send confirmations, and log to the company's operations sheets. Built with a three-person university team — and still live on the client's domain today.

  • Still live on the client's domain today
  • In-browser 3D stage designer — drag-and-drop equipment, templates, PNG/PDF export
  • Bookings wire together the Zoom API, email confirmations, and Google Sheets
  • Type-safe tRPC API over MongoDB Atlas with role-based access control
Next.js 15tRPCMongoDBThree.js / R3FNextAuthCloudinaryZoom API
drag · hover · tap
03SaaS — Social Publishing

Ripple

Write once. Publish everywhere.

A social-media management platform where one post fans out to Facebook, Instagram, TikTok, YouTube, and Telegram — across multiple accounts per platform. Built as a multi-tenant SaaS with scheduled publishing and a composer that previews each network's constraints before you hit send.

  • One composer, five platforms, many accounts
  • Cross-platform publishing via the Zernio API
  • Multi-account workspaces with role-based access
Next.js 16React 19PrismaPostgreSQLNextAuth v5Tailwind v4

Personal build — archived, no public release

drag · hover · tap
04Security — Government-Grade

Encrypted Images

Photos that only the right eyes can open.

An end-to-end encrypted photo-sharing platform built for government personnel. Every image is encrypted in the browser with AES-256-GCM before it ever leaves the device — the server only stores ciphertext. Decryption requires an exact 25-character code shared out-of-band, with a strict three-tier role model on top.

  • Client-side AES-256-GCM — zero-knowledge server
  • scrypt key derivation, @noble cryptography
  • Role hierarchy: owner, admin, employee
  • English + Khmer, end to end
Next.js 15Supabase@noble/ciphersEdge FunctionsZodnext-intl

Built for a government workflow — shelved, deployment uncertain

drag · hover · tap
05PWA — Micro-Commerce

KH-Track

Faster than a notebook.

A multi-tenant sales and inventory PWA for Cambodian micro-entrepreneurs — street vendors, market stalls, TikTok live sellers. Mobile-first and deliberately minimal: recording a sale has to be quicker than scribbling it in the paper notebook it replaces. Each business is isolated with row-level security.

  • Multi-tenant isolation via Postgres RLS
  • Installable PWA, mobile-first flows
  • Three roles with a built-in kill switch
Next.js 16React 19SupabaseTailwind v4PWA

Personal build — archived, no public release

drag · hover · tap
06POS — Nightlife

Drift

A point of sale that keeps up after midnight.

A point-of-sale system designed for the pace of a nightclub — bottle service, table management, and split bills handled at speed, in the dark, on touch screens. Built as a fast Vite + React app with an interface tuned for low light and high volume.

  • Touch-first ordering and table flow
  • Dark, high-contrast UI for low-light venues
  • Component system on shadcn/ui + Radix
ReactViteTypeScriptshadcn/uiTanStack Query

Personal build — archived, no public release

drag · hover · tap
07Hospitality — Client Work

Eleven One Kitchen

A healthy kitchen's home on the web.

A mobile-first website for Eleven One Kitchen, a fresh-and-healthy Cambodian restaurant in Phnom Penh serving since 2014. Menu browsing built for phones first, QR codes that drop guests straight onto the right table's menu, and a visual language that matches the restaurant's fresh identity.

  • QR-code table menus
  • Mobile-first menu and ordering flows
  • Khmer + English typography system
Next.js 16Tailwind v4TypeScriptqrcode.react

Built for a real Phnom Penh restaurant — archived, never shipped

drag · hover · tap
08Game — Computer Vision

LaneDash

Played with your body, not a controller.

A motion-controlled 3D endless runner, built as my senior capstone with a three-person team. Your webcam is the controller: OpenCV and MediaPipe track your body — jump, crouch, lean to switch lanes — and stream every move to the Unity game over UDP in real time. A MET-based calorie system turns the run into a workout, personalized to your height and weight.

  • 97% of user-testing players said they'd play again
  • Python pose detection driving Unity gameplay over UDP — no sensors, no headset
  • Jump, crouch, and lean detection with live calibration overlays
  • MET-based calorie tracking personalized per player
UnityC#PythonOpenCVMediaPipeUDP

The Way

about me

I'm Lythean Sem — friends call me Zen — a full-stack engineer from Phnom Penh, Cambodia.

I learned to build software the honest way: by shipping systems that real people depend on every day — retail counters that can't stop mid-sale, platforms handling sensitive data, tools used by teams who don't care what framework it is, only that it works. If it breaks, someone's day breaks with it. So it doesn't break.

That responsibility shaped how I work. I care about software that stays calm: offline-first when the network wobbles, bilingual when the team is, encrypted when the stakes demand it, and fast everywhere — because in the real world, nobody waits for a spinner.

— Zen

I

Sincerity

Honest code. Readable, boring where it should be, and truthful about what it does — no clever tricks that lie to the next engineer.

II

Tempering

Software is folded steel. I ship early, listen hard, and refine relentlessly — every real system I run has been beaten into shape by daily use.

III

Stillness

Calm systems, calm engineer. Predictable deploys, defensive defaults, and software that keeps working quietly when the network doesn't.

Frontend

  • React 19
  • Next.js
  • TypeScript
  • Tailwind CSS
  • Three.js / R3F
  • shadcn/ui

Backend

  • Node.js
  • PostgreSQL
  • Supabase
  • Prisma / Drizzle
  • tRPC
  • MongoDB

Craft

  • Offline-first PWAs
  • Client-side crypto
  • i18n (EN/KH)
  • Unity + OpenCV
  • Vercel
  • CI/CD

Let's Talk

send word

Have a product to build, a system to steady, or an idea that needs a calm pair of hands? I'm open to full-time roles — remote or in Phnom Penh. My inbox is open.

hi@lytheansem.com
ResumeGitHub ↗LinkedIn ↗Phnom Penh, Cambodia