Hello, I'm Ben

Benjamin Stevenson

Senior Computer Science student at the University of Michigan and SWE intern at eVN Inc.

Photo of Benjamin Stevenson

About

Who I Am

I'm a computer science student at the University of Michigan, graduating in May 2027, and a software engineer intern at eVN Inc. since June 2024.

Most of my work is full-stack: designing APIs and data models, building the services behind them, and integrating with third-party systems. At eVN, that has meant leading development of a photo submission platform now running in production across 100+ automotive dealerships, carrying it from design through deployment, and through everything that surfaced afterward. I've also worked on the machine learning side there, dealing in data preprocessing, model training, and evaluation for an image-based estimation pipeline.

In open source, I contribute upstream to beets and mediafile. That work has less to do with writing features than with reading an unfamiliar codebase closely enough to find where a change belongs, then writing to a maintainer's standards rather than my own, which is most of what working in any established system actually involves.

I'm drawn to developer tooling and automation, which is where one of my recent projects came from: a self-healing CI pipeline that I use to automate my development workflow. Day to day I work in Python, C++, JavaScript, and React, with Git, Docker, and CI/CD pipelines as standard tools.

Featured Project

Self‑Healing CI

A webhook server that detects failed GitHub Actions runs and fixes them automatically — running Ruff & Black for style issues and asking Claude to suggest patches for real bugs. Comment /heal on a PR to apply the AI fix in one click.

Python FastAPI GitHub Actions Claude API Webhooks
GitHub ↗
// latest heal fetching…
connecting to github api…

Open Source

Synced Lyrics for Beets

Contributed synchronized (LRC) lyrics support to beets, a music library manager with 15k+ GitHub stars. Partway through review, a maintainer pointed out the fix really belonged one layer down — in mediafile, the tagging library beets depends on, which had no synchronized-lyrics field to hook into at all. So that became its own PR first, and the original beets PR was rebuilt on top of it once it merged.

beetbox/mediafile Merged · prerequisite

storage: add MP3SYLTStorageStyle for SYLT synchronized lyrics

Added a new synced_lyrics field and storage class so MediaFile can read and write the ID3v2 SYLT frame at all — nothing existed to build on before this.

+127 −0 6 files PR #108
View PR ↗
beetbox/beets Merged

lyrics: write synced LRC lyrics to SYLT ID3 frame

Fixes #6541 — the lyrics plugin now stores timestamped lyrics in the proper SYLT frame instead of dumping raw LRC text into USLT.

+155 −3 7 files PR #6566
View PR ↗

Coursework & Work

Additional Projects

ML for Camera Parameter Estimation

Aug 2024

Built an image-processing pipeline to clean and normalize raw photo data, then trained a TensorFlow model to estimate camera parameters — lens focal length, subject distance, camera angle — directly from an image. Used the trained model to reconstruct photographic metadata for deeper image analysis.

Python TensorFlow Machine Learning

Photography Submission App

Feb 2025

Built a photo submission platform that routes user uploads into Asana task workflows, with a Flask backend and React frontend. Optimized task search and data handling to cut latency, and implemented end-to-end authentication using secure, one-time nonce tokens.

React Flask Asana API

Fakebook: Relational DB & Analytics

Oct – Nov 2025

Designed an ER model and normalized relational schema for a large-scale social platform (users, photos, messages, events), then wrote the SQL DDL to create, constrain, and index the core tables and validated integrity against a loaded public dataset. Followed up by exporting the same data into MongoDB — modeling users, friendships, and cities as nested documents — and building aggregation pipelines to answer real analytics questions like city cohorts, friend statistics, and matchmaker pairs.

SQL Oracle MongoDB NoSQL

Say Hello

Contact

Open to new opportunities, collaborations, or just a chat.

benstev@umich.edu
(248) 590-6177