I build web applications, from the interface and API to the tests that check how they work together.
I'm drawn to the engineering around the feature as much as the feature itself — testing, accessibility, authentication, application architecture, deployment, and making frontend and backend systems work well together.
Right now I'm pushing into Rust and WebAssembly — using WASM for compute-heavy domain logic behind native Web Component UIs with no framework in the render path. I write about what I learn at Journey to Code.
Core: JavaScript · TypeScript · React · Node.js · Express · Web Components · Rust/WebAssembly
Seven featured projects — each links to a full case study on mnix.dev
An open-source, self-hosted blogging platform where every post is a Markdown file you control.
Build notes & technologies
I wrote the core in Rust so one engine powers both the openblog command-line tool and a WebAssembly build for the browser. Native Web Components add search, code copying, and runnable Rust lessons on top of HTML that works without JavaScript.
Rust WebAssembly Web Components Markdown Playwright
A private household coordination app for lists, routines, handoffs, and chat, with on-device encryption.
Build notes & technologies
I wrote the household logic in Rust and compiled it to WebAssembly, then built a framework-free Web Components interface. I also built a Node.js sync relay that stores and forwards only encrypted data.
Rust WebAssembly Web Components PWA IndexedDB SQLite
An open-source tool that turns GitHub activity into interactive project maps and README-ready SVGs.
Build notes & technologies
I built a shared Rust graph engine used in the browser, on the command line, and in a GitHub Action, alongside an accessible Web Components Studio.
Rust WebAssembly Web Components SVG GitHub Actions
A browser-based GitHub profile README editor with editable sections, a live preview, and Markdown import and export.
Build notes & technologies
I built the editor from native Web Components with local drafts, and added optional WebAssembly acceleration for README Health statistics with a JavaScript fallback.
JavaScript Web Components WebAssembly PWA Playwright
An open-source, self-hostable learning platform that I independently evolved from Sprout, a team-built financial-literacy app.
Build notes & technologies
I built modular curricula, administrator-managed themes, portable content packages, and a single-service deployment where Express serves the React app alongside the API.
React Node.js Express MongoDB Playwright
A React task manager with Airtable-backed tasks, inline editing, and searchable, sortable lists, extended from a Code the Dream guided project.
Build notes & technologies
I added optimistic updates that roll back when a save fails, cached sort and filter views, and regression tests for API errors and keyboard interactions.
React Airtable Vite Vitest
An installable cash-drawer calculator that totals payments, compares them with expected cash, and saves daily counts.
Build notes & technologies
I built the counting control as a Custom Element with Shadow DOM and custom events, then added on-device history and offline caching.
JavaScript Web Components PWA Service Workers
I write at Journey to Code about the things I'm building and learning — JavaScript, Web Components, Git, Rust and WebAssembly, application architecture, and experiments worth understanding beyond just getting the code to work.
📚 Featured series
- Commit to Success: Mastering Git — Moving beyond basic commands to master version control, branches, merging, and real-world collaboration.
- Journey to Web Components — Building reusable UI architecture without heavy frameworks using Custom Elements, Shadow DOM, and native browser APIs.
- Mastering the Fetch API & Browser Storage — Network requests, client-side persistence (IndexedDB, Cache API), and resilient offline-first design.
- Mastering the Web Audio API — Exploring creative coding, spatial audio, synthesis, and processing directly in the browser.
- Coding Patterns Demystified — A deep dive into the Model-View-Controller pattern with shipping code.
✍️ Recent articles
Automatically synchronized from journeytocode.io via GitHub Actions.
- A Button Is Not a Rule. — Build one Web Component that draws the Rust engine, turns clicks into game.click(), keeps time, and saves progress in th...
- JavaScript Does Not Get the Rules. — Compile a Rust idle-game engine to WebAssembly, give JavaScript a small adapter instead of the rules, and run the same t...
- Closing the Terminal Is Not Game Over. — Teach a Rust idle game to save itself as JSON and load itself back. Add your first dependency with serde, and let Result...
- We Accidentally Built a Game Engine. — Split a Rust game into modules and a library crate, step by step, with tests passing after every move. Learn mod, pub, a...
- Idle Is Not a Timer. — Make your Rust idle game progress while you are away. Add tick(seconds), a for loop, and tests that run an hour of game...
Looking for full-stack and frontend positions where performance, offline-first design, and framework-agnostic UI are taken seriously.
Portfolio · Journey to Code · LinkedIn · Resume




