Skip to main content
All Projects (27)
Filters

Learning Platform

Obfuscate Unrevealed Works in Subscriptions

Open Source ContributionsCompleted

Worked On

Two merged contributions to otwarchive, the open-source Rails platform behind Archive of Our Own (AO3-7321): #5626 and #5673.

Works in unrevealed collections leaked their titles and creators on the subscriptions page. The first PR fixed the view, rendering them as Mystery Work (or Mystery Series) while keeping unsubscribe working. The follow-up moved the obfuscation down to the model, so the title stays hidden everywhere it surfaces — including flash messages the view fix never touched.

Impact: Plugged a privacy leak for authors publishing into unrevealed collections, fixed at the layer where it could not be bypassed.

Open Source

Client

Archive of Our Own (OTW) (2026)

Technologies

RubyRuby on RailsERBCucumberYAML

Skills

Backend DevelopmentFrontend DevelopmentOpen Source ContributionAutomated TestingInternationalization

Bulk Edit Dates for Transactions

Open Source ContributionsCompleted

Worked On

Merged contribution to Toolkit for YNAB, an open-source browser extension that adds features to YNAB.

Added a Bulk Edit Dates option to the account transaction edit menu, letting users re-date many transactions at once instead of one at a time. Built as an opt-in toolkit setting with new React components and styles.

Impact: Resolved a long-standing feature request, turning a repetitive per-row edit into a single action.

Open Source

Client

Toolkit for YNAB (2026)

Technologies

TypeScriptReactCSS

Skills

Frontend DevelopmentOpen Source ContributionWeb Development & Design

Hide Comments on Draft Works and Chapters

Open Source ContributionsCompleted

Worked On

Merged contribution to otwarchive, the open-source Rails platform behind Archive of Our Own (AO3-7185).

Readers could comment on unpublished draft works and chapters. Fixed it in two layers: the view hides the comment form on drafts, and the controller rejects comment creation outright so the guard still holds when the UI is bypassed. Multi-chapter works keep comments on published chapters only.

Impact: Closed a gap that let comments land on content authors had not published yet. Shipped with Cucumber and controller specs, plus translated error strings.

Open Source

Client

Archive of Our Own (OTW) (2025)

Technologies

RubyRuby on RailsERBCucumberYAML

Skills

Backend DevelopmentFrontend DevelopmentOpen Source ContributionAutomated TestingInternationalization

URL-Based Navigation for Toolkit Reports

Open Source ContributionsCompleted

Worked On

Two merged contributions to Toolkit for YNAB: #3624 and #3630.

Toolkit Reports held all of its state in memory, so a report tab could not be linked to and the browser's back button did nothing. Synced report state to the URL behind parsing and validation utilities, making reports shareable and restoring back/forward navigation.

The follow-up fixed Firefox, which threw errors when the History API was called too rapidly: debounced the writes, split user-initiated changes from URL-triggered ones to break an update loop, wrapped the history calls in error handling, and put the whole feature behind an opt-out setting.

Impact: Made every report tab a shareable URL, then kept it working on a browser whose rate limits the first pass had not accounted for.

Open Source

Client

Toolkit for YNAB (2025)

Technologies

TypeScriptReact

Skills

Frontend DevelopmentOpen Source ContributionUnit TestingCross-Browser Compatibility