Skip to content
View nina-mir's full-sized avatar
:dependabot:
studying K8s exam!
:dependabot:
studying K8s exam!
  • San Francisco, CA
  • 03:44 (UTC -12:00)

Block or report nina-mir

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
nina-mir/README.md

Nina Mir — software engineer // web / data

 August 2026

Open-source contributions

mdn/browser-compat-data  #30171  merged

Corrected Firefox compat data for FontFaceSet.values() / .keys() / .entries(). Tested 11 iteration behaviors across Firefox 153 and Chrome 151 to establish which three subfeatures are broken and which work correctly — a distinction the original report never made.

compat-data cross-browser testing JSON Schema MDN


python-visualization/folium  #2263  in review

Root-caused and fixed issue #1520 (open since 2021): GeoJSON tooltips/popups came up empty on multi-geometry features because feature never reached the child layers Leaflet wraps in a FeatureGroup. Fix verified against all eight geometry types plus nested GeometryCollections, with a Selenium regression test.

Python Leaflet Jinja2 pytest Selenium


jupyterlab/jupyterlab  #19257  open

Fixed the low-contrast variable names in the Debugger Variables panel by swapping a hard-coded color for an existing --jp- theme token, so the text stays readable in both light and dark themes.

accessibility WCAG contrast TypeScript CSS

Also this month

 July 2026

 Save Image 'n Context — Manifest V3 Chrome extension

A research tool: right-click any web image to download it and log a local citation record of its source — page URL/title, canonical URL, Open Graph metadata, alt text, figure caption, plus the nearest heading/paragraph/link via deterministic DOM heuristics.

  • Privacy-first architecture — a service worker paired with an on-demand content script using activeTab + scripting permissions; zero background access to browsing data.
  • Handles real-world messiness — lazy-loaded image attributes, duplicate-capture detection, retry logic, graceful fallbacks on restricted pages.
  • Local & exportable — up to 5,000 records live entirely in chrome.storage.local, reviewable on an options page and exportable as JSON/CSV (CSV hardened against spreadsheet formula injection).

Chrome Extension Manifest V3 JavaScript

Get it on the Chrome Web Store   Source


 June 2026 — Snarp Profanity Index


 Snarp Profanity Index — interactive dashboard

Visualizes how often different categories of profanity appear across 52 college-sports YouTube videos by a popular creator — to find out which collegiate rivalries are the most controversial linguistically.

  • The workflow — scrape audio via the YouTube API ➜ transcribe with the Whisper neural network on Hugging Face ➜ analyze transcripts to categorize terms.
  • Interactive — charts built with SVG & D3.js, plus full-text search across all transcripts.

Google Colab YouTube API Whisper Hugging Face D3.js

Live demo   Source

 Spring 2026 — Kopani


 Kopani — discovery infrastructure for independent literature

An MVP platform that indexes literary and art pieces published by independent journals without republishing copyrighted material.

  • Data pipeline — scraping, ingestion & metadata-modeling workflows normalize journal content into structured, searchable records: titles, journals, authors, translators, visual artists, genres, keywords & reading time (Gemini AI / Colab notebook).
  • Discovery experience — helps readers browse real pieces, return to the original journal sources, and (future) explore a contributor graph linking writers, artists, institutions, journals & publications.

Astro Tailwind CSS SQLite Netlify

[!TIP] Presented at the Perplexity AI Billion Dollar Pitch competition.

Live demo

 October 2025 — SF Film Locations RAG


 NLP-to-GeoPandas RAG pipeline

A full-stack RAG pipeline to chat with the Film Locations in San Francisco dataset. Completed during a DigitalOcean / Auth0 hackathon in San Francisco on Oct 18, 2025.

Gemini Python Streamlit GeoPandas SQLite Folium

Live demo   Source

 2025 — WindBorne constellation data pipeline


 Live constellation visualizations

A full-stack project ingesting data from WindBorne Systems' live constellation API, feeding two D3.js plots:

  • A world map displaying each flight trajectory over a 24-hour interval.
  • A Sankey chart showing the start/end region of each trajectory (via geonames.org and nominatim.openstreetmap.org APIs).

The project runs an automated pipeline that fetches and processes new data hourly on an Ubuntu cloud server, and uses Cloudflare Workers to edge-cache the data files.

D3.js Cloudflare Workers Ubuntu

Live demo

 Summer 2025 — Taschen-Dolmetcher.Revisited


 Multilingual language-learning web game

A web game for people learning Russian / English / German. Inspired by real events on the Eastern Front from 1941–1945, it educates users about Holocaust history through historical materials and witnesses' artworks.

React TypeScript Tailwind CSS Storybook

Play it

[!NOTE] Suggestions welcome — open an issue or email nina@sfsu.edu.

 Spring 2025 — The Hell of Treblinka


 Modern responsive typesetting

Typeset an important essay by Vasily Grossman — "The Hell of Treblinka" — so readers could have a modern, responsive reading experience.

Read it

Pinned Loading

  1. taschen-dolmetcher taschen-dolmetcher Public

    An open-source web-based language learning game showcasing the resilience and sacrifice of enormous number of ordinary people during the Holocaust and fighting the onslaught of German Nazi fascist …

    TypeScript

  2. save-image-n-context save-image-n-context Public

    A Chrome extension for researchers who save images from the web and need to remember where they came from.

    JavaScript

  3. kopani kopani Public

    kopani.ai

    HTML

  4. DigitalOcean-hackathon-FILM-2025 DigitalOcean-hackathon-FILM-2025 Public

    RAG data piepline to chat with SF film Dataset

    Python

  5. the-treblinka-hell the-treblinka-hell Public

    Modern typeset of a famous essay by Vasily Grossman about the death station, Treblinka, where in a period of two years millions of mostly Jewish people from Europe and beyond along thousands of Rom…

    HTML

  6. CSC317-assignments CSC317-assignments Public

    Course repo for CSC 317 @ SF State University by Nina Mir

    JavaScript 2 11