Open to full-time roles

BlaineCowen

Full stack developer. I spent ten years in Texas classrooms making hard things click for other people, and now I build the software that does it: sight-reading generators, ear-training games, and a reader for choral sheet music.

Years teaching before I wrote code
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.

A selection, not the whole list. Most 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 actually needs, graded against the Texas UIL levels I used to prepare students for. Students can play along to a backing track, tune with the built-in tuner, and practise 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, not single cases. That is the part I am proudest of, and the reason I trust it 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

A collection of the workflows I leaned 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

A multiplayer trivia challenge with category-based rounds and fast, classroom-friendly gameplay. Built so a teacher can start a game in seconds without setup or 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 up through a classroom, which turns out to be unusually good training for this work.

Where I started

Ten years in the classroom

Teaching music in Texas public schools. The job was the same every single day: take something genuinely complicated, and find the version of it that finally clicks for the person in front of you. That skill did not stay behind when I left.

The first builds

Problems I actually had

Once I noticed it I could not stop noticing it. Taking roll for a hundred students took too long. Sight-reading exercises ran out. Twenty years of contest results existed, but nobody had put them in one place. Each of those became something I built, and then something other teachers depended on.

Real constraints

Software a school can actually run

Two builds taught me the most. A pickup system for a line of about 200 cars, shared live by several staff on their phones, that clears in around 30 minutes. And a specialties schedule for five classes across three days, with logic involved enough that I prototyped it in Google Sheets before wrapping it in an Apps Script interface. Both handled student records, so both were built to stay inside Google Workspace and within FERPA.

Getting serious

Fundamentals, then shipping in public

CS50 for the parts I had been working around rather than understanding. Python and SQL first, because the data problems came first. Then React and TypeScript, because the people using these things deserved a real interface.

Now

Looking for a team to build with

Lately that has meant Octavo, which reads choral sheet music from a PDF or phone photos, and a pair of audio plugins in C++, which is where I went once the web stopped being the hard part. Every one of them started with a problem someone actually described to me. I am looking for a full-time engineering role where that instinct is useful.

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 analytical thinking, pattern recognition, and holding a complex system in your head all at once. It turns out that transfers.

CS50

Harvard University

Data structures, algorithms, memory, and web development. The fundamentals I had been routing around instead of understanding.

Agile Certification

IBM

Agile methodology and the collaboration practices behind modern software teams.

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