Brian Romanowski

About

I do applied natural language processing (NLP) and machine learning (ML) research as well as the software engineering and system administration work needed to support it. I thrive in engineering-first organizations with open-development cultures.

Fun is road biking, cooking, coding, camping, reading sci-fi, videogaming, and roasting coffee. Ask me about: biking from Illinois to California, cold-ferment pizza dough, silly side-projects, Isle Royale, books I love, games I love, and my go-to coffee shop Sweet Maria's.

Email me at romanows@gmail.com; read my cv (pdf), ancient abandoned blog, and github/gitlab repositories.

Side Project Stories

Social Determinants of Health Challenge

We built a system that scored highest on all subtasks of the n2c2 2022 Track 2 challenge. And then wrote it up in a paper for the associated JAMIA special issue:

Romanowski B, Ben Abacha A, Fan Y. Extracting social determinants of health from clinical note text with classification and sequence-to-sequence approaches. Journal of the American Medical Informatics Association 2023.

Advent of Code and Rust

My solutions to the Advent of Code 2019 were a fun excuse to play with Rust. I work mostly in Python (with a dash of Bash and SQL) and, while it's extremely productive, I often wish for Rust's static typing, Optional, cargo, and compiled binaries.

HaikuMe app for Google Glass

A lifetime of sci-fi has made me a sucker for things like Google Glass. There was a conspicuous lack of apps that would help kill time when compiling, so I created an app called HaikuMe. It displays a haiku scraped from Reddit whenever the user would trigger it with their best Johnny Mnemonic impersonation: "haiku me".

QuickSelect

Early in my career, I was more focused on automatic speech recognition (ASR) and consequently spent a lot of time digging through the open source Sphinx 4 speech recognition system. One neat tidbit I came across was the QuickSelect algorithm, which could find a median value in a collection of values in expected O(n) time. I implemented a pretty nice Java version of QuickSelect with documentation and tests, and then wrote up a performance evaluation of various median selection methods.

Linear addition from the log domain

Another neat math tidbit that I found in the Sphinx codebase was a fast approximation of log(x + y) given log(x) and log(y). I ended up diving deep into the problem and eventually wrote up what I discovered about an optimal approximation.