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.