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. I build the products they use to do it, and I'm now building a new platform for our parent company, Downtown Music.

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 butterchurn, a WebGL 2 port of the MilkDrop 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, growing the library from 395 to 832 presets. The fork carries 17 documented engine patches, including frame-rate normalization for high-refresh displays, GPU memory leak and WebGL context-loss fixes, and a texture-loading fix that removed a 3–5 second startup freeze 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

Skills

Frontend

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

Backend & data

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

AI & agentic

  • Claude Code · Codex · Gemini
  • Agent orchestration
  • LLM integration (Amazon Bedrock · Claude)
  • RAG (pgvector · embeddings)
  • Bedrock Guardrails

Cloud & tooling

  • AWS (CDK · Lambda · API Gateway · ECS · S3 · CloudFront · SQS · Cognito · Textract)
  • Docker · GitHub Actions · CircleCI · Turborepo
  • Playwright · Cypress · Vitest · Jest · pytest
  • Datadog · Sentry · PostHog
  • Nginx · Caddy
Portrait of Louis Mascari

About

Most of my time at Songtrust (Downtown Music, now part of Universal Music Group) has gone into its royalty administration platform, where independent musicians sign up, submit their songs, and collect the royalties we register and gather for them worldwide. On that Python/Django and React/TypeScript stack I've owned initiatives end to end: the Business Signup Migration and Draft State epics, moving the core song-submission flow off legacy Django templates to React, performance work that cut the royalties dashboard's main bundle by 71%, query and index fixes that made songwriter search 13x faster, and authentication hardening like multi-factor auth and user-enumeration prevention. More recently I've been building a new platform from the ground up: a multi-tenant GraphQL federation layer (TypeScript, Node, Next.js, Apollo Federation) that integrates data across Downtown Music's operating companies. I own the frontend, ship features end to end across the API layer, and review code and make architectural and UI design decisions with engineering, Product, and Design.

With our head of technology, I co-develop the harness we use to build with AI agents: agentic workflows, orchestration, and the verification gates agent-written code must pass. I help Product and Design adopt agentic workflows of their own.

On my own time I'm also building an AI-assisted clinical review tool for healthcare: it reads a consult request, retrieves the matching clinical criteria with RAG, and drafts a decision with references that a physician can review, refine with the AI, and finalize. It runs on AWS with Claude on Amazon Bedrock.

Before software, I spent four years as a Doctor of Physical Therapy: two as a traveling therapist, taking over full caseloads at underserved clinics on three- to six-month assignments, and two in home health. Across both I managed complex patient caseloads, supervised physical therapist assistants, and worked daily with interdisciplinary care teams. 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, moved into engineering full-time in 2024, and I'm an AWS Certified Solutions Architect – Associate. Early on, I landed accepted patches to the Firefox codebase.

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