justEgan
app store: https://apps.apple.com/tw/app/kernel-%E8%83%8C%E5%96%AE%E5%A...
viral launch post that brought in ~1700 users in 2 days: https://www.threads.com/@sean_hsu_13/post/DW8nBzDjV8T?xmt=AQ...
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%.
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 :)
(supports desktop only for now)
https://docs.netlify.com/cli/get-started/#get-started-with-n...
A MacOS status bar utility for viewing real-time listener count for Spotify and Apple Music.
Check out the github over here: https://github.com/spotifyvstheworld
PS. the main repo readme is a bit outdated
For what it's worth, we can confidently say that our extension does UI modifications without ever being involved with user sensitive info. Regardless, will definitely open source the extension. Hopefully this will win some user's trust. Stay tuned!
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!
One of the reasons we decided not to implement that for now is to provide a bigger room for error since our algorithm is still not perfect. Sometimes the extension choose to focus on 1 or 2 sentences next to the accurate dialogue. Having an entire viewport height to show the screenplay means even if some inconsistencies occur, the user may still be able to see the accurate dialogue.