Information Retrieval

Tool Library Search Improvements: Part 4

Tuning the search implementation for optimal performance

December 1, 2025 | ~1800 words | 9 min read

Let's (finally) make some broad changes to the tool library's search configuration. We'll add some components and tune some parameters, then choose the combination that yields the best results.

Tool Library Search Improvements: Part 3

Quantifying the problem

November 16, 2025 | ~1400 words | 7 min read

Subjective analysis can only take us so far. Let's attempt to quantify search performance so we can measure whether our solutions are working. In this post, I describe methodology to infer the relevant items for each query and the quality of search results.

Tool Library Search Improvements: Part 2

Quick wins

September 2, 2025 | ~1600 words | 8 min read

Now that we've identified some common problems, let's make the first steps toward solving them. First we'll focus on small, simple changes that will have an immediate impact.

Tool Library Search Improvements: Part 1

Identifying the problem(s)

June 26, 2025 | ~1800 words | 9 min read

An overview of the Chicago Tool Library's web app and common problems with its search functionality. Not talking solutions yet, just seeing what types of problems exist. Plus, some constraints and limitations of a volunteer project with a shoestring budget.

Streamlit Hackathon: Exploring Chicago Datasets

I couldn't pass up an opportunity for some Streamlit swag!

August 3, 2023 | ~800 words | 4 min read

Streamlit is hosting a hackathon to show off their new connections functionality. I built a simple app implementing semantic search to explore public datasets in the city of Chicago's Socrata open data platform.