justEgan

Joined 6 years ago

Karma
150
Submissions
20
Member since
Apr 9
https://eganbisma.com

https://drive.google.com/file/d/1bChWYu9vI5FzPoXiUX95Oa9PkryXEclW/view?usp=sharing

View on Hacker News

Recent submissions

Comment · 7 months ago
Comment · 9 months ago
Location: New York, NY

Remote: Yes

Willing to relocate: Yes

Technologies: JavaScript, TypeScript, React, Vue (2/3), Node.js, Python, C#, GraphQL, PostgreSQL, Redis, MongoDB, Docker, Kafka, Elasticsearch

Résumé/CV: https://drive.google.com/file/d/1bChWYu9vI5FzPoXiUX95Oa9Pkry...

Email: [email protected]

Hi, I’m Egan. I’m a Full-Stack Engineer with 6 years of experience, currently finishing my Master's in CS at Cornell Tech. My career has evolved from enterprise environments to high-growth startups where I tackle complex real-time challenges.

At Sociolla, I architected a unified WebSocket-based server cluster supporting 300+ daily active agents, reducing customer response times by 25%. At BRIK, I engineered a real-time collaboration platform using CRDTs to prevent data overrides, improving team efficiency by 30%.

Comment · 2 years ago
I created KopiMap (https://kopimap.com) to help people discover great cafés in Jakarta Indonesia, but I wanted to take the UX further by automatically organizing user-submitted photos into meaningful categories (menu, food/drinks, ambiance).

The challenge is how to classify images as cost efficient as possible without compromising performance. I decided to go with running ML models on the client-side.

Technical implementation: - Built and trained a compact TensorflowJS model (~3MB) that runs entirely in-browser - Model lazy loads only when users are submitting reviews - Classifies uploaded photos into Menu, Food & Drink, or Vibes (interior/exterior) - Zero server costs for inference, quick enough classification feedback

This approached solved several problems: 1. Reduced server costs by moving inference to the client 2. Improved UX with immediate photo categorization 3. Maintained app performance by lazy loading the model

Would love feedback from the HN community on: - Optimizing the model size further - Alternative approaches to client-side ML - General UX improvements for local discovery apps

I had no prior ML experience, so this was a fun challenge :)

Comment · 2 years ago
Comment · 2 years ago
Comment · 3 years ago
Comment · 5 years ago
more accurately: real-time artist listener count of this app's users
Comment · 5 years ago
Comment · 6 years ago
Why not just unsubscribe to any news-related subreddits? And unchecking the "use new reddit as my default experience" while you're at it.
Comment · 6 years ago
Something to consider is that we already had video when photoshop arrived, which is able to merit at least more authenticity than images do. Are there other mediums that's able to take this baton of authenticity now? I don't think so.
Comment · 6 years ago
Comment · 6 years ago
Will do! I am not aware of that, tell me more!
Comment · 6 years ago
Comment · 6 years ago
There’s some automation going on. Check out my reply to one of the skeptical comments!
Comment · 6 years ago
The syncing is done automatically, at least mostly.

TL;DR: ScreenplaySubs fetches the subtitles from Netflix, parses the PDF-formatted screenplays into JSON, and syncs by calculating the sentence similarities between subtitle and screenplay dialogue.

In particular, we use the Universal Sentence Encoder for deciding whether a subtitle matches with a screenplay dialogue. If a screenplay dialogue is similar enough with the subtitles, the former will be tagged with the timestamp provided by the latter.

A lot of the underlying problems presented with each step sounds deceptively simple at first, but turns out to be quite challenging and fun to research. E.g. Parsing PDFs in general are not straightforward (https://filingdb.com/b/pdf-text-extraction), and there’s only a handful of resources on parsing PDF screenplays beside a handful of research papers (https://github.com/drwiner/ScreenPy/blob/master/INT17_screen...), which lead us to create our own open source repo for this (https://github.com/SMASH-CUT/screenplay-pdf-to-json).

Our screenplay-pdf-to-JSON converter is able to contain all dialogues, transitions, actions within a particular screenplay scene. With this, we’re treating scenes as atomic, being able to detect changes in scene ordering based on the tagged scene timestamps. This also means if dialogues are swapped within a scene in the movie, there will be some syncing inconsistencies.

Some scenes do have little to no dialogues, which would pretty much cause the extension to work on a best-effort basis. E.g. The opening scene of There Will Be Blood has very minimal if not no dialogue at all. This is the case where I need to jump in and sync up the screenplay manually. OTOH, the opening scene of Inglourious Basterds will work very well, since there are tons of dialogues in it. This is the reason why I can’t just add movies and instantly upload it to the site.

Would you be interested for me to get into more details? I was thinking of writing a series of technical blog posts if there are enough interests!

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton