sarindre

sarindre

I build web apps, games, and data projects. Two of them you can open and use right now.

Projects

Horror Hub and the Blockbuster App run in a browser and their code is public. WorkforceOS and y2k.exe are still in private repositories.

Horror Hub

A horror movie library and discovery app that decides what to watch tonight. It learns your taste from your ratings, explains every suggestion, and keeps content warnings up front. Everything is stored in your own browser, so there is no account to make and no server holding your data.

  • Tonight: one pick for the evening with the reasons, scare level, and content warnings, plus a reroll that never repeats. A 60-second taste quiz teaches it how scary is too scary.
  • Group night: add everyone watching with their scare limits and it finds films that suit the whole room, ranked by how the least-happy person feels.
  • Ask Horror Hub: describe what you want in plain words, such as "gentle 80s slashers I haven't seen, no gore," and it searches your library and shows how it understood you.
  • Marathon planner that fits a themed lineup to your time budget, shelves you can share, challenges like 30 Days of Horror, and a Horror Wrapped year in review.
  • Imports your history from Letterboxd or IMDb and exports back to Letterboxd's format.
  • Installs as an app, works offline, and also ships as a desktop app for Windows, macOS, and Linux. Lint and tests run on every push.
  • React 19
  • Vite
  • Tailwind CSS
  • Recharts
  • TMDb API
  • PWA
  • Electron
  • GitHub Actions

Blockbuster App

An installable web app that catalogs my movie collection in the style of a 1990s video rental store. It covers physical discs, stored in a binder by page and slot, and digital purchases in one browsable list.

  • Filters by genre and by source (disc or digital), plus search across titles and series names.
  • Series badges on each title, such as "Twilight #2," so franchises sort in release order.
  • A separate manage page for editing the collection, and offline support through a service worker.
  • HTML
  • CSS
  • JavaScript
  • PWA
  • Service worker

WorkforceOS

A web app that runs a company's HR work in one place. Small and mid-sized companies often split this across spreadsheets, email threads, and separate paid tools. WorkforceOS keeps it in one system, so a dashboard can show the whole picture: headcount, who is leaving and why, and how the workforce changes over time.

  • Covers the employee list and org chart, hiring requests and candidates, performance reviews, pay and raises, time off, onboarding, surveys, training, and recognition.
  • Shows each person only what their role allows. HR and executives see the whole company, Finance approves budgets and raises, and a manager sees only their own team.
  • Follows real approval flows. A manager's request to hire an engineer moves through HR, Finance, and an executive, then candidates are tracked through to a signed offer.
  • Includes an optional AI feature that drafts a first version of a performance review for the manager to edit.
  • Ships with a sample company of about 5,000 fictional employees and years of history, so the whole system can be tried without real data. Automated tests check the code on every change.

Status: in development and not ready for a real company's sensitive data yet. The missing pieces are a setup wizard, spreadsheet import of an existing employee list, secure document storage, and a live-server setup. The next step is finishing those and running a small pilot.

  • Python
  • Django
  • HTMX
  • Tailwind CSS
  • Chart.js
  • PostgreSQL
  • pytest
  • GitHub Actions
Private repository. Happy to walk through it on request.

y2k.exe

A narrative horror game that runs in the browser and looks like a Windows desktop from the year 2000. You fill out a new-student questionnaire that builds your character, then live out freshman year through a working instant messenger while a slow mystery called Cipher Seven builds underneath. The horror comes from small wrong details, not jump scares.

  • A branching story engine with online and offline scenes, flags, and stats that change later dialogue.
  • Eight cliques (goth, gamer, skater, jock, theater, loner, popular, band), each with a fully built and tested first chapter.
  • In-game apps styled after the era: an AIM-style messenger, a Napster-style file sharing app, a Yahoo-style portal, and a GeoCities-style homepage builder.
  • Runs from one static HTML file with no build step and no dependencies. Story content is written first in design docs, then transcribed into the engine.
  • JavaScript
  • HTML
  • CSS
  • Game design
  • Interactive fiction
In development. Private repository for now.

CMPINF 2100 coursework

Seven Jupyter notebooks of Python homework from a data science course, kept in one repository so the work can be read from start to finish.

  • Python
  • Jupyter
  • Data analysis

Find me

All of my public code is on GitHub, and email is the quickest way to reach me.