Skip to content

Discussion #2

Our Two Principles

1. Abstraction is powerful

Abstraction is incredibly powerful, so we're seeing a lot of companies leveraging this. By abstracting away unecessary variables, you're able to move faster with all of your focus. Abstraction is at the core of computing, and we should always be asking ourselves what can be abstracted. How can we stand on the shoulders of the last decade and see further?

2. Abstraction is compromise

This point is often overlooked. Abstractions work for specific use cases, but the key to leveraging abstraction is the ability to navigate the ladder. There are times when you have to go down the ladder of abstraction, which frameworks and platforms often do not allow. We need to be intellectually honest with ourselves, acknowledging that our abstraction won't work for every use case. If you can abstract away details, you absolutely should. However, you should easily be able to peel back the abstraction as you need.

What you're building should be only as difficult as the domain it's in.

We feel very strongly about this. If you're building a rocket, it should be as hard as rocket science. If you're building a dating app, your success should not be driven by deep infrastructure expertise, but rather by the domain expertise that lies in the business logic: how do users match, how do they talk to each other, etc.

Note This is an early product. We're still figuring out the abstraction layer, so a lot of the traversals aren't fully built out yet. We don't build anything without discussing how going under the hood would work, and will eventually support full customization. For now, if there's a limit, do reach out and we'll help with your specific use case, even if that means handing your entire server instance over to you.