Open to full-time roles

BlaineCowen

Full stack developer. I've spent ten years teaching music in Texas classrooms, and I build software for the people I teach alongside: sight-reading generators, ear-training games, and a reader for choral sheet music.

Years teaching music in Texas public schools
10
Games live on LearnMusic.fun
17
Texas contest results searchable on uilpml.com
173,600
Automated tests on abcSightReading
1,700+
01Selected work

A few things
I've built.

Most of these started with a problem a colleague described to me, usually about their own classroom.

FlagshipMusic / Generative

abcSightReading

Every sight-reading exercise a choir can buy gets memorized within a week, and writing a fresh four-part one by hand takes longer than the rehearsal it is for. I kept hitting that wall as a teacher, so I wrote a generator instead.

It composes SATB, SSA, TTB and unison exercises from real harmony rules, in the key, range and difficulty a group needs, graded against the Texas UIL levels I prepare my own students for. Students can play along to a backing track, tune with the built-in tuner, and practice piano with graded playback.

Because the output is randomized, I test it statistically: the suite runs to 1,700+ tests, and many of them generate dozens of exercises and assert on rates across them instead of checking one case at a time. I am proudest of that suite, and it is why I trust the generator in front of a room of students.

abc-sightreading.com
abcSightReading screenshot

TypeScript · Astro · Svelte · Tailwind · PostgreSQL · Prisma · Stripe

Exercises, never the same one twice
∞
Formats: SATB, SSA, TTB, unison
4
UIL difficulty levels
5
Accounts, Stripe billing, Postgres
Pro
Octavo screenshot
01Music / OMR

Octavo

Upload a PDF or phone photos of choral octavos and get back an editable score, with the original page beside it. Where the reading is unsure, it shows that spot on the page and asks. Output is MusicXML for MuseScore, Sibelius, Dorico or Finale, MIDI for rehearsal tracks, or a PDF to print.

  • Python
  • OMR
  • MusicXML
UIL Results & PML screenshot
02Data / Search

UIL Results & PML

Every Texas UIL concert and sight-reading entry from 2005 to 2026, joined to the Prescribed Music List so a director can see how often a piece is performed and how those performances score. A Python pipeline scrapes the results, de-duplicates them, and fuzzy-matches director-typed titles to official PML codes; a Next.js front end makes all of it searchable across 7,964 schools.

  • Next.js
  • TypeScript
  • SQLite
  • Python
  • Selenium
  • SQL
LearnMusic.fun screenshot
03Music / Education

LearnMusic.fun

Seventeen ear-training and theory games with solo, classroom, team and four-corners play modes, a projector-friendly full-screen view, and class leaderboards that need no student accounts. Audio is synthesized in the browser; accounts, sessions and premium subscriptions sit on PostgreSQL and Stripe.

  • Next.js
  • TypeScript
  • React
  • Tailwind
  • Tone.js
  • PostgreSQL
Teacher Tools screenshot
04Tooling / Classroom

Teacher Tools

The workflows I lean on most as a teacher, built to share one roster: automated attendance with a check-in kiosk, a points tracker with a class leaderboard, drag-and-drop seating charts, rubric grading, and roster management with CSV import. Add your students once and every tool already knows them. A pre-loaded demo class lets anyone try it without an account.

  • Next.js
  • TypeScript
  • PostgreSQL
  • Prisma
  • React Query
Octivate screenshot
05Audio / MLRuns locally

Octivate

Voice conversion for choral demo tracks: sing the part an octave below where it sits and get back a clear female voice at the right pitch. A Whisper-based encoder keeps the words and discards the singer's timbre, and a diffusion transformer resynthesizes from a target speaker embedding plus the pitch curve shifted up twelve semitones. Runs on Apple Silicon with no account and no upload, and ships with a verification script that measures pitch error, timing drift and speaker similarity against a naive formant warp.

  • Python
  • PyTorch
  • Voice conversion
Jeopardy! Lite screenshot
06Game / Multiplayer

Jeopardy! Lite

Multiplayer trivia with category rounds, scoring and power-ups. A teacher can start a game in seconds, with no setup and no student accounts.

  • Next.js
  • TypeScript
  • React
  • Tailwind
  • Multiplayer
Harmelody screenshot
07Audio / PluginPrivate beta

Harmelody

Two VST3 and AU plugins built on a shared C++ DSP core. Harmelody adds up to four in-key harmony voices, each with its own interval style, level and pan. Harmelody Tune is a standalone autotune with retune speed, flex-tune, formant and natural vibrato. Both take a vocal on an audio track plus chords on a MIDI track and infer the key from those chords, and pitch shifting runs through three interchangeable engines that can be swapped while audio is playing.

  • C++
  • JUCE
  • CMake
  • Real-time DSP
  • VST3
  • AU
02The path

I did not come up
through a CS program.

I came to software through teaching music, and most of what I build still comes out of that job.

Where I started

Ten years in the classroom

I have taught choir in Texas public schools for ten years, first in Pasadena ISD and now in Houston ISD. Most of the job is taking something complicated and finding a version of it the student in front of you can follow. I build software the same way.

The first builds

Problems I had myself

The first things I built fixed my own problems. Taking roll for a hundred students took too long, sight-reading exercises ran out, and twenty years of contest results had never been collected in one place. Each one became a tool, and other teachers started using them.

Real constraints

Software a school can run

I learned the most from two systems built for a school. One runs a pickup line of about 200 cars, with several staff updating it live from their phones, and the line clears in around 30 minutes. The other builds a specialties schedule for five classes across three days; the logic was involved enough that I prototyped it in Google Sheets before putting an Apps Script interface on it. Both handle student records, so both stay inside Google Workspace and within FERPA.

Getting serious

Fundamentals, then shipping in public

I took CS50 to fill in what I had skipped by teaching myself. I learned Python and SQL first, because the data problems came first, then React and TypeScript once other people were using my tools and needed a proper interface.

Now

Looking for a team to build with

My recent projects are Octavo, which reads choral sheet music from a PDF or phone photos, and a pair of audio plugins in C++, which I took on once web apps stopped being the hard part. Each started with a problem someone described to me. I am looking for a full-time engineering role on a team.

03Toolkit

Everything here is in
something I built.

The number beside each is how many of the projects shown here use it. If it is not in one of them, it is not on this list.

Languages

  • TypeScript5
  • Python3
  • SQL1
  • C++1

Frameworks

  • Next.js4
  • React2
  • Svelte1
  • Astro1
  • Tailwind3

Audio, ML & native

  • Tone.js1
  • JUCE1
  • Real-time DSP1
  • CMake1
  • PyTorch1

Data & infrastructure

  • PostgreSQL3
  • SQLite1
  • Prisma2
  • Stripe1
  • React Query1
  • Selenium1
TypeScript/Next.js/PostgreSQL/Python/Tailwind/Prisma/React/Astro/AU/C++/CMake/JUCE/Multiplayer/MusicXML/OMR/PyTorch/React Query/Real-time DSP/Selenium/SQL/SQLite/Stripe/Svelte/Tone.js/Voice conversion/VST3/
04Education

Bachelor of Music Education

University of Texas at San Antonio

Four years of theory and score reading, which is practice at keeping many moving parts in your head at once.

CS50

Harvard University

Data structures, algorithms, memory management in C, and web development. I took it to fill the gaps left by teaching myself.

Agile Certification

IBM

Agile methodology and how software teams plan and run their work.

05Contact

Let's talk aboutwhat I can build.

I'm looking for a full-time engineering role. If you have one, or just want to talk about any of the projects above, I'd like to hear from you.

Based in
Texas, US
Looking for
Full-time software engineering roles
Most at home
APIs, relational data, and React front ends
Elsewhere
GitHub