Daniel Litvak professional headshot

Computer Engineer

Daniel Litvak

Entering 3rd Year Computer Engineering at UBCVancouver, BC

Open to work.

I build full-stack web apps, desktop tools, and simulations that turn technical ideas into software people can inspect, test, and use.

Send me a messageResumeView my resumeGitHubOpen my GitHubLinkedInOpen my LinkedInAboutLearn more about meAdminOpen the admin dashboard

Recent work

Project Highlights

All projects

Web Applications

Browser-based tools and course applications where the work is data modeling, workflow design, and making technical state inspectable.

12 projects
Territory map with coloured door pins along a Vancouver block, a drawn territory boundary, and a microphone dock

knockabase

A door-to-door canvassing app for an HVAC electrification crew. A rep speaks a knock between houses and a language model turns loose speech into a validated record on a clustered territory map, with an offline queue for streets that have no signal.

Next.js
TypeScript
Supabase
+3
Screenshot of DMTT Academy

DMTT Academy

A full-stack coaching platform built for a private table tennis coach: paid self-paced courses with a block-based content editor, Stripe enrollment, protected Mux video, a Google-auth student portal, and an admin dashboard for students, revenue, and reviews.

Next.js
TypeScript
Stripe
+2
A procedurally generated phone rendered at an angle in the studio, showing a real app screenshot on its screen

Mockup Studio

A browser-only studio for product mockup videos: drop in a screenshot or a screen recording, place it on a procedurally generated device, animate it, and encode an MP4 or WebM on your own machine. No backend, no upload, and an end-to-end test that asserts nothing but blob and data URLs leaves the local origin after load.

TypeScript
React 19
Three.js
+2
The simulator at cycle 6 of the load-use hazard preset: one stall counted, and a bubble sitting in the writeback stage

RISC-V Pipeline Simulator

A browser simulator that runs RV32I assembly through an explicit five-stage pipeline and shows, cycle by cycle, where forwarding hides a dependence and where a stall or a flush is unavoidable. Timing is pinned by hand-computed stage traces inside a 63-case suite, so a machine that reached the right answer on the wrong schedule fails the tests.

TypeScript
React
Vite
+2
Screenshot of WFC Visualizer

WFC Visualizer

A live, interactive Wave Function Collapse visualizer. The real Python and NumPy engine runs in the browser through Pyodide (WebAssembly), so a paintable sample drives an animated overlapping WFC solve with no server.

Python
NumPy
Pyodide
+2
Extrema Arcade gameplay: a curve on a dark grid with one point frozen inside the answer gate, above the five-way answer pad

Extrema Arcade

A calculus game from my tutoring site, rebuilt in Flutter for Android, Windows, and web from a single codebase. The port is checked against the browser original by executing the original's own source under Node and asserting the Dart engine reproduces every curve sample, point, and grade to 1e-9.

Flutter
Dart
CustomPainter
+1
Screenshot of NURS 180 Wellness Log

NURS 180 Wellness Log

A local-first accountability tracker for daily commitments, private review, and sample-data exploration without a backend account system.

HTML
CSS
JavaScript
+1
Screenshot of StudentLife Course Explorer

StudentLife Course Explorer

A CPEN 221 Java team project that searches course records and structures workload, difficulty, and review data for student planning.

Java
Course tooling
Team project
+1
Screenshot of Package Fit Visualizer

Package Fit Visualizer

A Three.js package-fit utility with editable box dimensions, GLB upload, drag controls, camera presets, and cleanup-aware model handling.

HTML
CSS
JavaScript
+1
Screenshot of Simple GPX Viewer

Simple GPX Viewer

A browser-only GPX analyzer that keeps private activity files local while computing route, pace, elevation, segment, and export data.

HTML
CSS
JavaScript
+2
Fortune Cookie 2.0 mod interface running inside the Cookie Clicker game

Fortune Cookie 2.0

A Cookie Clicker mod update that scans seeded spell RNG in browser-safe chunks to forecast rare Sweet / Free Sugar Lump outcomes.

JavaScript
Browser mod
Seeded RNG
+1
Ping test dashboard charting endpoint latency over repeated request samples

Ping Test Dashboard

A browser diagnostics dashboard that repeatedly samples endpoints, charts request timing, and summarizes min, median, max, average, and jitter.

Chart.js
JavaScript
Networking

Tooling Applications

Focused utilities where the useful work is parsing, modeling, native integration, or automating a repetitive technical workflow.

6 projects
A waveform from the integration testbench: one message asserted on the input, the decision five clock cycles later, and the design's own latency counter reading five

FPGA Market Data Processor

A market-data hot path for a DE10-Lite FPGA: a packed 38-bit message runs through a parser, an eight-level-per-side order book, a fixed-point signal engine, and a stateful pre-trade risk gate, reaching an accept-or-reject decision in a fixed five clock cycles at one message per cycle. Held to that contract by 47 self-checking cocotb tests scoreboarded against golden Python models.

SystemVerilog
cocotb
Icarus Verilog
+2
Deep zoom into the Mandelbrot set rendered by a Vulkan compute shader, showing an intricate blue and orange spiral

Vulkan Compute Lab

A GPU compute-shader harness with no graphics pipeline at all: a compute shader writes an offscreen storage image that is blitted straight to the swapchain, so there is no render pass, no framebuffers, and no vertex or fragment stages. Shaders compile at runtime, so saving a file reloads it live.

C++20
Vulkan
GLSL
+2
The bridge's dashboard showing watcher health, a routed conversation, rolling token windows and per-run cost, populated with sample data

Telegram Bridge

A private phone-to-PC bridge. An always-on Windows daemon long-polls a Telegram bot, and a message from my phone becomes a headless agent run on my workstation: answered, filed into my notes, or written as code on a throwaway git branch. Routing is decided by the structure of the message rather than by guessing at intent.

Python
Telegram Bot API
Automation
+1
Screenshot of Line by Line

Line by Line

A local-first encrypted desktop journal built around delayed reflection: entries seal on submit and stay unreadable until an unlock date, stored in an AES-256-GCM SQLite vault whose key is never persisted.

C#
.NET 7
Avalonia
+2
Screenshot of ClipTrim

ClipTrim

A Tauri and Rust desktop utility for scanning clip folders, marking segments, extracting previews, and exporting cuts through FFmpeg.

Rust
Desktop tooling
Media

Simple Nodal Analysis Tool

A Flask and NumPy circuit solver that builds MNA matrices, solves node quantities, and reports topology diagnostics.

Python
Flask
NumPy
+1