Louis Mascari

Full-stack engineer at Songtrust. I own features end to end, from planning with Product and Design to production.

Songtrust helps songwriters and publishers register and collect the royalties they're owed worldwide, and I build the products they use to do it.

On my own time I built MangoWave, a free, no-install browser audio visualizer in the tradition of Winamp and MilkDrop, and co-created MIMIC, a session-replay framework spanning app instrumentation, a backend pipeline, and a playback dashboard.

Selected work

Two open-source projects.

Open source · Case study

MIMIC

An open-source, self-hosted session-replay framework for debugging errors, built by a team of four. When something breaks, it records the user session (DOM mutations captured with rrweb, plus custom interceptors that monkey-patch fetch, XHR, and WebSocket for network activity) and replays it as a live DOM reconstruction inside an iframe.

The backend runs a four-stage telemetry pipeline across three stores: Redis buffers active sessions with incremental RedisJSON appends, an event-driven Redis pub/sub subscription fires on key-expiry the moment a session ends to compress and archive its events to S3, and PostgreSQL holds the queryable metadata. Ships with a Python CLI on PyPI to instrument a target app, an Express ingestion server, and a React dashboard for playback.

  • Python
  • React
  • Node.js
  • rrweb
  • Redis
  • S3
  • PostgreSQL
Open source · Live in production

MangoWave

A free, no-install browser audio visualizer built on a fork of the butterchurn engine. The base engine couldn't parse newer shader presets, so I compiled an HLSL to GLSL ES 3.0 converter to WebAssembly and ran it on the fly in a Web Worker so it never blocks the main thread. I hand-checked each new preset on desktop and mobile before shipping it, more than doubling the engine's default MilkDrop library. I also patched the engine for production issues: frame-rate normalization for high-refresh displays, GPU memory and WebGL context-loss fixes, and faster startup on mobile.

Cross-device "rooms" sync peer-to-peer over WebRTC, and separate windows or monitors on one machine stay in sync over BroadcastChannel, both with no backend. A small serverless AWS stack handles optional Spotify and cloud-sync. Covered by unit and end-to-end tests.

  • TypeScript
  • React
  • WebAssembly
  • WebRTC
  • Web Workers
  • AWS (CDK · Lambda · DynamoDB)
  • Playwright

Also built

aloud

A local, offline voice toolkit for when you'd rather listen than read. Claude Code speaks a short recap each turn with per-tab status glyphs and a menu-bar player, plus a companion app that reads PDFs aloud. One on-device neural voice, no cloud.

  • JavaScript
  • Node.js
  • Kokoro TTS
  • Lua
  • Swift

Request-Neko

A webhook and HTTP request inspector, built with a team of four. Spin up a unique endpoint, point any client or webhook at it, and every request streams in live with its method, path, headers, and body, pretty-printed or raw. Each endpoint gets its own subdomain behind Nginx, with requests persisted for later inspection.

  • Node.js
  • Express
  • React
  • MongoDB
  • PostgreSQL
  • Nginx

Supervisory Tracker

A Sinatra CRUD app I built for physical therapists, drawn from my own years in the clinic. It tracks patient reevaluation due dates and the supervision requirements for physical therapist assistants, so a caseload stays compliant without living in a spreadsheet. Postgres for persistence, with server-side validation.

  • Ruby
  • Sinatra
  • ERB
  • PostgreSQL

Stack

Frontend

  • TypeScript · JavaScript
  • React · Next.js
  • HTML / CSS
  • Web Workers · WebRTC
  • Tailwind · MUI

Backend & data

  • Python · Django
  • Node.js · Express
  • GraphQL · Apollo Federation · REST
  • PostgreSQL
  • MongoDB · DynamoDB
  • Redis

Cloud & infra

  • AWS (Lambda · ECS · API Gateway · Cognito · S3)
  • CDK · IaC · Docker
  • CircleCI · GitHub Actions
  • Nginx · Caddy

Quality & tooling

  • Playwright · Cypress
  • Jest · Vitest
  • Datadog · Sentry · PostHog
  • Claude Code
Portrait of Louis Mascari

About

Most of my time at Songtrust has gone into the tools music publishers use to collect royalties, on a Python/Django and React/TypeScript stack where I've owned initiatives end to end: the Business Signup Migration and Draft State epics, moving the core song-submission flow off legacy Django to React, and platform hardening like multi-factor auth and user-enumeration prevention. More recently I've moved into leading development on a new platform, working directly with our head of technology to build it. It's a GraphQL federation layer (TypeScript, Node, Next.js, Apollo Federation) that unifies data across operating companies into one hub, with multi-tenancy and row-level security.

Before software, I practiced as a Doctor of Physical Therapy. I managed complex patient caseloads, supervised physical therapist assistants, and worked daily with interdisciplinary care teams. As a traveling physical therapist, I took three- to six-month stints at underserved clinics, taking over full caseloads on arrival to keep care continuous. That work taught me to move without perfect information and to pull in the right people at the right time. I bring the same to engineering.

I retrained through Launch School and a CS degree and moved into engineering full-time in 2024. Early on, I landed accepted patches to the Firefox codebase.

Outside work: video games, lifting, and open source. Happy to talk about any of it, or the move from healthcare into engineering.