What could you do with a general-purpose recommender system?

I thought I’d start out this time with some musings about the long-term applications of Findka. On first pass, Findka is a way to discover content. While that alone is important, I’m even more excited by the second-order effects. If you had a giant database of everyone’s content preferences, you can start recommending people instead of just content. For example:

  • Dating. You could find people to date who like the same books, articles or podcasts as you. Could be a good solution for people who don’t like Tinder’s focus on appearance.

  • Professional networking. You could source job candidates who have written articles liked by people in your industry, and you could find candidates who are interested in the specific work you’re doing.

  • Community. The content you like is a window into how you see the world. Findka could help you make deep connections with people who think similarly.

The last point is my favorite. With regard to my career, I’ve felt fairly isolated for a long time. I was never around other programmers until I got into college, and then I went through the whole thing making almost zero lasting connections with other CS students (partially my fault). After that, the year I spent working at Lucid Software was fun. I loved my coworkers. However, I never felt like I really belonged in the whole organization. I didn’t care that much about the mission, and I had various philosophical differences with a lot of the people there.

Fortunately, I’m heavily introverted and quite happy to work on my own. I used to be somewhat insecure about that (especially with Paul Graham, my idol, being so anti-solo-founder), but I’ve cared less and less as I’ve gotten older.

However, I can’t help but wonder what it would’ve been like had I spent the last five years in a community of hackers. I’ve had so many ideas and not many people to talk about them with. What if I had gone to MIT or Stanford instead of BYU? I never even thought to apply since I figured they’d be so expensive. It didn’t occur to me that maybe I’d be able to get a scholarship if accepted.

(I’ve also thought a lot about moving out of Utah, and my wife and I were actually planning on moving back to the Seattle area this summer. But the virus has since eliminated my insecurities about not being in a more hackerish startup hub, so we’ll keep our cheap rent here.)

Anyway—before this turns into too much of a tangent—I’m fascinated by the possibility of using Findka to help people develop meaningful, deep relationships. I’m not sure exactly what it would look like yet. Maybe once a week, you get assigned to video chat with two or three other people selected by Findka, and then you talk about whatever. Or instead of just a video chat, you could play an online video game (like World of Warcraft!). I actually really like that idea; playing video games could be a very non-awkward way to meet new people.

However it works, recommender systems can bring serendipity into online communication, which is in my opinion the biggest thing we’re lacking right now. They say that it’s often the chance meetings, like bumping into someone in the hallway, that result in the most fruitful connections. I’d like to make it easier to bump into people online.

Last week

I’ve made a Slack workspace for Findka as a place to discuss features etc. with users. Please join if you’re interested in Findka. I’ll make regular posts there about the roadmap.

Quick update on Biff:

  • I have subscribable queries working for Crux now. It feels just like using Firebase.

  • Biff’s equivalent of Firestore Rules is also complete. You define document types using spec, and then you can add read/write authorization functions so that the client can submit arbitrary transactions and queries without needing to set up any backend endpoints first.

  • I’ve added “triggers” which are an analog to Firebase’s Cloud Firestore triggers. They let you register functions that run whenever a document of a given type undergoes a specified write operation.

  • Email link authentication is also done. You just have to provide a function that will actually send the emails (e.g. mine just does a POST to Mailgun).

  • This was already done last week I believe, but Biff’s equivalent of Firebase Hosting is also finished. You either include the static resources in the git repository with your code, or you write some code that will generate/download the resources when your app starts. In production, the resources are served directly by Nginx for performance and stability. (Shouldn’t be too hard to do it through a CDN later as well).

I’m still in my somewhat-mad-dash to port Findka from Firebase to Biff. Actually, most of that is done too. The only problem is that my personal website is generated from an old, not-publicly-visible version of Findka (it aggregates all your content from other websites and then publishes it in one place for you). The domain jacobobryant.com just points to a reverse proxy for findka.com/u/jobryant. So before I make findka.com point away from Firebase, I have to port my personal website over to Biff as well. That’s underway.

Clojure Provo meetup

Our second meetup is happening on Tuesday next week (on Zoom)! Come join us.