Building the room…

Projects / The workshop

Ming Jer’s room.

A living workshop for the things I build, play, and keep learning.

Read the write-ups
§

Selected Work

  • Math Math Math — Practice Everyday Math In a Fun Way
    01Flagship · 2024 — present

    Math Math Math

    Practice everyday math in a fun way.

    A platform with hundreds of everyday mental-math games — arithmetic, finance, sports, daily scenarios — built for both solo skill-building and real-time multiplayer. Typed input, no multiple choice, not LLM-cheatable.

    • Next.js
    • Realtime
    • Mental Math
    • Multiplayer
  • clgraph column lineage diagram
    02Open source · SQL lineage

    clgraph

    Column-level lineage for SQL.

    A Python library that extracts column-level lineage from SQL queries through static analysis. Understands which source columns feed each output column — without executing queries or connecting to databases.

    • Python
    • SQL
    • Lineage
    • Static Analysis
  • Modern data platform architecture diagram
    03Data engineering · Reference platform

    Modern Data Platform

    End-to-end streaming & batch pipeline.

    A production-style platform demonstrating modern data engineering practices: streaming + batch ingestion across SaaS sources (Shopify, Stripe, HubSpot), cross-source entity resolution, and a multi-layer medallion pipeline from Raw through Marts.

    • Iceberg
    • Flink
    • Spark
    • Redpanda
    • Trino
    • ClickHouse
    • Airflow
    • Grafana
  • Taiwanese Mahjong — 台灣麻將 十六張
    04Game · Web · iOS · Android

    Taiwanese Mahjong

    16-tile mahjong versus three AIs.

    Single-player 16-tile Taiwanese mahjong against three AI opponents whose skill levels are independently adjustable — a full 16-hand match with dealer rotation, 連莊 continuation, and authentic tai (台) scoring. One TypeScript codebase runs everywhere: static web build and genuinely native iOS/Android via Expo, not a webview wrapper.

    • TypeScript
    • React Native
    • Expo
    • Game AI
  • Rubik's Cube solver showing a colorful scrambled 3×3 cube ready to solve
    05Toy · Rust + WASM

    Rubik's Cube Solver

    Interactive 3×3 solver, step by step.

    An interactive 3×3 Rubik's Cube solver built on the Bevy engine. Enter the cube's colors or a scramble, let it validate the configuration, then watch a step-by-step animation solve it — via a human-friendly layer-by-layer method or a near-optimal two-phase (Kociemba) solver. Runs as a native desktop app and in the browser via WebAssembly.

    • Rust
    • Bevy
    • WebAssembly
    • 3D Graphics
  • Brick Text Builder showing MINGJER in colorful 3D bricks
    06Toy · 3D on the web

    Brick Text Builder

    Interactive 3D LEGO-style text generator.

    Type any text and watch it construct itself, brick by brick, in an animated Three.js scene. The hero on this page uses the same engine.

    • React
    • Three.js
    • 3D Graphics
    • Interactive
  • Brick Text Builder TUI build animation in terminal
    07Toy · Terminal

    Brick Text Builder — TUI

    The same idea, re-imagined in the terminal.

    A Rust terminal app that transforms text into ASCII art using brick-like blocks and Unicode box-drawing characters, with drop physics and marquee scrolling.

    • Rust
    • Ratatui
    • Terminal UI
    • Animation