Conservation of Compute · Nishant Joshi

Nishant Joshi ·

4 min read Original article ↗

I got my first job because a recruiter actually looked at my GitHub. Most engineers aren’t that lucky - and most recruiters don’t have time to decode commit histories.

As the engineer interviewing candidates, I saw the other side: people from top schools who couldn’t ship, and hidden gems buried in repos nobody opened. Resumes can lie. Code doesn’t.

Or that’s what we thought… Last year, my co-founder and I came to SF with a goal. We wanted to start a startup, but we didn’t have an idea or a POC, we just had balls. Along the way we met people who were cool, and weirdly people desperate to find engineers, engineers to build stuff for them. I mean they could’ve just hired me, but I thought why not build them a tool that helps them? And I did.

My initial thought: let’s index all of GitHub, and build a vector database full of people. But my wallet said otherwise.

Then one day, we were attending a hackathon at YC, everything was orange and we were just thinking of what we could build for the hackathon, and somehow somewhere I stumbled on the idea: wait, can’t I just ask ChatGPT?

I mean, not to build a hackathon-winning project, but rather for repos, projects which are relevant to the query. Haven’t they poured millions/billions into stealing all the world’s data? Why shouldn’t I start from where they started?

So, I quickly whipped up a proof-of-concept (I used to write code by hand in those days ;D). And I tried asking it about a specific role, and et voilà, it gave me people. A weird quirk: @rauchg appeared in every damn search (dude’s goated).

This POC was so bad that we didn’t win the hackathon. But it was good enough to get us our first (paid) customers, and then get into YC.

As they say: “You might’ve lost the battle, but you’ve won the war.”

Recently, I’ve started thinking about how much compute is lying around. My personal website uses WebGL to render a fucking blog, like wtf. And neither I nor others seem to mind.

Wait, am I missing something? Didn’t I do something about it? Before I had funds, I piggybacked on compute that these labs spent. Wait… did I conserve my compute o_o

But then I started thinking about the operating cost, and it wasn’t that the compute was conserved because they are still doing some compute to answer my questions. In the cloud somewhere there runs a gigantic neural network that answers my question. So we are running some heavy-duty compute (that also explains the shortage of GPUs).

So if it wasn’t compute, what did we save? Because we did save something.

Is it search? Wait, back then I was going to spend all that compute on doing search, which I don’t need to do now. They’ve built a search engine, albeit not of the traditional kind.

Like, before 1959 everyone used to use bubble sort and spend a lot of compute to do sorting, and then Tony came along, and in his head, he ran a search and found an algorithm, an algorithm that made search (or sort) cheaper for everyone.

Then, it sounds like it’s not conservation of compute. It’s conservation of search.

Then I remembered the cache we added (ya, we did add a cache, because otherwise GitHub would’ve rate-limited us). Compute something once, keep it, don’t do it again. That’s conservation of search.

An index is a cache over a class of lookups. An algorithm is a cache over a method. A model is a cache over a function. Training is the search, the weights are the cache.

Building is caching.

We all know the two hard problems in computer science, cache invalidation and naming things.

now I get it.