Ben Silver

Projects

Two health tools that came out of my own life, a networked server in C++, and a search engine from my data structures class.

CraveCast

September 2026

CraveCast predicts high-risk windows for people in recovery, so they get a warning before a craving hits rather than a log of it afterwards.

The prediction combines the peer-reviewed ADARP study with kernel density estimation over a person's own logged cravings. It starts from the study's population-level risk windows and gets more accurate as it learns from their entries.

It's a single-file HTML app on GitHub Pages. It works fully offline, with no sign-up and no tracking, so nothing leaves the browser.

The idea came from a lung transplant observership at Mass General. COPD is one of the most common reasons people need a lung transplant, and smoking is its leading cause. Most recovery apps are either a plain logbook or a technical dashboard, which make logging a chore. People attempting to break addiction don't need any more hindrances, so I made a gamified version by adding streaks and unlockables to encourage users to keep tracking.

Built with

HTML, JavaScript, Python, kernel density estimation

Status

Live, and open source

The CraveCast dashboard. A dial reads 77% high with the note “A rough stretch, right now” and a warning that the usual 7am window starts in about eight hours, beside the day's plant, streak counters and a twelve-hour forecast.
The dashboard: risk right now, and the next twelve hours
The CraveCast garden. A four by four plot with a sunflower being planted, progress towards the next unlock, and a collection grid of the plants earned so far.
The garden: what the clean days add up to

TCP echo server

September 2026

A server that holds several conversations at once: any number of clients can connect, and each one gets back exactly what it sent without waiting behind the others.

It's C++ on raw POSIX sockets, with every connection handed to its own thread. Sends loop until every byte is out, because a single send can write only part of a message. A small command-line client comes with it, and a plain netcat session works just as well.

Built with

C++17, POSIX sockets, threads

Status

Open source

gerp

Spring 2026

gerp returns every line a word appears on across a whole directory tree, fast enough that the size of the tree stops mattering. It reads each file once at startup and builds an index, so every search after that is a lookup rather than another walk over the disk.

It's written in C++ and leans on nothing outside the standard library. The index is a hash table I built by hand — a vector of sets holding each word, its lowercased form, and pointers back to the line and file it came from — with open addressing for collisions and a rehash whenever the load factor passes 0.7. Keeping the lowercased form beside the original is what lets case-sensitive and case-insensitive searches run off the same structure.

It was the final project for CS15, Tufts' data structures course, last semester, written with Anubhav Sinha. Recursing through the directories was the easy half; the assignment was really about the index, and it was the first thing I'd written where picking the data structure was the whole problem.

Built with

C++, standard library only

Course

CS15 Data Structures, Tufts

Status

Open source

TRACE

May 2026

TRACE takes a photo of a meal, flags likely allergens and gives a risk-level warning.

It's a full-stack web app built with Python and Flask, with the Claude Vision API handling the photo analysis. It remembers your allergies, and it's simple enough for a child to use.

I grew up in Taiwan with a nut allergy. As a shy kid, navigating that in a foreign country was hard and I'd often avoid asking about allergens out of embarrassment or fear of getting the question wrong. Unfortunately, that's not unique to being abroad; kids everywhere struggle to speak up for themselves.

Outside of just children, travellers also face issues with allergens when encountering new foods abroad or struggling to communicate in a different language. TRACE helps provide one extra level of comfort by giving you guidance on how likely a food is to have an allergen.

Built with

Python, Flask, Claude Vision API

Status

Repository private, happy to walk through it

At a glance

An overview of everything I've done so far. Click into the links for more detail.

Studying

Tufts University, class of 2028BA Computer Science, focus in Biological Sciences. Rising junior.
Dean's List, 3.9 GPAEvery semester so far.

Research

Mass General, Vaccine & Immunotherapy CenterA Python pipeline that identifies immune cell populations, on datasets of over a million cells.
Sonkusale Research LabsFabrication protocols the group can repeat, from benchtop signal characterisation.
The full research page

Projects

CraveCastPredicts high-risk windows for people in recovery. Offline, live, open source.
TCP echo serverServes many clients at once, one thread per connection. C++ on raw POSIX sockets.
gerpSearches a whole directory tree for a word instantly. C++, hand-built hash index.
TRACEReads a photo of a meal for allergens and alerts you of likelihood.
The full projects page

Also

Tufts Technology ServicesResearch computing requests in one place, and a request workflow eliminating wait times for 500+ daily users and researchers.
Teaching and buildingPython workshops for thirty-odd students, and an L1 certification rocket that flew.
More on the about page
At a glance