Mark Sui

Selected Work

Hardware, tested.
Tools, built to use.

Explore RTL systems, implementation results, and supporting software. Each project brings its case study, source, and reports together.

15 projects across hardware, tools, and software.

Hardware & Research

RTL implementation, verification, and measured engineering results.

MAGE RTL generation report cover
RTL Generation Research / Python / VerilogEval Reported passes: 138/156 → 141/156

MAGE RTL Generation

Extended a multi-agent Verilog generation flow with failure routing, route-specific repair prompts, edit acceptance guards, and task-local debugging memory.

Verilog MAGE LLM Debugging Icarus Verilog
Details
Problem

LLM-generated RTL can compile, simulate, and still fail from interface, timing, or behavioral mismatches.

Approach

Classified failures into syntax, interface, logic, or ambiguous routes and preserved candidate checkpoints per task.

Evidence

Routing cut estimated cost and runtime by 3.9%; memory raised full-set raw passes from 138/156 to 141/156.

Benchmarked on VerilogEval-V2
Control layer routing + local memory

The report frames routing as an efficiency control and memory persistence as the stronger correctness signal for future combined experiments.

GPU-accelerated GGM tree report cover
CUDA Cryptography / C++ / Keccak + Spongent Team report · GPU cryptography benchmarks

GPU-Accelerated GGM Tree Construction

Team CUDA cryptography project for GGM tree construction. My contribution focused on integrating Spongent and Keccak backends.

CUDA GGM Tree Keccak Spongent
Details
Problem

GGM trees need millions of PRF evaluations, making throughput the bottleneck for protocol-scale workloads.

Approach

Used a flat breadth-first memory layout and one GPU thread per parent node to expand levels in parallel.

Evidence

Keccak reached 202M leaves/sec at depth 20; Spongent GPU time dropped from 2041 ms to 108 ms at depth 12 after optimizations.

Memory layout flat BFS array
Main optimization DRAM to registers

The report compares software-friendly Keccak with hardware-native Spongent, showing why relative speedup and absolute throughput tell different performance stories.

Engineering Tools

Interactive tools and native utilities.

Logic and CMOS Studio interface showing the Boolean formula workspace and gate-level circuit diagram
Educational EDA Tool / React / TypeScript Boolean logic → Verilog → CMOS

Logic & CMOS Studio

Browser tool for Boolean logic, truth tables, K-maps, simplified equations, Verilog, and static CMOS pull-up / pull-down schematics.

Digital Logic CMOS Verilog K-map
Details
Problem

Logic classes often split truth tables, K-maps, Verilog, and transistor reasoning into separate tools.

Build

One browser studio connects Boolean input to simplified equations, generated HDL, and static CMOS views.

Signal

Shows hardware reasoning across abstraction layers instead of stopping at a polished interface screenshot.

Built around logic-to-layout reasoning
Interface goal compare views quickly

The project emphasizes traceability between Boolean input, minimized logic, generated Verilog, and static CMOS structure.

Hardware Interview Trainer interface screenshot
Hardware Prep Tool / React / TypeScript Structured practice for hardware interviews

Hardware Interview Trainer

Local-first interview practice app with a large question bank, mock rounds, review history, progress analytics, and JSON import / export.

Hardware Prep Analytics Local-first
Details
Problem

Hardware prep is hard to repeat when questions, missed concepts, and timing live in scattered notes.

Build

Timed sessions, review history, analytics, and import/export turn practice into a durable loop.

Signal

Local-first data keeps the tool useful across multiple sittings without making prep feel heavy.

Built around repeatable practice loops
Data model portable local progress

Question sessions, missed-question review, and analytics are designed to keep hardware interview prep structured over multiple sittings.

MarkMacZip project page screenshot
macOS Utility / Swift / C++ Native utility with privacy-first file handling

MarkMacZip

Archive utility for macOS that compresses and extracts common formats, supports password workflows, and keeps files on device.

macOS Compression Privacy
Details
Problem

Archive workflows are frequent enough to deserve a focused native utility instead of a loose script.

Build

Compression, extraction, passwords, job history, and releases are wrapped in a Mac-first interface.

Signal

The project balances product polish with privacy-first local file handling.

Built around native file workflows
Product focus local-only archive handling

The app frames compression, extraction, password handling, and release delivery as a polished desktop utility rather than a script wrapper.

Other Projects

Embedded systems, XR, maps, and data applications.

CourseWatch project page screenshot
macOS Utility / Swift Coursework workflow

CourseWatch

Canvas deadline tracker for the macOS menu bar, built as a local-first coursework companion.

Details
  • Keeps deadline checks close to the operating system instead of another browser tab.

Focused on compact status visibility, deadline scanning, and a native-feeling menu bar workflow.

MarkPDFLock project page screenshot
macOS Utility / Swift Document privacy

MarkPDFLock

Password-protects PDFs on Mac with batch export and local-only document handling.

Details
  • Frames a common document-security task as a fast native utility.

Built around a narrow document workflow: select PDFs, apply protection, and export without sending files elsewhere.

JobAgentMac project page screenshot
Offline Agent / JavaScript Private workflow assistant

JobAgentMac

Offline job-application assistant focused on keeping application workflow data on device.

Details
  • Prioritizes local storage for sensitive job-search notes and status tracking.

Organizes application state, notes, and follow-up context with an offline-first privacy posture.

Indoor Monitoring project page screenshot
Embedded Monitor / C Embedded sensing

Indoor Environmental Monitoring System

ESP32 environmental monitor for CO2, comfort metrics, and live indoor status display.

Details
  • Connects sensor data to clear room-status feedback and practical thresholds.

Pairs embedded sensing with a simple status interface so readings are useful at a glance.

CloserXR Sales Negotiator demo title card
Mixed Reality / Unity / C# Conversation-aware avatar prototype

CloserXR Sales Negotiator

Meta Quest mixed-reality prototype where a sales-agent avatar practices a life-insurance pitch through speech, gesture, and spatial movement.

Details
  • Integrates speech input, Gemini conversation history, Android TTS, room-aware pacing, and a live VR status panel.

Routes user speech through AutoVAD or Android STT, maps conversation intent to avatar gestures, and mutes the mic during TTS to reduce echo pickup.

China Travel Map interface screenshot
Interactive Map / JavaScript Geographic exploration

China Travel Map

Scenic-area map with search, language switching, images, and region highlights.

Details
  • Combines location browsing, multilingual labels, and image-backed place context.

Uses map browsing and structured place metadata to make scenic-area exploration more visual and searchable.

Google Maps Landmark interface screenshot
Landmark Map / JavaScript Dataset browser

Google Maps Landmark

Static landmark map for the Google Maps miniatures list, using Leaflet for browsing and filtering.

Details
  • Turns a landmark collection into a searchable, map-based browsing interface.

Transforms a static landmark list into an interface with geographic context, filtering, and fast inspection.

Climate Emulation Model repository screenshot
Data Science / Jupyter Notebook Model experimentation

Climate Emulation Model

Kaggle competition work around climate emulation modeling and machine learning experimentation.

Details
  • Documents a model-development workflow around climate emulation data.

Captures experimentation around climate model emulation, data preparation, and notebook-based iteration.