My mission is to break down technical walls, so that every dream has room to grow. Currently looking into how AI will change our interactions with computers.
I’m the Co-Founder of Stellate, where we unlock the world's data through caching massive-scale GraphQL APIs at the edge.
Previously, I co-created the GraphQL Playground, co-designed GraphiQL 2, and was the first engineer at Graphcool (now Prisma), where I co-lead the creation of the Prisma Client. Before, I launched one of the first AI painting apps in 2016 called Wizart (using style-transfer).
I received a BA in Computer Science at Karlsruhe Institute for Technology (KIT).
In my bachelor thesis in 2015, I researched decentralized compute networks by implementing a LSH-based KNN implementation distributed over a Kademlia Distributed Hash Table (DHT) implementation, which runs both in browser and Node.js, powered by WebRTC.
Type-level programming in TypeScript
In the Press
When starting to work on my first startup ideas when I was 18, I realized, that often there are completely unnecessary technical limitations standing in the way, holding you back from being able to implement your idea.
These unnecessary limitations have since then become my nemesis and it's my personal mission to *break down technical walls, so every dream has room to grow*.
With a BA in Computer Science from KIT (Karlsruhe Institute for Technology), I went on to build my 3rd major project, Wizart, an AI painting app, powered by style transfer algorithms in 2016. As in my previous projects, Crowddining (Airbnb for Food) and Yral.tv (a hybrid social / algorithmic video recommender system), data access was a common pattern that was unnecessarily painful. GraphQL was just coming back then and I wanted to use it to power our mobile app. However, GraphQL was still hard to use. This was made easier by Graphcool, a backend-as-a-service by my friend Johannes. Wizart got initial attention but didn't have retention, and it was hard to compete with the at-the-same-time-realized "Prisma" (some of you might remember it) so I decided to stop working on it.
Having tasted the awesome productivity gain from Graphcool as their first customer, I knew how valuable the product was, so I decided to join and work on it full-time to make data easy for anyone.
Initially, Graphcool was a GraphQL backend-as-a-service.
And while it was amazing with Graphcool to hack together on something so meaningful, something that already boosted productivity of so many teams of developers, we soon realized that by directly mapping databases to GraphQL, we're falling into the "Vietman of Computer Science" issue. While it's initially a nice solution which helps you to build prototypes, as soon as you want it to scale, you're getting into hells kitchen. From there, you try to add bandaid after bandaid, but as long as you stay on that path, you can never get it right.
Instead of dealing with broken abstractions, developers want to build apps with great IDE support, strong tooling, world-class developer experience. While we played with ideas like "GraphQL Import", it was clear that one ecosystem is becoming the clear winner to enable this: TypeScript.
> Note: This was not clear at all in 2016. Back then Flow at times was actually more advanced to TypeScript.
While keeping databases as the core focus, we moved from a GraphQL-centric design to a database-centric design with TypeScript instead of GraphQL being the interface to our tools. Prisma was born. What an ironic name, considering my personal history. We pushed the state of the art in terms of what is possible in TypeScript and were the first library ever with this kind of API. I'm talking about how we pushed the TypeScript compiler to the limit at TSConf 2020.
In 2019 I started working on a side project of an article recommender system, back in the days using LLMs like BERT to provide summaries. It had an advanced ranking algorithm, which combined LLMs with a community score, then used in a similar way like the HN ranking algorithm. That algorithm was very heavy, especially over millions of articles and needed 30s+ for one query to succeed. What a perfect case for caching. But where to cache? The database? The server? The edge? The client? To provide maximum performance, I decided to look into caching the GraphQL responses at the edge. No matter from which client I'd look at this, it would already be cached, once cached at the edge. Trying to build my own caching solution, I realized how hard it actually is, especially when you need to invalidate manually when data changed. The idea of GraphCDN was born. What if you could just connect your GraphQL API to a service that manages caching, invalidation, caching POST requests, all that jazz? That's exactly what GraphCDN would be. Yes, we're again back to building a tool to unblock the work I wanted to do altogether, building a tool! Back to my nemesis.
A few months in the project, Andreas Klinger introduced me to Max Stoiber, who hit a similar issue with GraphQL at his previous startup, Spectrum. We founded a real company together, got real customers, grew an amazing team, and raised in total $30M. Because our vision is bigger than just caching, we renamed to Stellate. Stellate now powers hundreds of GraphQL APIs, from small indie projects to big players like Priceline or Puma.
This has been an incredible journey and I'm grateful for these opportunities to grow and learn.
Where are we headed from here? I'm proud of what we're building at Stellate. Making a real difference for massive-scale GraphQL APIs.
I believe, that with the advent of LLMs and the recent advances in AI, there is an unprecedented opportunity to solve problems of humanity. I share Marc Andreesen's rather positive view on AI and believe, that it's a very potent tool, which can be used for a lot of good in the world.
I'm currently exploring new AI-enabled interaction patterns and how we can have it work for us, not against us.
I believe in a world, where every individual can bring their ideas to life, unencumbered by technical walls.
Let's tare down those technical walls!