Retrieval After RAG: Hybrid Search, Agents, and Database Design — Simon Hørup Eskildsen of Turbopuffer
Turbopuffer — поисковый движок для неструктурированных данных, выросший из побочного проекта Simon Hørup Eskildsen. Идея родилась, когда он помогал Readwise внедрить рекомендации статей: векторный поиск обошёлся бы в ~$30 тыс./мес. при общем бюджете на инфраструктуру ~$5 тыс./мес. Simon построил базу данных целиком на объектном хранилище (S3/GCS) и NVMe SSD, отказавшись от традиционного слоя консенсуса, что радикально снизило стоимость. Первым крупным клиентом стал Cursor, которому удалось сократить расходы на 95%; затем подключился Notion, ради которого команда купила тёмное оптоволокно между облаками. Сейчас Turbopuffer развивает гибридный поиск (векторный, полнотекстовый, regex), адаптируется к агентным нагрузкам с массовым параллелизмом запросов и снижает цены на запросы в 5 раз. Simon делится философией найма «P99-инженер» — по умолчанию отклонять кандидата, если никто в команде не готов за него «встать стеной».
Retrieval After RAG: Hybrid Search, Agents, and Database Design — Simon Hørup Eskildsen of Turbopuffer
Поиск после RAG: гибридный поиск, агенты и проектирование баз данных — Simon Hørup Eskildsen из Turbopuffer
Turbopuffer came out of a reading app.
Turbopuffer вырос из приложения для чтения.
In 2022, Simon was helping his friends at Readwise scale their infra for a highly requested feature: article recommendations and semantic search. Readwise was paying ~$5k/month for their relational database and vector search would cost ~$20k/month making the feature too expensive to ship. In 2023 after mulling over the problem from Readwise, Simon decided he wanted to “build a search engine” which became Turbopuffer.
В 2022 году Simon помогал друзьям из Readwise масштабировать инфраструктуру для долгожданной функции: рекомендации статей и семантический поиск. Readwise тратил ~$5 тыс./мес. на реляционную базу данных, а векторный поиск обошёлся бы в ~$20 тыс./мес., что делало фичу слишком дорогой для запуска. В 2023 году, обдумав проблему Readwise, Simon решил «построить поисковый движок» — так появился Turbopuffer.
We discuss:
• Simon’s path: Denmark → Shopify infra for nearly a decade → “angel engineering” across startups like Readwise, Replicate, and Causal → turbopuffer almost accidentally becoming a company
• The Readwise origin story: building an early recommendation engine right after the ChatGPT moment, seeing it work, then realizing it would cost ~$30k/month for a company spending ~$5k/month total on infra and getting obsessed with fixing that cost structure
• Why turbopuffer is “a search engine for unstructured data”: Simon’s belief that models can learn to reason, but can’t compress the world’s knowledge into a few terabytes of weights, so they need to connect to systems that hold truth in full fidelity
• The three ingredients for building a great database company: a new workload, a new storage architecture, and the ability to eventually support every query plan customers will want on their data
• The architecture bet behind turbopuffer: going all in on object storage and NVMe, avoiding a traditional consensus layer, and building around the cloud primitives that only became possible in the last few years
Мы обсуждаем:• Путь Simon: Дания → инфраструктура Shopify почти десять лет → «ангельская инженерия» в стартапах вроде Readwise, Replicate и Causal → Turbopuffer, почти случайно ставший компанией • История с Readwise: создание раннего рекомендательного движка сразу после момента ChatGPT, осознание его работоспособности, а затем понимание, что это будет стоить ~$30 тыс./мес. для компании, тратящей ~$5 тыс./мес. на всю инфраструктуру, и одержимость исправлением этой структуры затрат • Почему Turbopuffer — это «поисковый движок для неструктурированных данных»: убеждение Simon в том, что модели могут научиться рассуждать, но не способны сжать все знания мира в несколько терабайт весов, поэтому им нужна связь с системами, хранящими истину в полном объёме • Три ингредиента для создания великой компании баз данных: новый тип нагрузки, новая архитектура хранения и способность со временем поддерживать любой план запросов, который понадобится клиентам • Архитектурная ставка Turbopuffer: полная опора на объектное хранилище и NVMe, отказ от традиционного слоя консенсуса и построение на облачных примитивах, ставших возможными лишь в последние годы
• Why Simon hated operating Elasticsearch at Shopify: years of painful on-call experience shaped his obsession with simplicity, performance, and eliminating state spread across multiple systems
• The Cursor story: launching turbopuffer as a scrappy side project, getting an email from Cursor the next day, flying out after a 4am call, and helping cut Cursor’s costs by 95% while fixing their per-user economics
• Почему Simon ненавидел эксплуатацию Elasticsearch в Shopify: годы мучительных дежурств сформировали его одержимость простотой, производительностью и устранением разброса состояния по нескольким системам • История с Cursor: запуск Turbopuffer как скромного побочного проекта, письмо от Cursor на следующий день, перелёт после звонка в 4 утра и помощь Cursor в снижении затрат на 95% с исправлением экономики в расчёте на пользователя
• The Notion story: buying dark fiber, tuning TCP windows, and eating cross-cloud costs because Simon refused to compromise on architecture just to close a deal faster
• История с Notion: покупка тёмного оптоволокна, настройка TCP-окон и поглощение межоблачных затрат, потому что Simon отказался идти на компромисс в архитектуре ради ускорения закрытия сделки
• Why AI changes the build-vs-buy equation: it’s less about whether a company can build search infra internally, and more about whether they have time especially if an external team can feel like an extension of their own
• Why RAG isn’t dead: coding companies still rely heavily on search, and Simon sees hybrid retrieval semantic, text, regex, SQL-style patterns becoming more important, not less
• How agentic workloads are changing search: the old pattern was one retrieval call up front; the new pattern is one agent firing many parallel queries at once, turning search into a highly concurrent tool call
• Why turbopuffer is reducing query pricing: agentic systems are dramatically increasing query volume, and Simon expects retrieval infra to adapt to huge bursts of concurrent search rather than a small number of carefully chosen calls
• The philosophy of “playing with open cards”: Simon’s habit of being radically honest with investors, including telling Lachy Groom he’d return the money if turbopuffer didn’t hit PMF by year-end
• The “P99 engineer”: Simon’s framework for building a talent-dense company, rejecting by default unless someone on the team feels strongly enough to fight for the candidate
• Почему ИИ меняет уравнение «строить vs. покупать»: дело не столько в том, может ли компания построить поисковую инфраструктуру сама, сколько в том, есть ли у неё на это время — особенно если внешняя команда может ощущаться как продолжение собственной • Почему RAG не умер: компании-разработчики по-прежнему сильно зависят от поиска, и Simon видит, что гибридный поиск — семантический, текстовый, regex, SQL-подобные паттерны — становится важнее, а не менее важным • Как агентные нагрузки меняют поиск: старый паттерн — один вызов поиска в начале; новый паттерн — один агент запускает множество параллельных запросов одновременно, превращая поиск в высококонкурентный вызов инструмента • Почему Turbopuffer снижает цены на запросы: агентные системы кардинально увеличивают объём запросов, и Simon ожидает, что инфраструктура поиска адаптируется к огромным всплескам конкурентного поиска, а не к малому числу тщательно подобранных вызовов • Философия «игры с открытыми картами»: привычка Simon быть радикально честным с инвесторами, включая слова Lachy Groom о том, что он вернёт деньги, если Turbopuffer не найдёт PMF к концу года • «P99-инженер»: фреймворк Simon для построения компании с высокой плотностью талантов — отклонять по умолчанию, если кто-то в команде не чувствует достаточно сильно, чтобы бороться за кандидата
—
Simon Hørup Eskildsen
• LinkedIn: https://www.linkedin.com/in/sirupsen
• X: https://x.com/Sirupsen
• https://sirupsen.com/about
turbopuffer
• https://turbopuffer.com/
—Simon Hørup Eskildsen• LinkedIn: https://www.linkedin.com/in/sirupsen• X: https://x.com/Sirupsen• https://sirupsen.com/aboutTurbopuffer• https://turbopuffer.com/
Full Video Pod
Полное видео подкаста
Timestamps
Таймкоды
00:00:00 The PMF promise to Lachy Groom
00:00:25 Intro and Simon's background
00:02:19 What turbopuffer actually is
00:06:26 Shopify, Elasticsearch, and the pain behind the company
00:10:07 The Readwise experiment that sparked turbopuffer
00:12:00 The insight Simon couldn’t stop thinking about
00:17:00 S3 consistency, NVMe, and the architecture bet
00:20:12 The Notion story: latency, dark fiber, and conviction
00:25:03 Build vs. buy in the age of AI
00:26:00 The Cursor story: early launch to breakout customer
00:29:00 Why code search still matters
00:32:00 Search in the age of agents
00:34:22 Pricing turbopuffer in the AI era
00:38:17 Why Simon chose Lachy Groom
00:41:28 Becoming a founder on purpose
00:44:00 The “P99 engineer” philosophy
00:49:30 Bending software to your will
00:51:13 The future of turbopuffer
00:57:05 Simon’s tea obsession
00:59:03 Tea kits, X Live, and P99 Live
00:00:00 Обещание PMF для Lachy Groom00:00:25 Вступление и биография Simon00:02:19 Что такое Turbopuffer на самом деле00:06:26 Shopify, Elasticsearch и боль, стоящая за компанией00:10:07 Эксперимент с Readwise, давший начало Turbopuffer00:12:00 Инсайт, который не отпускал Simon00:17:00 Консистентность S3, NVMe и архитектурная ставка00:20:12 История с Notion: задержка, тёмное оптоволокно и убеждённость00:25:03 «Строить vs. покупать» в эпоху ИИ00:26:00 История с Cursor: от раннего запуска до прорывного клиента00:29:00 Почему поиск по коду всё ещё важен00:32:00 Поиск в эпоху агентов00:34:22 Ценообразование Turbopuffer в эру ИИ00:38:17 Почему Simon выбрал Lachy Groom00:41:28 Стать основателем осознанно00:44:00 Философия «P99-инженера»00:49:30 Подчинить софт своей воле00:51:13 Будущее Turbopuffer00:57:05 Увлечение Simon чаем00:59:03 Чайные наборы, X Live и P99 Live
Transcript
Транскрипт
Simon Hørup Eskildsen: I don’t think I’ve said this publicly before, but I just called Lockey and was like, local Lockie. Like if this doesn’t have PMF by the end of the year, like we’ll just like return all the money to you. But it’s just like, I don’t really, we, Justine and I don’t wanna work on this unless it’s really working.
Simon Hørup Eskildsen: Думаю, я не говорил этого публично раньше, но я просто позвонил Lachy и сказал — слушай, Lachy, если к концу года у нас не будет PMF, мы просто вернём тебе все деньги. Просто мы с Justine не хотим работать над этим, если оно по-настоящему не работает.
So we want to give it the best shot this year and like we’re really gonna go for it. We’re gonna hire a bunch of people. We’re just gonna be honest with everyone. Like when I don’t know how to play a game, I just play with open cards. Lockey was the only person that didn’t, that didn’t freak out. He was like, I’ve never heard anyone say that before.
Так что мы хотим дать этому лучший шанс в этом году, и мы реально пойдём ва-банк. Мы наймём кучу людей. Мы просто будем честны со всеми. Когда я не знаю, как играть в игру, я просто играю с открытыми картами. Lachy оказался единственным человеком, которого это не напугало. Он сказал: я никогда не слышал, чтобы кто-то такое говорил.
Alessio: Hey everyone, welcome to the Leading Space podcast. This is Celesio Pando, Colonel Laz, and I’m joined by Swix, editor of Leading Space.
Alessio: Привет всем, добро пожаловать в подкаст Latent Space. Это Alessio Fanelli, партнёр Decibel, и со мной swyx, редактор Latent Space.
swyx: Hello. Hello, uh, we’re still, uh, recording in the Ker studio for the first time. Very excited. And today we are joined by Simon Eski. Of Turbo Farer welcome.
swyx: Привет-привет, мы всё ещё записываем в студии Kernel впервые. Очень рады. И сегодня у нас в гостях Simon Eskildsen из Turbopuffer. Добро пожаловать.
Simon Hørup Eskildsen: Thank you so much for having me.
Simon Hørup Eskildsen: Большое спасибо, что пригласили.
swyx: Turbo Farer has like really gone on a huge tear, and I, I do have to mention that like you’re one of, you’re not my newest member of the Danish AHU Mafia, where like there’s a lot of legendary programmers that have come out of it, like, uh, beyond Trotro, Rasmus, lado Berg and the V eight team and, and Google Maps team.
swyx: Turbopuffer просто невероятно набрал обороты, и я должен отметить, что вы — ещё один участник датской мафии Орхуса, откуда вышло множество легендарных программистов, таких как Бьярне Страуструп, Расмус Лердорф, Lars Bak и команда V8, а также команда Google Maps.
Uh, you’re mostly a Canadian now, but isn’t that interesting? There’s so many, so much like strong Danish presence.
Сейчас вы в основном канадец, но разве не интересно? Такое сильное датское присутствие.
Simon Hørup Eskildsen: Yeah, I was writing a post, um, not that long ago about sort of the influences. So I grew up in Denmark, right? I left, I left when, when I was 18 to go to Canada to, to work at Shopify. Um, and so I, like, I’ve, I would still say that I feel more Danish than, than Canadian.
Simon Hørup Eskildsen: Да, я не так давно писал пост о влияниях. Я вырос в Дании. Уехал, когда мне было 18, в Канаду работать в Shopify. И я бы всё равно сказал, что ощущаю себя больше датчанином, чем канадцем.
This is also the weird accent. I can’t say th because it, this is like, I don’t, you know, my wife is also Canadian, um, and I think. I think like one of the things in, in Denmark is just like, there’s just such a ruthless pragmatism and there’s also a big focus on just aesthetics. Like, they’re like very, people really care about like where, what things look like.
Ещё этот странный акцент — я не могу произнести «th», потому что... ну, не знаю. Моя жена тоже канадка. И я думаю, одна из вещей в Дании — там просто такой безжалостный прагматизм, и ещё большое внимание к эстетике. Людям реально важно, как вещи выглядят.
Um, and like Canada has a lot of attributes, US has, has a lot of attributes, but I think there’s been lots of the great things to carry. I don’t know what’s in the water in Ahu though. Um, and I don’t know that I could be considered part of the Mafi mafia quite yet, uh, compared to the phenomenal individuals we just mentioned.
У Канады много достоинств, у США тоже, но из Дании можно многое перенять. Хотя я не знаю, что такого в воде в Орхусе. И не уверен, что меня можно считать частью мафии — по сравнению с выдающимися людьми, которых мы только что назвали.
Barra OV is also, uh, Danish Canadian. Okay. Yeah. I don’t know where he lives now, but, and he’s the PHP.
Rasmus Lerdorf тоже датско-канадский. Да. Не знаю, где он сейчас живёт, но он создатель PHP.
swyx: Yeah. And obviously Toby German, but moved to Canada as well. Yes. Like this is like import that, uh, that, that is an interesting, um, talent move.
swyx: Да. И, конечно, Toby Lütke — немец, но тоже переехал в Канаду. Это интересный ход — такой импорт талантов.
Alessio: I think. I would love to get from you. Definition of Turbo puffer, because I think you could be a Vector db, which is maybe a bad word now in some circles, you could be a search engine.
Alessio: Я бы хотел услышать от вас определение Turbopuffer, потому что вас можно назвать векторной БД — хотя это, возможно, плохое слово в некоторых кругах — а можно поисковым движком.
It’s like, let, let’s just start there and then we’ll maybe run through the history of how you got to this point.
Давайте просто начнём с этого, а потом, может, пройдёмся по истории того, как вы к этому пришли.
Simon Hørup Eskildsen: For sure. Yeah. So Turbo Puffer is at this point in time, a search engine, right? We do full text search and we do vector search, and that’s really what we’re specialized in. If you’re trying to do much more than that, like then this might not be the right place yet, but Turbo Buffer is all about search.
Simon Hørup Eskildsen: Конечно. Turbopuffer на данный момент — это поисковый движок. Мы делаем полнотекстовый поиск и векторный поиск, и именно на этом мы специализируемся. Если вам нужно что-то значительно большее — возможно, это пока не то место. Но Turbopuffer — это целиком про поиск.
The other way that I think about it is that we can take all of the world’s knowledge, all of the exabytes and exabytes of data that there is, and we can use those tokens to train a model, but we can’t compress all of that into a few terabytes of weights, right? Compress into a few terabytes of weights, how to reason with the world, how to make sense of the knowledge.
Ещё я думаю об этом так: мы можем взять все знания мира, все эксабайты данных, и использовать эти токены для обучения модели, но мы не можем сжать всё это в несколько терабайт весов. В несколько терабайт весов можно сжать умение рассуждать о мире, умение осмысливать знания.
But we have to somehow connect it to something externally that actually holds that like in full fidelity and truth. Um, and that’s the thing that we intend to become. Right? That’s like a very holier than now kind of phrasing, right? But being the search engine for unstructured, unstructured data is the focus of turbo puffer at this point in time.
Но нужно как-то подключить модель к чему-то внешнему, что хранит информацию в полном объёме и достоверности. Именно этим мы и намерены стать. Это звучит немного высокопарно, но быть поисковым движком для неструктурированных данных — вот на чём сейчас сфокусирован Turbopuffer.
Alessio: And let’s break down. So people might say, well, didn’t Elasticsearch already do this? And then some other people might say, is this search on my data, is this like closer to rag than to like a xr, like a public search thing? Like how, how do you segment like the different types of search?
Alessio: Давайте разберёмся. Кто-то скажет: а разве Elasticsearch этого не делает? А кто-то спросит: это поиск по моим данным — ближе к RAG или к публичному поиску типа Google? Как вы разграничиваете разные типы поиска?
Simon Hørup Eskildsen: The way that I generally think about this is like, there’s a lot of database companies and I think if you wanna build a really big database company, sort of, you need a couple of ingredients to be in the air.
Simon Hørup Eskildsen: Я обычно думаю об этом так: есть много компаний баз данных, и если хочешь построить по-настоящему большую компанию БД, нужно, чтобы в воздухе витало несколько ингредиентов.
We don’t, which only happens roughly every 15 years. You need a new workload. You basically need the ambition that every single company on earth is gonna have data in your database. Multiple times you look at a company like Oracle, right? You will, like, I don’t think you can find a company on earth with a digital presence that it not, doesn’t somehow have some data in an Oracle database.
А это случается примерно раз в 15 лет. Нужна новая нагрузка. По сути, нужна амбиция, чтобы каждая компания на Земле имела данные в вашей базе. Причём неоднократно. Посмотрите на Oracle: думаю, вы не найдёте компанию с цифровым присутствием, у которой так или иначе нет данных в базе Oracle.
Right? And I think at this point, that’s also true for Snowflake and Databricks, right? 15 years later it’s, or even more than that, there’s not a company on earth that doesn’t, in. Or directly is consuming Snowflake or, or Databricks or any of the big analytics databases. Um, and I think we’re in that kind of moment now, right?
И я думаю, что сейчас это верно и для Snowflake, и для Databricks. 15 лет спустя — или даже больше — нет компании на Земле, которая прямо или косвенно не использует Snowflake, Databricks или какую-то из крупных аналитических баз. И я думаю, мы сейчас в таком же моменте.
I don’t think you’re gonna find a company over the next few years that doesn’t directly or indirectly, um, have all their data available for, for search and connect it to ai. So you need that new workload, like you need something to be happening where there’s a new workload that causes that to happen, and that new workload is connecting very large amounts of data to ai.
Я не думаю, что в ближайшие годы найдётся компания, которая прямо или косвенно не сделает все свои данные доступными для поиска и не подключит их к ИИ. Так что нужна эта новая нагрузка — нужно, чтобы что-то происходило, порождающее новый тип нагрузки. И эта нагрузка — подключение очень больших объёмов данных к ИИ.
The second thing you need. The second condition to build a big database company is that you need some new underlying change in the storage architecture that is not possible from the databases that have come before you. If you look at Snowflake and Databricks, right, commoditized, like massive fleet of HDDs, like that was not possible in it.
Второе условие для создания большой компании БД — нужно какое-то новое фундаментальное изменение в архитектуре хранения, невозможное для баз данных предыдущего поколения. Посмотрите на Snowflake и Databricks: массовый флот HDD, ставший товаром, — это просто не существовало раньше.
It just wasn’t in the air in the nineties, right? So you just didn’t, we just didn’t build these systems. S3 and and and so on was not around. And I think the architecture that is now possible that wasn’t possible 15 years ago is to go all in on NVME SSDs. It requires a particular type of architecture for the database that.
Этого не было в воздухе в девяностых. Не было S3 и подобных сервисов. И я думаю, архитектура, ставшая возможной сейчас, но невозможная 15 лет назад, — это полная ставка на NVMe SSD. Она требует особого типа архитектуры базы данных, который сложно приделать к уже существующим базам, включая те, которые вы упомянули. Второе — полная ставка на объектное хранилище, куда большая, чем была возможна 15 лет назад. У нас нет слоя консенсуса, у нас нет практически ничего. Можно выключить все серверы Turbopuffer, и мы не потеряем ни одного байта данных, потому что мы полностью положились на объектное хранилище.
It’s difficult to retrofit onto the databases that are already there, including the ones you just mentioned. The second thing is to go all in on OIC storage, more so than we could have done 15 years ago. Like we don’t have a consensus layer, we don’t really have anything. In fact, you could turn off all the servers that Turbo Buffer has, and we would not lose any data because we have all completely all in on OIC storage.
И это означает, что наша архитектура невероятно проста. Итак, второе условие: первое — новая нагрузка, означающая, что каждая компания на Земле прямо или косвенно использует вашу базу. Второе — новая архитектура хранения, из-за которой предшественники не могут делать то, что делаете вы.
And this means that our architecture is just so simple. So that’s the second condition, right? First being a new workload. That means that every company on earth, either indirectly or directly, is using your database. Second being, there’s some new storage architecture. That means that the, the companies that have come before you can do what you’re doing.
Третье, что нужно для создания большой компании БД, — со временем реализовать практически каждый план запросов к данным. Это значит, что нельзя застрять на одной функции базы данных. Она должна постоянно эволюционировать, потому что когда у кого-то данные в базе, со временем он ожидает возможности задать ей практически любой вопрос.
I think the third thing you need to do to build a big database company is that over time you have to implement more or less every Cory plan on the data. What that means is that you. You can’t just get stuck in, like, this is the one thing that a database does. It has to be ever evolving because when someone has data in the database, they over time expect to be able to ask it more or less every question.
Поэтому нужно довести архитектуру хранения до предела её возможностей. Вот три условия.
So you have to do that to get the storage architecture to the limit of what, what it’s capable of. Those are the three conditions.
swyx: Я хотел бы немного поговорить о мотивации. Вы ушли из Shopify, были ведущим инженером по инфраструктуре. А ещё руководили Kernel Labs внутри Shopify.
swyx: I just wanted to get a little bit of like the motivation, right? Like, so you left Shopify, you’re like principal, engineer, infra guy. Um, you also head of kernel labs, uh, inside of Shopify, right?
И потом консультировали Readwise, и это дало вам идею. Хочу, чтобы вы рассказали эту историю. Может, вы её уже рассказывали, но просто познакомьте людей с новой нагрузкой и моментом озарения для Turbopuffer.
And then you consulted for read wise and that it kind of gave you that, that idea. I just wanted you to tell that story. Um, maybe I, you’ve told it before, but, uh, just introduce the, the. People to like the, the new workload, the sort of aha moment for turbo Puffer
Simon Hørup Eskildsen: Конечно. Да, я провёл почти десять лет в Shopify.
Simon Hørup Eskildsen: For sure. So yeah, I spent almost a decade at Shopify.
Я был в команде инфраструктуры с довольно ранних дней, примерно с 2013 года. Тогда казалось, что всё растёт невероятно быстро — все метрики удваивались год от года. По сравнению с тем, с чем сталкиваются компании сегодня, это выглядит мило — некоторые видят такой рост помесячно.
I was on the infrastructure team, um, from the fairly, fairly early days around 2013. Um, at the time it felt like it was growing so quickly and everything, all the metrics were, you know, doubling year on year compared to the, what companies are contending with today. It’s very cute in growth. I feel like lot some companies are seeing that month over month.
Конечно, Shopify стабильно растёт уже очень долго. Но я провёл десять лет, занимаясь одним: убедиться, что сайт работает сегодня и будет работать через год. По большей части это было связано с тем, что Кардашьяны генерировали огромный трафик на Shopify, постоянно обновляя мерч и развивая свои бизнесы.
Um, of course. Shopify compound has been compounding for a very long time now, but I spent a decade doing that and the majority of that was just make sure the site is up today and make sure it’s up a year from now. And a lot of that was really just the, um, you know, uh, the Kardashians would drive very, very large amounts of, of data to, to uh, to Shopify as they were rotating through all the merch and building out their businesses.
Нам нужно было просто справляться с этим. Иногда это были события с миллионом запросов в секунду. У нас были свои дата-центры, мы переезжали в облако, шардировали всё подряд. Десять лет я масштабировал базы данных, потому что это фундаментально самое сложное, что нужно масштабировать в таких системах.
And we just needed to make sure we could handle that. Right. And sometimes these were events, a million requests per second. And so, you know, we, we had our own data centers back in the day and we were moving to the cloud and there was so much sharding work and all of that that we were doing. So I spent a decade just scaling databases ‘cause that’s fundamentally what’s the most difficult thing to scale about these sites.
База данных, с которой мне было сложнее всего справляться и от дежурств по которой я больше всего страдал, была Elasticsearch. С ней было крайне трудно работать. И я видел множество проектов, чьи амбиции сдерживались именно ею.
The database that was the most difficult for me to scale during that time, and that was the most aggravating to be on call for, was elastic search. It was very, very difficult to deal with. And I saw a lot of projects that were just being held back in their ambition by using it.
swyx: Причём самохостинг.
swyx: And I mean, self-hosted.
Самохостинг, потому что...
Self-hosted. ‘cause
Simon Hørup Eskildsen: Да, и это было как коммерческое решение — речь о 2015 годе, конкретная эпоха. Сейчас, вероятно, со многим стало лучше. Но тогда это было мучительно, и я всё думал: это же инвертированный индекс, он должен хорошо работать с такими запросами.
Simon Hørup Eskildsen: it’s, yeah, and it commercial, this is like 2015, right? So it’s like a very particular vintage. Right. It’s probably better at a lot of these things now. Um, it was difficult to contend with and I’m just like, I just think about it. It’s an inverted index. It should be good at these kinds of queries and do all of this.
Но часто мы не могли заставить его делать именно то, что нам нужно, — по сути, дать нам прямой доступ к Lucene. Так что это просто работало фоном, и мы судорожно масштабировали, когда приходилось. Потом я ушёл, и когда уходил, не был уверен, чем хочу заниматься.
And it was, we, we often couldn’t get it to do exactly what we needed to do or basically get lucine to do, like expose lucine raw to, to, to what we needed to do. Um, so that was like. Just something that we did on the side and just panic scaled when we needed to, but not a particular focus of mine. So I left, and when I left, I, um, wasn’t sure exactly what I wanted to do.
Я ведь провёл почти десять лет в одной компании. Я там вырос. Начал работать в 18 лет.
I mean, it spent like a decade inside of the same company. I’d like grown up there. I started working there when I was 18.
swyx: Вы работали только с Rails?
swyx: You only do Rails?
Simon Hørup Eskildsen: Ну да, Rails. Он поклонник Rails. Обожаю Rails. Просто отлично.
Simon Hørup Eskildsen: Yeah. I mean, yeah. Rails. And he’s a Rails guy. Uh, love Rails. So good. Um,
Alessio: Мы все мечтаем, чтобы можно было по-прежнему работать на Rails.
Alessio: we all wish we could still work in Rails.
swyx: Знаю, знаю, но я пытался выучить Ruby — слишком много способов сделать одно и то же. Это моя претензия. Я знаю, что есть правильный способ.
swyx: I know know. I know, but some, I tried learning Ruby.
Просто вариантов слишком много.
It’s just too much, like too many options to do the same thing. It’s, that’s my, I I know there’s a, there’s a way to do it.
Simon Hørup Eskildsen: Мне нравится. Не уверен, что стал бы использовать его сейчас — с Claude Code и Cursor и всем остальным. Но если я просто сажусь писать код сам — я мыслю именно так.
Simon Hørup Eskildsen: I love it. I don’t know that I would use it now, like given cloud code and, and, and cursor and everything, but, um, um, but still it, like if I’m just sitting down and writing a teal code, that’s how I think.
В общем, я ушёл и не был уверен. Поговорил с парой компаний и понял: мне нужно увидеть побольше, прежде чем решить, на чём сосредоточиться. Я назвал это «ангельская инженерия» — прыгал между компаниями друзей по три месяца, помогал с чем-то.
But anyway, I left and I wasn’t, I talked to a couple companies and I was like, I don’t. I need to see a little bit more of the world here to know what I’m gonna like focus on next. Um, and so what I decided is like I was gonna, I called it like angel engineering, where I just hopped around in my friend’s companies in three months increments and just helped them out with something.
Получал немного акций и решал интересные инфраструктурные задачи. Работал с кучей компаний: Readwise, Replicate, Causal — знаете, это табличный движок, где можно работать с распределениями.
Right. And, and just vested a bit of equity and solved some interesting infrastructure problem. So I worked with a bunch of companies at the time, um, read Wise was one of them. Replicate was one of them. Um, causal, I dunno if you’ve tried this, it’s like a, it’s a spreadsheet engine Yeah. Where you can do distribution.
Их недавно купили. Мы использовали их для FP&A в Turbopuffer. Куча таких компаний — было супер весело. И когда случился момент ChatGPT, я был с Readwise. Мы готовились к запуску Reader — приложения, где ты складываешь статьи и читаешь потом.
They sold recently. Yeah. Um, we’ve been, we used that in fp and a at, um, at Turbo Puffer. Um, so a bunch of companies like this and it was super fun. And so we’re the Chachi bt moment happened, I was with. With read Wise for a stint, we were preparing for the reader launch, right? Which is where you, you cue articles and read them later.
Я как раз приводил их Postgres в порядок — что по сути сводилось к настройке autovacuum. И тут произошёл этот момент, и мы подумали: может, стоит построить маленький рекомендательный движок и попробовать подключить LLM. Модели были ещё не очень хороши, но было ясно, что что-то есть.
And I was just getting their Postgres up to snuff, like, which basically boils down to tuning, auto vacuum. So I was doing that and then this happened and we were like, oh, maybe we should build a little recommendation engine and some features to try to hook in the lms. They were not that good yet, but it was clear there was something there.
И я построил небольшой рекомендательный движок: берём статьи, которые ты недавно читал, эмбеддим все статьи и делаем рекомендации. Он оказался достаточно хорош — когда я прогнал его на данных одного из сооснователей Readwise, я обнаружил статьи о рождении ребёнка.
And so I built a small recommendation engine just, okay, let’s take the articles that you’ve recently read, right? Like embed all the articles and then do recommendations. It was good enough that when I ran it on one of the co-founders of Rey’s, like I found out that I got articles about, about having a child.
Я такой: о боже, я не знал, что у них будет ребёнок. Не знал, что делать с этой информацией, но рекомендательный движок был достаточно хорош, чтобы подсказывать такие статьи. Рекомендации реально работали.
I’m like, oh my God, I didn’t, I, I didn’t know that, that they were having a child. I wasn’t sure what to do with that information, but the recommendation engine was good enough that it was suggesting articles, um, about that. And so there was, there was recommendations and uh, it actually worked really well.
Но Readwise тратил примерно пять тысяч долларов в месяц на всю инфраструктуру. Когда я прикинул на салфетке стоимость эмбеддинга всех статей, размещения их в векторном индексе и вывода в продакшн — выходило около 30 тысяч в месяц. Это было нереально.
But this was a company that was spending maybe five grand a month in total on all their infrastructure and. When I did the napkin math on running the embeddings of all the articles, putting them into a vector index, putting it in prod, it’s gonna be like 30 grand a month. That just wasn’t tenable. Right?
Readwise — гордо бутстрапленная компания, и платить 30 тысяч за инфраструктуру одной функции при пяти тысячах за всё остальное было просто невозможно. Так что это попало в категорию «полезно, неплохо работает, но вернёмся, когда подешевеет».
Like Read Wise is a proudly bootstrapped company and it’s paying 30 grand for infrastructure for one feature versus five. It just wasn’t tenable. So sort of in the bucket of this is useful, it’s pretty good, but let us, let’s return to it when the costs come down.
swyx: А масштабируется это по фичам? То есть от пяти до тридцати — это из-за количества... Какой коэффициент масштабирования?
swyx: Did you say it grows by feature? So for five to 30 is by the number of, like, what’s the, what’s the Scaling factor scale?
Масштабируется по количеству статей, которые ты эмбеддишь.
It scales by the number of articles that you embed.
Simon Hørup Eskildsen: Да, но я имел в виду, что пять тысяч — это за всё остальное: Heroku, dynos, Postgres, вся остальная инфраструктура. А тридцать тысяч — за одну функцию. Одну: какие статьи связаны с этой.
Simon Hørup Eskildsen: It does, but what I meant by that is like five grand for like all of the other, like the Heroku, dinos, Postgres, like all the other, and this then storage is 30. Yeah. And then like 30 grand for one feature. Right. Which is like, what other articles are related to this one.
Это было слишком много. Их бюджет был бы, может, пару тысяч, и это уже казалось бы дорого. Так что мы отложили. Мол, ладно, сделаем позже, подождём, пока подешевеет. И это меня преследовало. Я не мог перестать об этом думать.
Um, so it was just too much right to, to power everything. Their budget would’ve been maybe a few thousand dollars, which still would’ve been a lot. And so we put it in a bucket of, okay, we’re gonna do that later. We’ll wait, we will wait for the cost to come down. And that haunted me. I couldn’t stop thinking about it.
Я понимал: здесь явно скрытый спрос. Если бы стоимость была в десять раз меньше, мы бы это выпустили. Это была единственная точка данных, которая у меня была. Я не ходил и не опрашивал других. Просто начал читать — не мог удержаться.
I was like, okay, there’s clearly some latent demand here. If the cost had been a 10th, we would’ve shipped it and. This was really the only data point that I had. Right. I didn’t, I, I didn’t, I didn’t go out and talk to anyone else. It was just so I started reading Right. I couldn’t, I couldn’t help myself.
Я не знал, что такое векторный индекс. Едва понимал, как генерируются векторы. Был ранний 2023 — много хайпа вокруг векторных баз данных, они поднимали кучу денег. Я реально ничего об этом не знал. Пробовал маленькие модели, файнтюнил — пытался разобраться.
Like I didn’t know what like a vector index is. I, I generally barely do about how to generate the vectors. There was a lot of hype about, this is a early 2023. There was a lot of hype about vector databases. There were raising a lot of money and it’s like, I really didn’t know anything about it. It’s like, you know, trying these little models, fine tuning them.
И я просто сел. У меня есть репозиторий на GitHub под названием Napkin Math. Там строки вроде: вот столько пропускной способности к DRAM, вот столько записей в секунду на SSD, вот сколько пропускной способности на одно подключение к S3.
Like I was just trying to get sort of a lay of the land. So I just sat down. I have this. A GitHub repository called Napkin Math. And on napkin math, there’s just, um, rows of like, oh, this is how much bandwidth. Like this is how many, you know, you can do 25 gigabytes per second on average to dram. You can do, you know, five gigabytes per second of rights to an SSD, blah blah.
Все эти числа. И я просто сел и подумал: почему никто не построил базу данных, где всё кладётся в объектное хранилище, а потом «надувается» в NVMe при использовании и в DRAM при активном запросе? Это выглядит довольно очевидным. Единственный минус — при полной ставке на объектное хранилище каждая запись занимает пару сотен миллисекунд. Но дальше — сплошные плюсы.
All of these numbers, right? And S3, how many you could do per, how much bandwidth can you drive per connection? I was just sitting down, I was like, why hasn’t anyone build a database where you just put everything on O storage and then you puff it into NVME when you use the data and you puff it into dram if you’re, if you’re querying it alive, it’s just like, this seems fairly obvious and you, the only real downside to that is that if you go all in on o storage, every right will take a couple hundred milliseconds of latency, but from there it’s really all upside, right?
Первый запрос — полсекунды. И мне пришло в голову: архитектура отлично подходит. Отлично для объектного хранилища, отлично для NVMe SSD. Просто десять лет назад это было невозможно. Возвращаясь к тому, о чём мы говорили: нужно строить базу данных с минимальным количеством обращений.
You do the first go, it takes half a second. And it sort of occurred to me as like, well. The architecture is really good for that. It’s really good for AB storage, it’s really good for nvm ESSD. It’s, well, you just couldn’t have done that 10 years ago. Back to what we were talking about before. You really have to build a database where you have as few round trips as possible, right?
Именно так работают современные CPU, NVMe SSD и S3: нужно держать огромное количество незавершённых запросов. Идёшь в S3 — тысяча запросов за один раунд. Ждёшь ответа. Принимаешь новое решение. Повторяешь. И стараешься уложиться максимум в три таких цикла.
This is how CPUs work today. It’s how NVM E SSDs work. It’s how as, um, as three works that you want to have a very large amount of outstanding requests, right? Like basically go to S3, do like that thousand requests to ask for data in one round trip. Wait for that. Get that, like, make a new decision. Do it again, and try to do that maybe a maximum of three times.
Но ни одна база данных не была спроектирована так для NVMe SSD. На NVMe можно достичь пропускной способности, кратной DRAM, если использовать их правильно. То же с S3: можно полностью загрузить сетевую карту, которая обычно не загружена, и получить очень высокую пропускную способность.
But no databases were designed that way within NVME as is ds. You can drive like within, you know, within a very low multiple of DRAM bandwidth if you use it that way. And same with S3, right? You can fully max out the network card, which generally is not maxed out. You get very, like, very, very good bandwidth.
Но никто так базу данных не строил. И я подумал: а нельзя ли просто взять все векторы, поместить их в условную систему координат, получить кластеры, положить файл clusters.json на S3, а потом отдельный файл для каждого кластера — cluster1.json, cluster2.json? Это два раунда обращений.
And, but no one had built a database like that. So I was like, okay, well can’t you just, you know, take all the vectors right? And plot them in the proverbial coordinate system. Get the clusters, put a file on S3 called clusters, do json, and then put another file for every cluster, you know, cluster one, do js O cluster two, do js ON you know that like it’s two round trips, right?
Получаешь кластеры, находишь ближайшие, скачиваешь файлы ближайших кластеров. Два раунда.
So you get the clusters, you find the closest clusters, and then you download the cluster files like the, the closest end. And you could do this in two round trips.
swyx: И ближайших соседей считаете локально.
swyx: You were nearest neighbors locally.
Simon Hørup Eskildsen: Да-да. И из этого строишь файл. Ультра-простая схема, но первая версия Turbopuffer была не так далека от этого.
Simon Hørup Eskildsen: Yes. Yes. And then, and you would build this, this file, right? It’s just like ultra simplistic, but it’s not a far shot from what the first version of Turbo Buffer was.
Почему этого никто не сделал раньше?
Why hasn’t anyone done that
Alessio: В тот момент, с точки зрения нагрузки, вы думали, что это будет чтение-ориентированная штука — для рекомендаций? Типа: запись дорогая, но с ИИ записей на самом деле не так много?
Alessio: in that moment? From a workload perspective, you’re thinking this is gonna be like a read heavy thing because they’re doing recommend. Like is the fact that like writes are so expensive now? Oh, with ai you’re actually not writing that much.
Simon Hørup Eskildsen: На тот момент я особо не задумывался... Хотя нет, мне всегда было ясно, что записей будет много, потому что в Shopify поисковые кластеры делали, не знаю, десятки или сотни запросов на чтение в секунду — человек сидит и вводит текст. А обновлений в секунду были миллионы.
Simon Hørup Eskildsen: At that point I hadn’t really thought too much about, well no actually it was always clear to me that there was gonna be a lot of rights because at Shopify, the search clusters were doing, you know, I don’t know, tens or hundreds of crew QPS, right?
Так что я всегда знал, что соотношение чтения к записи — примерно 1 к 10 или 1 к 100. В случае Readwise чтений тоже было бы куда меньше, чем записей — просто огромный поток данных по сравнению с количеством запросов. Но я не особо думал об этом. В основном думал: какой фундаментально самый дешёвый способ построить базу данных в облаке с доступными примитивами?
‘cause you just have to have a human sit and type in. But we did, you know, I don’t know how many updates there were per second. I’m sure it was in the millions, right into the cluster. So I always knew there was like a 10 to 100 ratio on the read write. In the read wise use case. It’s, um, even, even in the read wise use case, there’d probably be a lot fewer reads than writes, right?
И вот он. Одна машина, скажем, терабайт данных в S3, $200 в месяц. Может, 5–10% этих данных нужно держать на NVMe SSD, и ещё меньше — в оперативной памяти. Получается очень дёшево «раздувать» данные.
There’s just a lot of churn on the amount of stuff that was going through versus the amount of queries. Um, I wasn’t thinking too much about that. I was mostly just thinking about what’s the fundamentally cheapest way to build a database in the cloud today using the primitives that you have available.
swyx: Кстати, когда вы говорите, что никто этого не делал — вы бы отнесли Neon к похожему пути? В смысле S3-first и разделение вычислений и хранения.
And this is it, right? You just, now you have one machine and you know, let’s say you have a terabyte of data in S3, you paid the $200 a month for that, and then maybe five to 10% of that data and needs to be an NV ME SSDs and less than that in dram. Well. You’re paying very, very little to inflate the data.
Simon Hørup Eskildsen: Да, я имел в виду — построить полностью новую базу данных. Не знаю, были ли мы первыми — я просто посмотрел на «математику на салфетке» и подумал: это кажется очевидным.
swyx: By the way, when you say no one else has done that, uh, would you consider Neon, uh, to be on a similar path in terms of being sort of S3 first and, uh, separating the compute and storage?
Уверен, человек сто пришли к этому одновременно — как лампочка и любое изобретение. Это просто витало в воздухе. Думаю, Neon был раньше, но они надстроены поверх Postgres. Они построили архитектуру, где данные в памяти, а потом как бы mmap-ятся обратно в S3. Для OLTP на тот момент это было очень новаторски, но я не видел базу данных, полностью построенную с нуля для этого — без ретрофита. Без слоя консенсуса. С compare-and-swap на объектном хранилище для консенсуса. Не видел, чтобы кто-то зашёл настолько далеко.
Simon Hørup Eskildsen: Yeah, I think what I meant with that is, uh, just build a completely new database. I don’t know if we were the first, like it was very much, it was, I mean, I, I hadn’t, I just looked at the napkin math and was like, this seems really obvious.
Наверняка кто-то был до нас. Не знаю. Я просто смотрел на «математику на салфетке».
So I’m sure like a hundred people came up with it at the same time. Like the light bulb and every invention ever. Right. It was just in the air. I think Neon Neon was, was first to it. And they’re trying, they’re retrofitted onto Postgres, right? And then they built this whole architecture where you have, you have it in memory and then you sort of.
swyx: А когда вы говорите «слой консенсуса» — вы сильно полагаетесь на строгую консистентность S3? Да? Ок.
You know, m map back to S3. And I think that was very novel at the time to do it for, for all LTP, but I hadn’t seen a database that was truly all in, right. Not retrofitting it. The database felt built purely for this no consensus layer. Even using compare and swap on optic storage to do consensus. I hadn’t seen anyone go that all in.
Так что...
And I, I mean, there, there, I’m sure there was someone that did that before us. I don’t know. I was just looking at the napkin math
Simon Hørup Eskildsen: Это и есть наш слой консистентности. И вот что большинство людей не осознаёт: S3 стал консистентным только в декабре 2020 года.
swyx: and, and when you say consensus layer, uh, are you strongly relying on S3 Strong consistency? You are. Okay.
swyx: Помню, как это вышло во время ковида — люди такие: «о, прикольно». Просто бесплатное обновление.
So
Они просто объявили: у нас строгая консистентность, ребят. И все такие: ок, круто.
Simon Hørup Eskildsen: that is your consensus layer. It, it is the consistency layer. And I think also, like, this is something that most people don’t realize, but S3 only became consistent in December of 2020.
Simon Hørup Eskildsen: Уверен, у них это уже работало в продакшне какое-то время, и они просто сказали: готово.
swyx: I remember this coming out during COVID and like people were like, oh, like, it was like, uh, it was just like a free upgrade.
А люди такие: ок, классно. Но это большой момент. NVMe SSD тоже не были в облаке до примерно 2017 года. Сначала — 2017, NVMe SSD, все такие: «ок, есть один SKU, который это делает, ну и ладно». Проходит пару лет. Потом — S3 становится консистентным в 2020.
Simon Hørup Eskildsen: Yeah.
И теперь не нужен огромный Foundation DB или ZooKeeper, сидящий и конкурирующий за ключи. Именно так Snowflake и другие обходились...
swyx: They were just, they just announced it. We saw consistency guys and like, okay, cool.
swyx: Ушло.
Simon Hørup Eskildsen: And I’m sure that they just, they probably had it in prod for a while and they’re just like, it’s done right.
Simon Hørup Eskildsen: Именно. Просто исчезло. Отдаёшь на откуп сотням людей, работающих над S3. А compare-and-swap в S3 на тот момент ещё не было.
And people were like, okay, cool. But. That’s a big moment, right? Like nv, ME SSDs, were also not in the cloud until around 2017, right? So you just sort of had like 2017 nv, ME SSDs, and people were like, okay, cool. There’s like one skew that does this, whatever, right? Takes a few years. And then the second thing is like S3 becomes consistent in 2020.
swyx: Кстати, я не знаю, что это такое, может, объясните.
So now it means you don’t have to have this like big foundation DB or like zookeeper or whatever sitting there contending with the keys, which is how. You know, that’s what Snowflake and others have do so much
Да, конечно.
swyx: for gone
Simon Hørup Eskildsen: Да, итак, compare-and-swap — это, по сути, вот что. Представьте: у вас база данных, и было бы удобно иметь файл metadata.json. В metadata.json — вещи вроде: какие ключи где находятся, что значит какой файл, куча метаданных для работы базы.
Simon Hørup Eskildsen: Exactly. Just gone. Right? And so just push to the, you know, whatever, how many hundreds of people they have working on S3 solved and then compare and swap was not in S3 at this point in time,
Самый простой способ это сделать. Но у вас может быть много серверов, которые хотят менять метаданные — они записали файл и хотят, чтобы метаданные его отразили. Скажем, сто нод конкурируют за этот metadata.json. Compare-and-swap позволяет скачать файл, внести изменения и записать его обратно только если он не изменился за это время.
swyx: by the way.
Если изменился — повторяете. Просто циклы повторов. Если сто нод это делают, будет медленно, но со временем сойдётся. Этого примитива не было в S3. Не было до конца 2024 года. Зато он был в GCP.
Uh, I don’t know what that is, so maybe you wanna explain. Yes. Yeah.
Настоящая история совсем не в том, что я сел и всё спланировал. Я подумал: ладно, начнём на GCS, S3 получит это позже. Вовсе не так — мы начали, нам просто повезло. Мы начали на GCP, потому что Shopify работал на GCP, и это была платформа, которую я знал лучше всего.
Simon Hørup Eskildsen: Yes. So, um, what Compare and swap is, is basically, you can imagine that if you have a database, it might be really nice to have a file called metadata json. And metadata JSON could say things like, Hey, these keys are here and this file means that, and there’s lots of metadata that you have to operate in the database, right?
Я знал канадскую команду оттуда, потому что работал с ними в Shopify. Так что естественно было начать там. И когда мы начали строить базу данных, думали: да, нам нужен слой консенсуса — ZooKeeper или что-то такое.
But that’s the simplest way to do it. So now you have might, you might have a lot of servers that wanna change the metadata. They might have written a file and want the metadata to contain that file. But you have a hundred nodes that are trying to contend with this metadata that JSON well, what compare and Swap allows you to do is basically just you download the file, you make the modifications, and then you write it only if it hasn’t changed.
Но потом обнаружили compare-and-swap: о, можно отложить проблему! Просто metadata.json, и нормально. Наверное, нормально. И мы продолжали откладывать, пока не получили очень сильную уверенность в идее. А потом фактически поставили компанию на то, что S3, скорее всего, тоже это получит. Стало реально тяжело примерно в середине 2024.
While you did the modification and if not you retry. Right? Should just have this retry loops. Now you can imagine if you have a hundred nodes doing that, it’s gonna be really slow, but it will converge over time. That primitive was not available in S3. It wasn’t available in S3 until late 2024, but it was available in GCP.
Потому что мы закрывали сделку с Notion, а они работали в AWS. И мы такие: поверьте, вам правда лучше, чтобы мы запустили это в GCP. А они: не уверены. У нас всё в AWS. Задержка между облаками была огромной, и мы были настолько уверены в своей архитектуре, что купили тёмное оптоволокно между регионами AWS и GCP в Орегоне, через точку обмена. GCP такие: мы никогда не видели, чтобы стартап... что тут происходит?
The real story of this is certainly not that I sat down and like bake brained it. I was like, okay, we’re gonna start on GCS S3 is gonna get it later. Like it was really not that we started, we got really lucky, like we started on GCP and we started on GCP because tur um, Shopify ran on GCP. And so that was the platform I was most available with.
А мы просто: нет, мы не хотим делать метаданные на S3. Мы настраивали TCP-окна, всё что можно, чтобы снизить задержку — настолько сильна была уверенность. Итого три условия: compare-and-swap для метаданных — не было в S3 до конца 2024. Консистентность S3 — появилась в декабре 2020. И NVMe SSD — появились в облаке в 2017.
Right. Um, and I knew the Canadian team there ‘cause I’d worked with them at Shopify and so it was natural for us to start there. And so when we started building the database, we’re like, oh yeah, we have to build a, we really thought we had to build a consensus layer, like have a zookeeper or something to do this.
swyx: В каком-то смысле это огромная история успеха облачных технологий — что вы смогли всё это собрать. Но ещё и покупка тёмного оптоволокна — такого я вообще никогда не слышал.
But then we discovered the compare and swap. It’s like, oh, we can kick the can. Like we’ll just do metadata r json and just, it’s fine. It’s probably fine. Um, and we just kept kicking the can until we had very, very strong conviction in the idea. Um, and then we kind of just hinged the company on the fact that S3 probably was gonna get this, it started getting really painful in like mid 2024.
Simon Hørup Eskildsen: Для крупной компании это нормально — подключаешь свой дата-центр и всё. Но наш случай был уникально болезненным с Notion, потому что в Ashburn, Вирджиния, дата-центры GCP и AWS находятся в пределах миллисекунды друг от друга на публичных точках обмена.
‘cause we were closing deals with, um, um, notion actually that was running in AWS and we’re like, trust us. You, you really want us to run this in GCP? And they’re like, no, I don’t know about that. Like, we’re running everything in AWS and the latency across the cloud were so big and we had so much conviction that we bought like, you know, dark fiber between the AWS regions in, in Oregon, like in the InterExchange and GCP is like, we’ve never seen a startup like do like, what’s going on here?
А в Орегоне дата-центр GCP сидит в паре сотен километров к востоку от Портленда, а регион AWS — в самом Портленде, и сетевой обмен идёт через Сиэтл. Это полные 14 миллисекунд. Так что нам пришлось пойти через точку обмена в Портленде.
And we’re just like, no, we don’t wanna do this. We were tuning like TCP windows, like everything to get the latency down ‘cause we had so high conviction in not doing like a, a metadata layer on S3. So those were the three conditions, right? Compare and swap. To do metadata, which wasn’t in S3 until late 2024 S3 being consistent, which didn’t happen until December, 2020.
И...
Uh, 2020. And then NVMe ssd, which didn’t end in the cloud until 2017.
swyx: И вы предпочли это, а не поднять ZooKeeper и...
swyx: I mean, in some ways, like a very big like cloud success story that like you were able to like, uh, put this all together, but also doing things like doing, uh, bind our favor. That that actually is something I’ve never heard.
Simon Hørup Eskildsen: Однозначно. Это не имеет состояния — я не хочу состояние в двух системах. И я думаю, это всё продиктовано тем, что Justine, мой сооснователь, и я провели столько лет на дежурствах. Худшие аварии — когда состояние в нескольких местах рассинхронизируется.
Simon Hørup Eskildsen: I mean, it’s very common when you’re a big company, right?
Так что это шло из очень чистого источника боли — мы представляли, из-за чего нас могут разбудить в 3 часа ночи. И ZooKeeper в этом списке не значился.
You’re like connecting your own like data center or whatever. But it’s like, it was uniquely just a pain with notion because the, um, the org, like most of the, like if you’re buying in Ashburn, Virginia, right? Like US East, the Google, like the GCP and, and AWS data centers are like within a millisecond on, on each other, on the public exchanges.
swyx: Когда вы разговариваете с Notion или кем-то — им важно это или они просто...
But in Oregon uniquely, the GCP data center sits like a couple hundred kilometers, like east of Portland and the AWS region sits in Portland, but the network exchange they go through is through Seattle. So it’s like a full, like 14 milliseconds or something like that. And so anyway, yeah. It’s, it’s, so we were like, okay, we can’t, we have to go through an exchange in Portland.
Simon Hørup Eskildsen: Им важна задержка.
Yeah. And
swyx: Задержка, стоимость. Всё.
swyx: you’d rather do this than like run your zookeeper and like
Simon Hørup Eskildsen: Им важна только задержка. И мы просто взяли затраты на себя. Мы сказали: у нас сильная уверенность. В какой-то момент переведём их на AWS. Так что просто купим оптоволокно, не важно. Обычно при покупке оптоволокна берут несколько линий.
Simon Hørup Eskildsen: Yes. Way rather. It doesn’t have state, I don’t want state and two systems. Um, and I think all that is just informed by Justine, my co-founder and I had just been on call for so long. And the worst outages are the ones where you have state in multiple places that’s not syncing up.
А мы такие: можем позволить только одну, но протестируем — при переходе на публичный интернет всё работает гладко. Так что мы сделали кучу всего... В общем, да, это было круто.
So it really came from, from a a, like just a, a very pure source of pain, of just imagining what we would be Okay. Being woken up at 3:00 AM about and having something in zookeeper was not one of them.
Alessio: Представляю разговор с представителем GCP: нет, мы купим оптоволокно, потому что знаем, что через полгода уйдём от вас на AWS.
swyx: You, you’re talking to like a notion or something. Do they care or do they just, they
Но пока — вот так. Это...
Simon Hørup Eskildsen: just, they care about latency.
Simon Hørup Eskildsen: Ну, на самом деле эта нагрузка до сих пор работает на GCP. Потому что всё было настолько надёжно. Дело было не в уходе с GCP, а в честности — мы просто хотели дать Notion ту задержку, которую они заслуживали.
swyx: They latency cost. That’s it.
Мы не хотели, чтобы им приходилось думать обо всём этом. Они ещё сказали: исходящий трафик будет дорогим. А мы: ладно, чёрт с ним, сделаем VPC-пиринг с вами в AWS, возьмём затраты на себя. Что нужно — то и сделаем.
Simon Hørup Eskildsen: They just cared about latency. Right. And we just absorbed the cost. We’re just like, we have high conviction in this. At some point we can move them to AWS. Right. And so we just, we, we’ll buy the fiber, it doesn’t matter. Right. Um, and it’s like $5,000. Usually when you buy fiber, you buy like multiple lines.
Alessio: А какие конкретно были нагрузки? Потому что когда думаешь об ИИ, 14 миллисекунд — это вроде бы ничего в масштабах генерации модели.
And we’re like, we can only afford one, but we will just test it that when it goes over the public internet, it’s like super smooth. And so we did a lot of, anyway, it’s, yeah, it was, that’s cool.
Simon Hørup Eskildsen: Нам сказали, какую задержку нужно побить. Мы смотрели на трейсы и прикидывали: какие ещё ответвления трейса возможны?
Alessio: You can imagine talking to the GCP rep and it’s like, no, we’re gonna buy, because we know we’re gonna turn, we’re gonna turn from you guys and go to AWS in like six months.
Потому что если у вас 14 вместо 7 миллисекунд, можно вместить ещё один раунд. Пришлось настраивать TCP, чтобы отправлять как можно больше данных за каждый раунд, прогревать все соединения. Много вещей накапливается из-за таких задержек. Но в целом — нам просто нужно было побить задержку конкурентного решения.
But in the meantime we’ll do this. It’s
swyx: То есть Notion — они же сами компания баз данных. Они могли бы сделать это сами, у них много инженерии баз данных. Как вы вообще зашли в дверь?
Simon Hørup Eskildsen: a, I mean, like they, you know, this workload still runs on GCP for what it’s worth. Right? ‘cause it’s so, it was just, it was so reliable. So it was never about moving off GCP, it was just about honesty. It was just about giving notion the latency that they deserved.
Simon Hørup Eskildsen: В последний раз в Сан-Франциско я разговаривал с одним из инженеров, который был нашим чемпионом в Notion.
Right. Um, and we didn’t want ‘em to have to care about any of this. We also, they were like, oh, egress is gonna be bad. It was like, okay, screw it. Like we’re just gonna like vvc, VPC peer with you and AWS we’ll eat the cost. Yeah. Whatever needs to be done.
Они просто пытались убедиться, что стоимость на пользователя соответствует нужной экономике. Я думаю об этом так: мне нужно заработать маржу на том, что облако берёт с меня, а мои клиенты должны заработать маржу на том, что я беру с них. Просто — маржа по всей цепочке, и так строится продукт.
Alessio: And what were the actual workloads? Because I think when you think about ai, it’s like 14 milliseconds.
Наши клиенты должны принимать правильный для себя набор компромиссов Turbopuffer, и если им это подходит — отлично.
It’s like really doesn’t really matter in the scheme of like a model generation.
swyx: Вы чувствуете, что конкурируете со внутренней разработкой или с другими вендорами?
Simon Hørup Eskildsen: Yeah. We were told the latency, right. That we had to beat. Oh, right. So, so we’re just looking at the traces. Right. And then sort of like hand draw, like, you know, kind of like looking at the trace and then thinking what are the other extensions of the trace?
Simon Hørup Eskildsen: Да, простите, это всё было подводкой к вашему вопросу. Один из инженеров Notion рассказал мне, что они сидели и, наверное, на салфетке нарисовали: почему никто такого не построил? А потом увидели Turbopuffer — и это было буквально оно. И я думаю, ИИ изменил уравнение «строить vs. покупать»: дело не в том, могут ли они это построить, а в том, есть ли у них время.
Right. And there’s a lot more to it because it’s also when you have, if you have 14 versus seven milliseconds, right. You can fit in another round trip. So we had to tune TCP to try to send as much data in every round trip, prewarm all the connections. And there was, there’s a lot of things that compound from having these kinds of round trips, but in the grand scheme it was just like, well, we have to beat the latency of whatever we’re up against.
Они почувствовали: если это команда, которая может это сделать, и они ощущаются как продолжение нашей команды — мы можем двигаться гораздо быстрее. Это было бы очень полезно. И они нас реально проверили — у нас были очень длинные ночи, чтобы сделать этот POC.
swyx: Which is like they, I mean, notion is a database company. They could have done this themselves. They, they do lots of database engineering themselves. How do you even get in the door? Like Yeah, just like talk through that kind of.
Notion стали нашим вторым крупным клиентом после Cursor, с которым тоже было много бессонных ночей.
Simon Hørup Eskildsen: Last time I was in San Francisco, I was talking to one of the engineers actually, who, who was one of our champions, um, at, AT Notion.
swyx: Может, перейдём к истории с Cursor? Они очень вас хвалят за то, как тесно вы работали. Я слышал эту историю от Sualeh, но любопытно, как она выглядит с вашей стороны.
And they were, they were just trying to make sure that the, you know, per user cost matched the economics that they needed. You know, Uhhuh like, it’s like the way I think about, it’s like I have to earn a return on whatever the clouds charge me and then my customers have to earn a return on that. And it’s like very simple, right?
Simon Hørup Eskildsen: Я, кстати, не слышал версию Sualeh, так что можете потом сопоставить. Как я помню — на следующий день после запуска... Всё лето я работал над первой версией. Justine ещё не участвовала, потому что я никому не говорил тем летом, над чем работаю.
And so there has to be gross margin all the way up and that’s how you build the product. And so then our customers have to make the right set of trade off the turbo Puffer makes, and if they’re happy with that, that’s great.
Я просто залочился на разработке, потому что иначе легко спутать разговоры о чём-то с реальным делом. Так что я просто делал. Запустил — и в тот момент Turbopuffer был бинарником на Rust, работающим на одной восьмиядерной машине в T-инстансе.
swyx: Do you feel like you’re competing with build internally versus buy or buy versus buy?
Деплой выглядел так: смотрю на лог запросов, если запросов нет — Ctrl+C и обновляю бинарник. Буквально. Максимально минималистично. Намеренно — в Shopify мы всё время так делали. Запускали вещи в tmux перед тем, как что-то обретало хотя бы намёк на PMF.
Simon Hørup Eskildsen: Yeah, so, sorry, this was all to build up to your question. So one of the notion engineers told me that they’d sat and probably on a napkin, like drawn out like, why hasn’t anyone built this? And then they saw terrible. It was like, well, it literally that. So, and I think AI has also changed the buy versus build equation in terms of, it’s not really about can we build it, it’s about do we have time to build it?
И тут один из сооснователей Cursor — Arvid — написал. Команда Cursor — они все как контендеры IOI. Общаются буллет-поинтами и фактами. Потрясающая переписка: вот наш QPS, вот сколько платим, вот куда идём. Мы просто переписывались буллет-поинтами. Я пытался созвониться несколько раз, но они были на пике поиска PMF — конец 2023.
I think they like, I think they felt like, okay, if this is a team that can do that and they, they feel enough like an extension of our team, well then we can go a lot faster, which would be very, very good for them. And I mean, they put us through the, through the test, right? Like we had some very, very long nights to to, to do that POC.
И однажды Sualeh пишет мне в пять... Нет, в 4 утра по Тихоокеанскому: «Ты можешь сейчас созвониться?» Я на Восточном побережье, было 7 утра. Ответил: да, конечно. Начали говорить, и что-то... Тогда я ничего не знал о продажах.
And they were really our biggest, our second big customer off the cursor, which also was a lot of late nights. Right.
Но что-то подтолкнуло меня: я должен поехать к этой команде. Что-то здесь есть. Полетел в Сан-Франциско, пришёл к ним в офис, и как я помню — когда я пришёл, у них лежал Postgres. Sualeh вам это рассказывал? Нет. Ок. Postgres лежал, и они были этим заняты.
swyx: Yeah. That, I mean, should we go into that story? The, the, the sort of Chris’s story, like a lot, um, they credit you a lot for. Working very closely with them. So I just wanna hear, I’ve heard this, uh, story from Sole’s point of view, but like, I’m curious what, what it looks like from your side.
Я пытался как-то помочь. Знал немного о базах данных — вернувшись к настройке autovacuum, я такой: «Думаю, вам нужно настроить autovacuum.» Потом вечером обсуждали: как бы выглядело сотрудничество с нами?
Simon Hørup Eskildsen: I actually haven’t heard it from Sole’s point of view, so maybe you can now cross reference it. The way that I remember it was that, um, the day after we launched, which was just, you know, I’d worked the whole summer on, on the first version. Justine wasn’t part of it yet. ‘cause I just, I didn’t tell anyone that summer that I was working on this.
И я просто сказал: мы — всё, полностью. Сделаем всё, что скажете. Они мигрировали всё за неделю-две, и мы снизили их затраты на 95% — думаю, это в целом починило их экономику в расчёте на пользователя. И решило кучу других проблем. Мы были... Justine — вот тогда я попросил её стать сооснователем, она была лучшим инженером, с которым я работал в Shopify.
I was just locked in on building it because it’s very easy otherwise to confuse talking about something to actually doing it. And so I was just like, I’m not gonna do that. I’m just gonna do the thing. I launched it and at this point turbo puffer is like a rust binary running on a single eight core machine in a T Marks instance.
Она жила в двух кварталах, и мы просто: ладно, давай сделаем. И сделали. Помогли им мигрировать и следующие месяц-два просто пахали, чтобы ни разу не стать проблемой. Вот такая история с Cursor.
And me deploying it was like looking at the request log and then like command seeing it or like control seeing it to just like, okay, there’s no request. Let’s upgrade the binary. Like it was like literally the, the, the, the scrappiest thing. You could imagine it was on purpose because just like at Shopify, we did that all the time.
swyx: А код — это другой тип нагрузки, чем обычный текст? Это просто текст — то же самое?
Like, we like move, like we ran things in tux all the time to begin with. Before something had like, at least the inkling of PMF, it was like, okay, is anyone gonna hear about this? Um, and one of the cursor co-founders Arvid reached out and he just, you know, the, the cursor team are like all I-O-I-I-M-O like, um, contenders, right?
Что-то отличается?
So they just speak in bullet points and, and facts. It was like this amazing email exchange just of, this is how many QPS we have, this is what we’re paying, this is where we’re going, blah, blah, blah. And so we’re just conversing in bullet points. And I tried to get a call with them a few times, but they were, so, they were like really writing the PMF bowl here, just like late 2023.
Simon Hørup Eskildsen: Нагрузка Cursor — они эмбеддят всю кодовую базу. Разбивают на чанки, как считают нужным. У них своя модель эмбеддинга, об этом они рассказывали публично. И по их eval'ам...
And one time Swally emails me at like five. What was it like 4:00 AM Pacific time saying like, Hey, are you open for a call now? And I’m on the East coast and I, it was like 7:00 AM I was like, yeah, great, sure, whatever. Um, and we just started talking and something. Then I didn’t know anything about sales.
Есть один eval, где получается 25% улучшение на конкретной нагрузке. У них куча постов об этом. Лучше всего работает на больших кодовых базах. Они обучили собственную модель эмбеддинга. Если вы используете агент Cursor — он делает поиски.
It was something that just comp compelled me. I have to go see this team. Like, there’s something here. So I, I went to San Francisco and I went to their office and the way that I remember it is that Postgres was down when I showed up at the office. Did SW tell you this? No. Okay. So Postgres was down and so it’s like they were distracting with that.
Они также публично рассказывали, что пост-обучили модель для хорошего семантического поиска. Так что отлично находит код, похожий на данный, или код, который делает что-то конкретное. Для таких запросов они дополнительно используют grep.
And I was trying my best to see if I could, if I could help in any way. Like I knew a little bit about databases back to tuning, auto vacuum. It was like, I think you have to tune out a vacuum. Um, and so we, we talked about that and then, um, that evening just talked about like what would it look like, what would it look like to work with us?
swyx: Да.
And I just said. Look like we’re all in, like we will just do what we’ll do whatever, whatever you tell us, right? They migrated everything over the next like week or two, and we reduced their cost by 95%, which I think like kind of fixed their per user economics. Um, and it solved a lot of other things. And we were just, Justine, this is also when I asked Justine to come on as my co-founder, she was the best engineer, um, that I ever worked with at Shopify.
Simon Hørup Eskildsen: Конечно.
She lived two blocks away and we were just, okay, we’re just gonna get this done. Um, and we did, and so we helped them migrate and we just worked like hell over the next like month or two to make sure that we were never an issue. And that was, that was the cursor story. Yeah.
swyx: Большая тема для обсуждения — мол, RAG мёртв, потому что grep, ну знаете...
swyx: And, and is code a different workload than normal text?
Simon Hørup Eskildsen: Я просто вижу огромный спрос от компаний-разработчиков на поиск.
I, I don’t know. Is is it just text? Is it the same thing?
swyx: Поиск повсюду. Да.
Simon Hørup Eskildsen: Yeah, so cursor’s workload is basically, they, um, they will embed the entire code base, right? So they, they will like chunk it up in whatever they would, they do. They have their own embedding model, um, which they’ve been public about. Um, and they find that on, on, on their evals.
Simon Hørup Eskildsen: Мы видим спрос. И я предпочитаю кейс-стади, а не размышлять, куда всё идёт, как макроэкономист от ИИ — это оказалось гигантской тратой времени, потому что никто не может предсказать ничего из этого.
It. There’s one of their evals where it’s like a 25% improvement on a very particular workload. They have a bunch of blog posts about it. Um, I think it works best on larger code basis, but they’ve trained their own embedding model to do this. Um, and so you’ll see it if you use the cursor agent, it will do searches.
Так что я просто коллекционирую кейс-стади. Cursor отлично рассказывает о том, что делает, и надеюсь, другие лаборатории кодинга, использующие Turbopuffer, сделают то же. Но поиск действительно даёт разницу на определённых запросах. Мы также умеем текстовый поиск и regex. Но ещё хочу сказать: система безопасности Cursor в работе с Turbopuffer исключительна. У них своя модель эмбеддинга, которую очень сложно реверс-инжинирить. Они обфусцируют пути к файлам.
And they’ve also been public around, um, how they’ve, I think they post trained their model to be very good at semantic search as well. Um, and that’s, that’s how they use it. And so it’s very good at, like, can you find me on the code that’s similar to this, or code that does this? And just in, in this queries, they also use GR to supplement it.
По данным в Turbopuffer очень сложно что-то узнать о кодовой базе. Плюс для своих клиентов они шифруют данные собственными ключами в бакете Turbopuffer. Это реально очень хорошо спроектировано.
swyx: Yeah.
swyx: Это дополнительные меры, которые они предприняли для работы с вами, потому что вы — не часть Cursor.
Simon Hørup Eskildsen: Um, of course
Именно. Это просто лучшая практика при работе с любой базой данных, не только с вами. Понятно. Для меня вывод такой: все нагрузки — гибридные. Хочется и семантику, и текст, и regex, и SQL.
swyx: it’s been a big topic of discussion like, is rag dead because gr you know,
Не знаю... Но глупо делать ставку только на один тип запросов.
Simon Hørup Eskildsen: and I mean like, I just, we, we see lots of demand from the coding company to ethics
Simon Hørup Eskildsen: Мне очень нравится, как Sualeh из Cursor об этом говорит. Я сейчас, наверное, переврю, и знаете — я специалист по масштабированию баз данных, не по обучению моделей. Знаю только то, что говорит интернет и то, что...
swyx: search in every part. Yes.
Он описывает это как кэширование вычислений. У вас есть точка во времени, где вы смотрите на определённый контекст, сфокусированы на определённом фрагменте, и говорите: это слой нейросети в этот момент. Кажется, фундаментально полезно кэшировать вычисления таким образом.
Simon Hørup Eskildsen: Uh, we, we, we see demand. And so, I mean, I’m. I like case studies. I don’t like, like just doing like thought pieces on this is where it’s going.
Как будет меняться ценность этого со временем — не знаю, но похоже, что ценность большая.
And like trying to be all macroeconomic about ai, that’s has turned out to be a giant waste of time because no one can really predict any of this. So I just collect case studies and I mean, cursor has done a great job talking about what they’re doing and I hope some of the other coding labs that use Turbo Puffer will do the same.
Alessio: Расскажите немного об эволюции нагрузки. Ещё два года назад поиск — это был один запрос в начале обработки LLM, чтобы собрать контекст. Теперь есть агентный поиск — как хотите назовите, — где модель одновременно пишет и меняет код, и потом снова ищет.
Um, but it does seem to make a difference for particular queries. Um, I mean we can also do text, we can also do RegX, but I should also say that cursors like security posture into Tur Puffer is exceptional, right? They have their own embedding model, which makes it very difficult to reverse engineer. They obfuscate the file paths.
Какие новые типы нагрузок или изменения в архитектуре вам пришлось сделать?
They like you. It’s very difficult to learn anything about a code base by looking at it. And the other thing they do too is that for their customers, they encrypt it with their encryption keys in turbo puffer’s bucket. Um, so it’s, it’s, it’s really, really well designed.
Simon Hørup Eskildsen: Вы правы. Когда я думаю о RAG, я представляю: вот окно контекста в 8 000 токенов, и нужно использовать его по максимуму. Поиск был способом это сделать. Теперь всё движется к тому, чтобы просто дать агенту делать своё дело.
swyx: And so this is like extra stuff they did to work with you because you are not part of Cursor.
Возвращаясь к тому, о чём говорили: LLM отлично рассуждает с данными, а мы — просто вызов инструмента. И всё чаще мы видим, что наши клиенты именно так нас используют. Сейчас от клиентов растёт спрос на высокий параллелизм. Notion делает невероятное количество запросов за каждый раунд. И когда я пользуюсь агентом Cursor, тоже вижу больше параллелизма, чем когда-либо.
Exactly like, and this is just best practice when working in any database, not just you guys. Okay. Yeah, that makes sense. Yeah. I think for me, like the, the, the learning is kind of like you, like all workloads are hybrid. Like, you know, uh, like you, you want the semantic, you want the text, you want the RegX, you want sql.
Похоже на то, как мы проектировали базу для максимального параллелизма в каждом раунде — агенты делают то же самое. Это новое. Означает огромное количество запросов одновременно к набору данных, пока он тёплый, за минимальное число раундов.
I dunno. Um, but like, it’s silly to like be all in on like one particularly query pattern.
swyx: Можно уточнить?
Simon Hørup Eskildsen: I think, like I really like the way that, um, um, that swally at cursor talks about it, which is, um, I’m gonna butcher it here. Um, and you know, I’m a, I’m a database scalability person. I’m not a, I, I dunno anything about training models other than, um, what the internet tells me and what.
Simon Hørup Eskildsen: Да.
The way he describes is that this is just like cash compute, right? It’s like you have a point in time where you’re looking at some particular context and focused on some chunk and you say, this is the layer of the neural net at this point in time. That seems fundamentally really useful to do cash compute like that.
swyx: Это батчинг нескольких пользователей или один пользователь генерирует множество...
And, um, how the value of that will change over time. I’m, I’m not sure, but there seems to be a lot of value in that.
Simon Hørup Eskildsen: Один пользователь, один агент генерирует множество запросов.
Alessio: Maybe talk a bit about the evolution of the workload, because even like search, like maybe two years ago it was like one search at the start of like an LLM query to build the context. Now you have a gentech search, however you wanna call it, where like the model is both writing and changing the code and it’s searching it again later.
swyx: Параллельный поиск по куче вещей.
Yeah. What are maybe some of the new types of workloads or like changes you’ve had to make to your architecture for it?
Simon Hørup Eskildsen: Именно.
Simon Hørup Eskildsen: I think you’re right. When I think of rag, I think of, Hey, there’s an 8,000 token, uh, context window and you better make it count. Um, and search was a way to do that now. Everything is moving towards the, just let the agent do its thing.
swyx: Да-да. Клиника тоже так делала для быстрого контекста — восемь параллельных запросов.
Right? And so back to the thing before, right? The LLM is very good at reasoning with the data, and so we’re just the tool call, right? And that’s increasingly what we see our customers doing. Um, what we’re seeing more demand from, from our customers now is to do a lot of concurrency, right? Like Notion does a ridiculous amount of queries in every round trip just because they can’t.
Simon Hørup Eskildsen: Да.
And I’m also now, when I use the cursor agent, I also see them doing more concurrency than I’ve ever seen before. So a bit similar to how we designed a database to drive as much concurrency in every round trip as possible. That’s also what the agents are doing. So that’s new. It means just an enormous amount of queries all at once to the dataset while it’s warm in as few turns as possible.
swyx: И интересная проблема: как обеспечить достаточное разнообразие, чтобы не делать один и тот же запрос восемь раз?
swyx: Can I clarify one thing on that?
Simon Hørup Eskildsen: Думаю, гибридность здесь тоже помогает — это совершенно другой способ поиска, ещё одна ось разнообразия.
Simon Hørup Eskildsen: Yes.
Это большое изменение. Раньше был один вызов, потом LLM несколько секунд генерирует ответ. Теперь мы видим огромное количество запросов. Мы снизили цены на запросы. Наверное, я впервые об этом говорю публично — цены на запросы снижены в пять раз.
swyx: Is it, are they batching multiple users or one user is driving multiple,
И, вероятно, мы снизим их ещё, чтобы соответствовать нагрузкам с очень большим количеством запросов. Это одно изменение. Соотношение записей к чтениям по-прежнему высокое, но мы начинаем видеть сдвиг, если люди реально используют этот паттерн.
Simon Hørup Eskildsen: one user driving multiple, one agent driving.
Alessio: Давайте поговорим о ценообразовании. Традиционно база данных берёт за хранение. Но теперь генерация токенов стоит так дорого, что реальная ценность хорошего поискового запроса гораздо выше — экономишь инференс дальше по цепочке.
swyx: It’s parallel searching a bunch of things.
Как вы это структурируете? И что люди готовы принять с другой стороны?
Simon Hørup Eskildsen: Exactly.
Simon Hørup Eskildsen: Ценообразование Turbopuffer в начале было очень простым. До Turbopuffer поисковые движки предлагали серверную модель: вот VM, вот почасовая стоимость.
swyx: Yeah. Yeah, exactly. So yeah, the clinician also did, did this for the fast context thing, like eight parallel at once.
А я просто сел с листом бумаги и сказал: если бы Turbopuffer был реально хорош — вот сколько бы это примерно стоило, с небольшой маржой. Так появились первые цены. Это было вайб-ценообразование.
Simon Hørup Eskildsen: Yes.
И я ошибся. Ну, не совсем ошибся, но Turbopuffer не работал на первопринципных ценах. Когда Cursor пришёл на Turbopuffer... Я не знал ни одного венчурного инвестора. Не знал ничего о привлечении инвестиций.
swyx: And, and like an interesting problem is, well, how do you make sure you have enough diversity so you’re not making the the same request eight times?
Просто видел, что мой счёт GCP намного выше, чем счёт Cursor. Так что мы с Justine просто оптимизировали. К радости теперешних инвесторов — теперь мы прибыльные, именно потому что в начале было такое давление на цены. Мы работали с моей кредитки, потратили десятки тысяч долларов на вычисления, юристов, регистрацию компании — потому что мы просто не знали.
Simon Hørup Eskildsen: And I think like that’s probably also where the hybrid comes in, where. That’s another way to diversify. It’s a completely different way to, to do the search.
Если ты живёшь в Сан-Франциско, ты просто знаешь — идёшь и поднимаешь пре-сид раунд. А я на тот момент даже не слышал слова «пре-сид».
That’s a big change, right? So before it was really just like one call and then, you know, the LLM took however many seconds to return, but now we just see an enormous amount of queries. So the, um, we just see more queries. So we’ve like tried to reduce query, we’ve reduced query pricing. Um, this is probably the first time actually I’m saying that, but the query pricing is being reduced, like five x.
swyx: Когда у вас был Cursor и Notion — у вас не было финансирования?
Um, and we’ll probably try to reduce it even more to accommodate some of these workloads of just doing very large amounts of queries. Um, that’s one thing that’s changed. I think the right, the right ratio is still very high, right? Like there’s still a, an enormous amount of rights per read, but we’re starting probably to see that change if people really lean into this pattern.
Simon Hørup Eskildsen: С Cursor — не было. Да. К моменту Notion — Lachy уже был с нами.
Alessio: Can we talk a little bit about the pricing? I’m curious, uh, because traditionally a database would charge on storage, but now you have the token generation that is so expensive, where like the actual. Value of like a good search query is like much higher because they’re like saving inference time down the line.
Так что мы действительно сделали вайб-ценообразование на 100% из первых принципов, но реально система ещё не работала на первопринципном уровне. Так что мы делали всё возможное, чтобы хоть 5% маржи получить. Я не особо паниковал, потому что счёт Cursor тоже рос — они росли.
How do you structure that as like, what are people receptive to on the other side too?
И мой долг и кредитный лимит... Я реально звонил в банк: мне нужен больший кредитный лимит! В общем, так было. Ценообразование — хранение, запись и запросы. Текущие цены — по сути те первые, заклеенные скотчем и слюнями, с попыткой приблизиться к марже на физическом железе.
Simon Hørup Eskildsen: Yeah. I, the, the turbo puffer pricing in the beginning was just very simple. The pricing on these on for search engines before Turbo Puffer was very server full, right? It was like, here’s the vm, here’s the per hour cost, right?
В этом году вы увидите всё больше изменений цен от нас.
Great. And I just sat down with like a piece of paper and said like, if Turbo Puffer was like really good, this is probably what it would cost with a little bit of margin. And that was the first pricing of Turbo Puffer. And I just like sat down and I was like, okay, like this is like probably the storage amp, but whenever on a piece of paper I, it was vibe pricing.
swyx: А насколько важен VPC-пиринг — ведь в AWS берут за исходящий трафик и всё такое.
It was very vibe price, and I got it wrong. Oh. Um, well I didn’t get it wrong, but like Turbo Puffer wasn’t at the first principle pricing, right? So when Cursor came on Turbo Puffer, it was like. Like, I didn’t know any VCs. I didn’t know, like I was just like, I don’t know, I didn’t know anything about raising money or anything like that.
Simon Hørup Eskildsen: Мы, наверное, специально это не выделяем. У нас есть энтерпрайз-план с базовой платой, потому что мы ещё не успели продумать SKU-ценообразование для всего.
I just saw that my GCP bill was, was high, was a lot higher than the cursor bill. So Justine and I was just like, well, we have to optimize it. Um, and I mean, to the chagrin now of, of it, of, of the VCs, it now means that we’re profitable because we’ve had so much pricing pressure in the beginning. Because it was running on my credit card and Justine and I had spent like, like tens of thousands of dollars on like compute bills and like spinning off the company and like very like, like bad Canadian lawyers and like things like to like get all of this done because we just like, we didn’t know.
Но вообще Turbopuffer можно использовать как SaaS — так делает Cursor. Можно в однотенантном кластере — только для вас, так делает Notion. И можно в BYOC — всё внутри VPC клиента, так, например, делает Anthropic.
Right. If you’re like steeped in San Francisco, you’re just like, you just know. Okay. Like you go out, raise a pre-seed round. I, I never heard a word pre-seed at this point in time.
swyx: Похоже, это лучшая вакансия CRO — прийти и помочь вам с этим.
swyx: When you had Cursor, you had Notion you, you had no funding.
Simon Hørup Eskildsen: Ну...
Simon Hørup Eskildsen: Um, with Cursor we had no funding. Yeah. Um, by the time we had Notion Locke was, Locke was here.
swyx: Помочь вам.
Yeah. So it was really just, we vibe priced it 100% from first Principles, but it wasn’t, it, it was not performing at first principles, so we just did everything we could to optimize it in the beginning for that, so that at least we could have like a 5% margin or something. So I wasn’t freaking out because Cursor’s bill was also going like this as they were growing.
Simon Hørup Eskildsen: У Turbopuffer, не знаю какой по счёту — но примерно двенадцатым наймом был штатный CFO. У многих компаний, слышу, сотня сотрудников и нет CFO. С CFO всё как настоящий бизнес. Знаете...
And so my liability and my credit limit was like actively like calling my bank. It was like, I need a bigger credit. Like it was, yeah. Anyway, that was the beginning. Yeah. But the pricing was, yeah, like storage rights and query. Right. And the, the pricing we have today is basically just that pricing with duct tape and spit to try to approach like, you know, like a, as a margin on the physical underlying hardware.
swyx: Как у взрослого бизнеса.
And we’re doing this year, you’re gonna see more and more pricing changes from us. Yeah.
Simon Hørup Eskildsen: Именно. Money Mike — он просто управляет финансами и кучей бизнес-вопросов. Он пришёл и разобрался с операционной стороной бизнеса.
swyx: And like is how much does stuff like VVC peering matter because you’re working in AWS land where egress is charged and all that, you know.
COO-CFO — что-то среднее.
Simon Hørup Eskildsen: We probably don’t like, we have like an enterprise plan that just has like a base fee because we haven’t had time to figure out SKU pricing for all of this.
swyx: Раз уж заговорили о Lachy — мне любопытно, я встречал его, он явно отличный инвестор, теперь ещё и в Physical Intelligence. Я бы назвал его универсальным супер-ангелом — инвестирует во всё. И я всегда думаю: что привлекательнее — фокусироваться на DevTools, на базах данных, типа «я десять лет инвестирую в базы данных», или быть как Lachy, который может познакомить тебя со всеми нужными клиентами?
Um, but I mean, yeah, you can run turbo puffer either in SaaS, right? That’s what Cursor does. You can run it in a single tenant cluster. So it’s just you. That’s what Notion does. And then you can run it in, in, in BYOC where everything is inside the customer’s VPC, that’s what an for example, philanthropic does.
Simon Hørup Eskildsen: Отличный вопрос. Никто раньше не спрашивал. Почему Lachy? Потому что... Когда мы привлекали инвестиции, мы были немного в стрессе — один из конкурентов только что запустил что-то очень похожее на Turbopuffer.
swyx: What I’m hearing is that this is probably the best CRO job for somebody who can come in and,
Кто-то тогда дал мне совет: выбери человека, которому ты можешь просто позвонить без подготовки и быть полностью честным. И я — думаю, публично этого не говорил — просто позвонил Lachy и сказал: слушай, если к концу года не будет PMF, мы просто вернём тебе все деньги.
Simon Hørup Eskildsen: I mean,
Просто мы с Justine не хотим работать над этим, если оно по-настоящему не работает. Хотим дать этому лучший шанс в этом году — пойдём ва-банк. Наймём людей. И будем честны со всеми. Когда я не знаю правил игры, я просто играю с открытыми картами.
swyx: help you with this.
Lachy оказался единственным, кого это не напугало. Он сказал: я никогда не слышал, чтобы кто-то такое говорил. Я тогда даже не знал, что такое сид- или пре-сид-раунд. Просто был с ним максимально честен. Спросил: Lachy, ты когда-нибудь инвестировал в компанию баз данных?
Simon Hørup Eskildsen: Um, like Turbo Puffer hired, like, I don’t know what, what number this was, but we had a full-time CFO as like the 12th hire or something at Turbo Puffer, um, I think I hear are a lot of comp.
Он просто сказал: нет. И я подумал: я идиот? Но что-то меня к нему притянуло. Он невероятно искренний, честный — я чувствовал, что могу говорить абсолютно открыто. Это было идеальное совпадение тогда — и, честно говоря, остаётся таковым.
I don’t know how they do it. Like they have a hundred employees and not a CFO. It’s like having a CFO is like a running
Он просто сказал: ладно, отлично. Это самое честное и безумное, что мне когда-либо говорили. Но именно поэтому...
swyx: business man. Like, you know,
swyx: Что в этом безумного? Мол, конкурент запустился, может не сработать?
Simon Hørup Eskildsen: it’s so good. Yeah, like money Mike, like he just, you know, just handles the money and a lot of the business stuff and so he came in and just hopped with a lot of the operational side of the business.
Simon Hørup Eskildsen: Скорее просто: если не сработает — закрою лавочку к концу года.
So like C-O-O-C-F-O, like somewhere in between.
Не знаю, может, это нормально. Он сказал, что необычно. Не знаю. Вот почему мы выбрали его, и он был невероятен. Другие, с кем мы говорили, были экспертами по базам данных — знали всё. А Lachy — нет. И это оказалось фантастическим преимуществом.
swyx: Just as quick mention of Lucky, just ‘cause I’m curious, I’ve met Lock and like, he’s obviously a very good investor and now on physical intelligence, um, I call it generalist super angel, right? He invests in everything. Um, and I always wonder like, you know, is there something appealing about focusing on developer tooling, focusing on databases, going like, I’ve invested for 10 years in databases versus being like a lock where he can maybe like connect you to all the customers that you need.
Мы с Justine и так знаем всё о базах данных. Люди, которых мы нанимаем — тоже. Нам нужен был кто-то, кто не знает о базах данных, не притворяется, что знает, и просто хочет помочь с кандидатами и клиентами. И он помог. У меня есть список инвесторов, с которыми у меня отношения, и Lachy — абсолютный лидер по количеству подпунктов того, что можно приписать ему.
Simon Hørup Eskildsen: This is an excellent question. No, no one’s asked me this. Um, why lockey? Because. There was a couple of people that we were talking to at the time and when we were raising, we were almost a little, we were like a bit distressed because one of our, one of our peers had just launched something that was very similar to Turbo Puffer.
Просто невероятно. Когда люди говорят «без эго» и «лучшее для фаундера» — даже мой юрист говорит: да, Lachy — самый приятный человек, которого вы найдёте.
And someone just gave me the advice at the time of just choose the person where you just feel like you can just pick up the phone and not prepare anything. And just be completely honest, and I don’t think I’ve said this publicly before, but I just called Lockey and was like local Lockie. Like if this doesn’t have PMF by the end of the year, like we’ll just like return all the money to you.
swyx: Ладно, это самая восторженная рекомендация, которую я когда-либо слышал.
But it’s just like, I don’t really, we, Justine and I don’t wanna work on this unless it’s really working. So we want to give it the best shot this year and like we’re really gonna go for it. We’re gonna hire a bunch of people and we’re just gonna be honest with everyone. Like when I don’t know how to play a game, I just play with open cards and.
Alessio: Он это заслуживает.
Lockey was the only person that didn’t, that didn’t freak out. He was like, I’ve never heard anyone say that before. As I said, I didn’t even know what a seed or pre-seed round was like before, probably even at this time. So I was just like very honest with him. And I asked him like, Lockie, have you ever have, have you ever invested in database company?
Он очень особенный.
He was just like, no. And at the time I was like, am I dumb? Like, but I think there was something that just like really drew me to Lockie. He is so authentic, so honest, like, and there was something just like, I just felt like I could just play like, just say everything openly. And that was, that was, I think that that was like a perfect match at the time, and, and, and honestly still is.
swyx: Да. Да-да. Ладно, потрясающе.
He was just like, okay, that’s great. This is like the most honest, ridiculous thing I’ve ever heard anyone say to me. But like that, like that, why
Alessio: Раз уж упомянули кандидатов — давайте поговорим о построении команды. Особенно в Сан-Франциско иногда кажется, что проще основать компанию, чем присоединиться к существующей. Мне любопытен ваш опыт — тем более что вы не живёте в SF постоянно и занимаетесь чем-то очень технически глубоким.
swyx: is this ridiculous? Say competitor launch, this may not work out. It was
Simon Hørup Eskildsen: Присоединиться vs. основать — я никогда не думал, что стану фаундером. Turbopuffer начался как блог-пост, потом стал проектом, а потом почти случайно превратился в компанию. И теперь это всё больше компания. Это никогда не было целью.
Simon Hørup Eskildsen: more just like. If this doesn’t work out, I’m gonna close up shop by the end of the mo the year, right?
Намерения были чистыми: просто — почему никто этого не сделал? Я хочу быть первым, кто это сделает. Некоторые фаундеры говорят: я бы никогда не смог работать на кого-то. Я так не чувствую. Просто: я хочу, чтобы это случилось. С людьми, с которыми приятно работать. И чтобы было весело. И всё это происходило очень естественно.
Like it was, I don’t know, maybe it’s common. I, I don’t know. He told me it was uncommon. I don’t know. Um, that’s why we chose him and he’d been phenomenal. The other people were talking at the, at the time were database experts. Like they, you know, knew a lot about databases and Locke didn’t, this turned out to be a phenomenal asset.
Это не было выбором «присоединиться vs. основать». Просто идея нашла меня в правильный момент.
Right. I like Justine and I know a lot about databases. The people that we hire know a lot about databases. What we needed was just someone who didn’t know a lot about databases, didn’t pretend to know a lot about databases, and just wanted to help us with candidates and customers. And he did. Yeah. And I have a list, right, of the investors that I have a relationship with, and Lockey has just performed excellent in the number of sub bullets of what we can attribute back to him.
Alessio: Ну, есть аргумент, что вам стоило бы пойти в Cursor. Как вы оценивали: собрать деньги и сделать компанию — или вот компания, которая бешено растёт, интересная техническая задача, можно просто построить это внутри Cursor, и не нужно шифровать и обфусцировать? Думали об этом?
Just absolutely incredible. And when people talk about like no ego and just the best thing for the founder, I like, I don’t think that anyone, like even my lawyer is like, yeah, Lockey is like the most friendly person you will find.
Курсор мог стать местом работы.
swyx: Okay. This is my most glow recommendation I’ve ever heard.
Simon Hørup Eskildsen: Перед тем как взять небольшой чек от Lachy, я серьёзно посмотрел на себя в зеркало: реально ли я хочу это делать?
Alessio: He deserves it.
Потому что если возьму деньги — придётся делать по-настоящему. Я думаю об этом так: нужно быть достаточно одержимым, чтобы хотеть идти до конца. И этот разговор с самим собой — вот тогда я решил: ладно, это будет частью моего жизненного пути — построить эту компанию наилучшим образом, каким только смогу.
He’s very special.
Потому что если я прошу людей присоединиться, прошу людей войти в кэп-тейбл — у меня абсолютная ответственность отдать всё. Мне кажется, не все воспринимают это так серьёзно. Может, я слишком серьёзно. Не знаю. Но это был очень осознанный момент.
swyx: Yeah. Yeah. Yeah. Okay. Amazing.
И после него стало ясно: я делаю это и отдаю всё.
Alessio: Since you mentioned candidates, maybe we can talk about team building, you know, like, especially in sf, it feels like it’s just easier to start a company than to join a company. Uh, I’m curious your experience, especially not being n SF full-time and doing something that is maybe, you know, a very low level of detail and technical detail.
Alessio: Многие не воспринимают это так серьёзно. Но...
Simon Hørup Eskildsen: Yeah. So joining versus starting, I never thought that I would be a founder. I would start with it, like Turbo Puffer started as a blog post, and then it became a project and then sort of almost accidentally became a company. And now it feels like it’s, it’s like becoming a bigger company. That was never the intention.
swyx: Давайте поговорим о вашей концепции P99-инженера. Все говорят о 10x-инженерах, кто-то предрекает инженерам безработицу — не знаю.
The intentions were very pure. It’s just like, why hasn’t anyone done this? And it’s like, I wanna be the, like, I wanna be the first person to do it. I think some founders have this, like, I could never work for anyone else. I, I really don’t feel that way. Like, it’s just like, I wanna see this happen. And I wanna see it happen with some people that I really enjoy working with and I wanna have fun doing it and this, this, this has all felt very natural on that, on that sense.
Но вы точно видите P99-инженера, и я хочу, чтобы вы об этом рассказали.
So it was never a like join versus versus versus found. It was just dis found me at the right moment.
Simon Hørup Eskildsen: P99-инженер — это термин, который мы стали использовать внутри для обсуждения кандидатов и того, какую компанию хотим строить. Как и все, мы хотим компанию с высокой плотностью талантов.
Alessio: Well I think there’s an argument for, you should have joined Cursor, right? So I’m curious like how you evaluate it. Okay, I should actually go raise money and make this a company versus like, this is like a company that is like growing like crazy.
Думаю, это уже стало банальностью. Команду Cursor я уважаю за то, что они пришли к этому из первых принципов: нам просто нужна talent-dense команда. А я видел команды, которые не были talent-dense, и видел контрфактические результаты — в большой компании такое неизбежно случается.
It’s like an interesting technical problem. I should just build it within Cursor and then they don’t have to encrypt all this stuff. They don’t have to obfuscate things. Like was that on your mind at all or
Для нас с Justine это было суперважно, и поддерживать это крайне сложно. Нам нужны были слова. Так что у меня есть документ «Traits of the P99 Engineer» — список буллет-поинтов. Я сверяюсь с ним после каждого собеседования, и на каждом разборе мы заканчиваем так:
Simon Hørup Eskildsen: before taking the, the small check from Lockie, I did have like a hard like look at myself in the mirror of like, okay, do I really want to do this?
Я говорю: «Я отклоняю этого кандидата, полностью, вне зависимости от обсуждения» — потому что хочу видеть, как люди борются за этого человека. По умолчанию — мы не нанимаем. По умолчанию — точно нет. И если все только: ну, может быть — это не тот человек.
And because if I take the money, I really have to do it right. And so the way I almost think about it’s like you kind of need to ha like you kind of need to be like fucked up enough to want to go all the way. And that was the conversation where I was like, okay, this is gonna be part of my life’s journey to build this company and do it in the best way that I possibly can’t.
swyx: Вы работаете по принципу: должен быть хотя бы один чемпион, который готов поставить карьеру на кон ради этого кандидата?
Because if I ask people to join me, ask people to get on the cap table, then I have an ultimate responsibility to give it everything. And I don’t, I think some people, it doesn’t occur to me that everyone takes it that seriously. And maybe I take it too seriously, I don’t know. But that was like a very intentional moment.
Simon Hørup Eskildsen: Карьеру на кон — может, перебор.
And so then it was very clear like, okay, I’m gonna do this and I’m gonna give it everything.
swyx: Может, стул, но...
Alessio: A lot of people don’t take it this seriously. But,
Simon Hørup Eskildsen: Ну, скажем так — кто-то должен встать с двумя кулаками и быть готовым драться за кандидата.
swyx: uh, let’s talk about, you have this concept of the P 99 engineer. Uh, people are 10 x saying, everyone’s saying, you know, uh, maybe engineers are out of a job. I don’t know.
Если хоть один человек такой — ок, давайте.
But you definitely see a P 99 engineer, and I just want you to talk about it.
swyx: Да.
Simon Hørup Eskildsen: Yeah, so the P 99 engineer was just a term that we started using internally to talk about candidates and talk about how we wanted to build the company. And you know, like everyone else is, like we want a talent dense company.
Simon Hørup Eskildsen: Не обязательно абсолютно все. Собеседования проверяют разные качества. И если кто-то выбивает мяч из парка по каждому — это довольно редко.
And I think that’s almost become trite at this point. What I credit the cursor founders a lot with is that they just arrived there from first principles of like, we just need a talent dense, um, talent dense team. And I think I’ve seen some teams that weren’t talent dense and like seemed a counterfactual run, which if you’ve run in been in a large company, you will just see that like it’s just logically will happen at a large company.
Но это реально важно. И вот в документе «Traits of the P99 Engineer» — много пунктов. Есть также черты P999-инженера и P9999-инженера. Длинный список.
Um, and so that was super important to me and Justine and it’s very difficult to maintain. And so we just needed, we needed wording for it. And so I have a document called Traits of the P 99 Engineer, and it’s a bullet point list. And I look at that list after every single interview that I do, and in every single recap that we do and every recap we end with.
swyx: Ок.
End with, um, some version of I’m gonna reject this candidate completely regardless of what the discourse was, because I wanna see people fight for this person because the default should not be, we’re gonna hire this person. The default should be, we’re definitely not hiring this person. And you know, if everyone was like, ah, maybe throw a punch, then this is not the right.
Simon Hørup Eskildsen: Дам пару примеров того, что мы ищем. P99-инженер имеет в прошлом опыт, когда он подчинил что-то своей воле — свою траекторию или что-то ещё.
swyx: Do, do you operate, like if there’s one cha there must have at least one champion who’s like, yes, I will put my career on, on, on the line for this. You know,
Момент, когда он просто заставил компьютер делать то, что нужно. У него это случалось хотя бы раз в карьере. Желательно — несколько раз.
Simon Hørup Eskildsen: I think career on the line,
swyx: Приведите пример кого-то из ваших инженеров.
swyx: maybe a chair, but
Simon Hørup Eskildsen: Приведу.
Simon Hørup Eskildsen: yeah. You know, like, um, I would say so someone needs to like, have both fists up and be like, I’d fight.
Мы выпустили штуку под названием ANN v3. Мы также работаем над v4 и v5. ANN v3 ищет по 100 миллиардам векторов с P50 около 40 миллисекунд и P99 около 200 миллисекунд. Может, кто-то ещё так делал — уверен, Google и другие. Но мы не видели такого ни у кого в публичном SaaS.
Right? Yeah. Yeah. And if one person said, then, okay, let’s do it. Right?
Это сделал Nathan — главный архитектор Turbopuffer. Он по сути подчинил себе софт: ПО не было на это способно, а он сделал его способным для конкретной нагрузки за 6–8 недель, с помощью команды. Это подчинение софта и x86 своей воле. Было невероятно наблюдать.
swyx: Yeah.
Хочется видеть такие моменты.
Simon Hørup Eskildsen: Um. It doesn’t have to be absolutely everyone. Right? And like the interviews are always the sign that you’re checking for different attributes. And if someone is like knocking it outta the park in every single attribute, that’s, that’s fairly rare.
swyx: Это разве не P999?
Um, but that’s really important. And so the traits of the P 99 engineer, there’s lots of them. There’s also the traits of the p like triple nine engineer and the quadruple nine engineer. This is like, it’s a long list.
Simon Hørup Eskildsen: Nathan, ну...
swyx: Okay.
Alessio: Это круто, но P99 — как-то мало для такого.
Simon Hørup Eskildsen: Um, I’ll give you some samples, right. Of what we, what we look for. I think that the P 99 engineer has some history of having bent, like their trajectory or something to their will.
Simon Hørup Eskildsen: Nathan — у него много девяток, да. Ладно, дальше. Ещё одна черта P99-инженера: он много времени проводит, глядя на карты.
Right? Some moment where it was just, they just, you know, made the computer do what it needed to do. There’s something like that, and it will, it will occur to have them at some point in their career. And, uh. Hopefully multiple times. Right.
Обычно это его любимый UX — просто смотреть на карты. Видели людей, которые сидят в телефоне и просто скроллят карту? Вы не смотрите на карты? Не смотрите?
swyx: Gimme an example of one of your engineers that like,
swyx: Наверное, не мой уровень. Не знаю.
Simon Hørup Eskildsen: I’ll give an eng.
Simon Hørup Eskildsen: Вы сейчас просто провалились. А поезда? Вам нравятся поезда?
Uh, so we, we, we launched this thing called A and NV three. Um, we could, we’re also, we’re working on V four and V five right now, but a and NV three can search a hundred billion vectors with a P 50 of around 40 milliseconds and a p 99 of 200 milliseconds. Um, maybe other people have done this, I’m sure Google and others have done this, but, uh, we haven’t seen anyone, um, at least not in like a public consumable SaaS that can do this.
Нравятся?
And that was an engineer, the chief architect of Turbo Puffer, Nathan, um, who more or less just bent this, the software was not capable of this and he just made it capable for a very particular workload in like a, you know, six to eight week period with the help of a lot of the team. Right. It’s been, been, there’s numerous of examples of that, like at, at turbo puff, but that’s like really bending the software and X 86 to your will.
swyx: Ну, недостаточно. Это такой, знаете... оружейный аутизм, я бы сказал.
It was incredible to watch. Um. You wanna see some moments like that?
Simon Hørup Eskildsen: Я обожаю смотреть на карты. Это мой любимый UX, просто... знаете, я люблю...
swyx: Isn’t that triple nine?
swyx: Много...
Simon Hørup Eskildsen: Um, I think Nathan, what’s called
Alessio: ...разных случайных мест.
Alessio: group nine, that was only nine. I feel like this is too high for
swyx: Типа...
Simon Hørup Eskildsen: Nathan. Nathan is, uh, Nathan is like, yeah, there’s a lot of nines. Okay. After that p So I think that’s one trait. I think another trait is that, uh, the P 99 spends a lot of time looking at maps.
Ну...
Generally it’s their preferred ux. They just love looking at maps. You ever seen someone who just like, sits on their phone and just like, scrolls around on a map? Or did you not look at maps A lot? You guys don’t look at
swyx: Знаете.
swyx: maps? I guess I’m not feeling there. I don’t know, but
Alessio: Да. Ок. Вот, пожалуйста. Только не случайных мест, а как вы именно исследуете карты?
Simon Hørup Eskildsen: you just dis What about trains?
Simon Hørup Eskildsen: Нет-нет, это шутка.
Do you like trains?
swyx: Это смех аутиста — просто одержимость чем-то и изучение до мелочей.
swyx: Uh, I mean they, not enough. Okay. This is just like weapon nice. Autism is what I call it. Like, like,
Simon Hørup Eskildsen: Откуда это пошло: я как-то прочитал интервью с золотым медалистом IOI.
Simon Hørup Eskildsen: um, I love looking at maps, like, it’s like my preferred UX and just like I, you know, I like
swyx: Угу.
swyx: lots
Simon Hørup Eskildsen: И его спросили: чем занимаешься в свободное время? Он ответил: люблю смотреть на карты.
Alessio: of, of like random places, so
Я такой: меня поняли! Я обожаю скроллить — о, Канада такая большая. Где остров Баффина? Не знаю. Люблю это. В общем, черты P99: P99 — одержим. Просто видны проявления этого. У нас на собеседованиях в Turbopuffer несколько раундов, которые проверяют именно такие вещи.
swyx: like,
Есть много других черт, но вот такие вещи мы ищем.
you
swyx: Расскажу кое-что — некоторые слушают мои DevRel-штуки. Я действительно думаю о DevRel как о картах. Рисуешь карту для людей — карта показывает, что считается общепринятыми географическими объектами, где проходят границы.
swyx: know.
Она также показывает, чего ты не делаешь. Многие DevTools-компании пытаются сказать, что умеют всё. Но давайте честно: ваши три ориентира — вот здесь, все приходят сюда, потом сюда. Рисуешь карту и маршрут через неё.
Alessio: Yes. Okay. There you go. So instead of like random places, like how do you explore the maps?
Для меня так выглядит Developer Relations. Так что да, я мыслю подобным образом.
Simon Hørup Eskildsen: No, it’s, it’s just a joke.
Simon Hørup Eskildsen: P99-инженер мыслит компромиссами. P99 очень чётко понимает: на Turbopuffer нельзя гонять высокотранзакционные нагрузки — задержка записи 100 миллисекунд.
swyx: It’s autism laugh. It’s like you are just obsessed by something and you like studying a thing.
Это явный компромисс. P99-инженер отлично формулирует компромиссы каждого решения. Что в вашем случае и есть карта.
Simon Hørup Eskildsen: The origin of this was that at some point I read an interview with some IOI gold medalist
swyx: Да-да. Мой мир. Мой мир.
swyx: Uhhuh,
Alessio: Как вы примиряете эти вещи — «подчинить компьютер своей воле» и «компромиссы»?
Simon Hørup Eskildsen: and it’s like, what do you do in your spare time? I was just like, I like looking at maps.
Иногда кажется: вот компромиссы, но P999-инженер скажет — это на самом деле не компромисс, потому что мы можем сделать то, чего никто не делал, и это будет работать.
I was like, I feel so seen. Like, I just like love, like swirling out. I was like, oh, Canada is so big. Where’s Baffin Island? I don’t know. I love it. Yeah. Um, anyway, so the traits of P 99, P 99 is obsessive, right? Like, there’s just like, you’ll, you’ll find traits of that we do an interview at, at, at, at turbo puffer or like multiple interviews that just try to screen for some of these things.
Simon Hørup Eskildsen: Я думаю о «подчинении воле» так: берёшь «математику на салфетке» — сто машин, столько-то терабайт дисков, столько-то пропускной способности.
Um, so. There’s lots of others, but these are the kinds of traits that we look for.
Считаешь как в школе: сколько QPS мы должны выжать. Похоже на моё вайб-ценообразование. А потом смотришь на реальную систему и видишь: мы отстаём в 10 раз. «Подчинение воле» — это приближение софта к первопринципной линии.
swyx: I’ll tell you, uh, some people listen for like some of my dere stuff. Uh, I do think about derel as maps. Um, you draw a map for people, uh, maps show you the, uh, what is commonly agreed to be the geographical features of what a boundary is.
P99 может даже пересечь эту линию — найти оптимизации, которых не было в первопринципных расчётах. Так что это про то, чтобы... 100 миллисекунд P99 к S3 — это когда кто-то по-настоящему высокоагентный едет в Сиэтл, находит команду S3 и говорит: как мы сделаем это за 10?
And it shows also shows you what is not doing. And I, I think a lot of like developer tools, companies try to tell you they can do everything, but like, let’s, let’s be real. Like you, your, your three landmarks are here, everyone comes here, then here, then here, and you draw a map and, and then you draw a journey through the map.
Ну, мы пока не об этом говорим, но да.
And like that. To me, that’s what developer relations looks like. So I do think about things that way.
swyx: Какое будущее у Turbopuffer?
Simon Hørup Eskildsen: I think the P 99 thinks in offs, right? The P 99 is very clear about, you know, hey, turbo puffer, you can’t run a high transaction workload on turbo puffer, right? It’s like the right latency is a hundred milliseconds.
Simon Hørup Eskildsen: Первый акт Turbopuffer — векторный поиск, только он. Второй акт — полнотекстовый поиск. Сегодня у Turbopuffer довольно продвинутый полнотекстовый движок.
That’s a clear trade off. I think the P 99 is very good at articulating the trade offs in every decision. Um. Which is exactly what the map is in your case, right?
Мы обгоняем Lucene на некоторых запросах — в частности, на очень длинных, под которые оптимизировались, потому что именно такие текстовые запросы мы видим сегодня: сгенерированные или дополненные LLM. И мы видим их на вебмасштабных датасетах — кто-то ищет длинную текстовую строку по всему Common Crawl.
swyx: Uh, yeah, yeah. My, my, my world. My world.
Мы обгоняем Lucene на некоторых из этих бенчмарков и ожидаем, что будем обгонять на всё большем количестве запросов. Это производительность и масштаб. Сейчас мы работаем над всё большим количеством фич для полнотекстового поиска — люди ожидают много функциональности.
Alessio: How, how do you reconcile some of these things when you’re saying you bend the will the computer versus like the tradeoffs?
А полнотекстовый поиск по-прежнему очень ценен. Зайдите в приложение, нажмите Cmd+K и введите «si». Эмбеддинговый поиск может решить: это что-то согласительное, потому что «sí» — это «да» по-испански.
You know, I think sometimes it’s like, well, these are the tradeoffs, but the three nines, it’s like, actually it’s not a real trade off because we can make something that nobody has ever made before and actually make it work.
Alessio: И по-итальянски тоже.
Simon Hørup Eskildsen: The way I think about the bending trajectory to your will is, um, if you sit down and do the napkin math, right, where you’re just like, okay, like if I have a hundred machines, they have this many terabytes of disc, they have this bandwidth, whatever, right?
Simon Hørup Eskildsen: А полнотекстовый поиск — это префикс, может быть, документа «все причины, по которым я ненавижу Simon».
And you sit down and you just do the like high school napkin math on this is how many qps we should be able to drive to it. Similar to how I did the vibe pricing, right? If you can sit down and do that, and then you observe the real system and you see, oh, we’re off by like 10 x bendings trajectory to your will is like just making the software get closer and closer to that first principle line.
Это совершенно другое. Такое дополнение к тому, как работает человеческий мозг, маппинг данных на пользователя — очень важно. Но это требует кучи фич. И этот функциональный грайнд — мы в нём по уши. Каждый месяц в ченджлоге всё больше фич полнотекстового поиска.
The P 99 might even be able to cross the line Right. By finding even more optimizations than, than, than from first principle. So bending the software to your rail is about that, right? Like a hundred millisecond P 99 to um, to S3. I mean now you’re talking like someone really high agency that like goes to Seattle finds CS three team and it’s like, how are we gonna make this 10?
Мы видим, что люди переходят с традиционных поисковых движков на Turbopuffer. Это большой фокус на этот год. Другой фокус — масштаб. Мы видим всё больше компаний, которые хотят искать по датасетам уровня Common Crawl.
You know, like it’s that, that’s not quite what we talk about. Right. But yeah.
Как внутренним, так и внешним — запросы вроде 100 миллиардов векторов или документов одновременно. Это непросто, и мы хотим сделать дешевле и быстрее. Мы выпустили ANN v3, о котором говорили. Работаем над ANN v4 и уже спланировали ANN v5. А для полнотекстового поиска — работаем над кучей фич, что-то вроде FTS v3, но всё будет выходить инкрементально.
swyx: What’s the future? Turbo Puffer.
Это крупные вещи. А ещё — наш дашборд. Кто-нибудь из вас заходил в дашборд Turbopuffer? Там почти ничего нет. Выглядит так, будто фаундер два года назад сел и написал минимальный дашборд, потом следующие два года другие что-то добавляли, потом SSO и прочее для галочки.
Simon Hørup Eskildsen: Turbo Puffer started out act one of Turbo Puffer was vector search. That was all we did to begin with Act two of Turbo Puffer is. Is and was full text Search Turbo Puffer today has a fairly start of the state-of-the-art full text search engine.
Может, так и было. Но я хочу вернуть phpMyAdmin. Помните? Было же классно. Мне очень хочется этой интеграции софта и железа — между дашбордом-консолью и самой базой данных.
Um, we beat Lucine on some queries, in particular very long queries that we’ve optimized for because those are the text search queries we see today. They’re generated by LLMs or augmented by LLMs. Um, and we see them on Webscale datasets, right? Like someone searching for a very long texturing on all of Common Crawl.
Много чего ещё выйдет в ближайшие пару лет. Мы поговорили о ценах и прочем. Но вот главные направления сейчас.
We beat Lucine on some of those benchmarks and we expect to continue to beat Lucine on more and more queries. Um, that’s the performance and scale. Turbo Puffer does phenomenally now at full text search performance at scale. What we work on now is more and more features for full tech search. People expect a lot of features with full tech search.
swyx: Вы говорите об эпохах Turbopuffer. Я должен спросить: да, есть то, над чем вы работаете в этом году, но наверняка в вашей голове уже следующая фаза.
And full tech search is still very valuable, right? If you go in and you press Command K and you search for si. Embedding based search might be like, oh, this is something agreeable. ‘cause that seat that’s yes, in Spanish, right,
Simon Hørup Eskildsen: Третий акт.
Alessio: an Italian too,
swyx: Да. Четвёртый. Да.
Simon Hørup Eskildsen: but in full night search. That’s the prefix of maybe a document of like, you know, these are all the reasons I hate Simon, right?
Simon Hørup Eskildsen: Пятый акт.
Like this, this is like, that’s a completely different. So that augmentation to like how the human brain works and mapping like data to user is very important, but it’s a lot of features. That feature grind is what we’re firmly on and you will see us just adding to the change log every month, just more and more full tech search features.
swyx: Что скажете о кандидатах — не обязательно определяться. Но вы-то знаете.
Um, so we’re like fully compatible and we see we’re seeing people move from some of the traditional search engine onto Turbo Puffer, um, for that. That’s a big focus of Turbo Puffer this year. The other, the other focus of, of Turbo Puffer this year is just on scale. We’re seeing more and more companies that wanna search basically common crawl level types of data sets.
Simon Hørup Eskildsen: Скажу так: если хочешь построить большую компанию баз данных — со временем нужно реализовать практически каждый план запросов. Потому что когда данные в базе, со временем ожидаешь не только поиск, но и «хочу агрегировать эту колонку, хочу сджойнить эти данные» — всё.
Um, both internally a companies and externally at, at a time like Cory, like a hundred billion vectors or a hundred billion documents at once. This is tricky and we wanna make it cheaper and we wanna make it faster. Um, that’s a big focus for Turbo Puffer this year. That’s, you know, we just released a NNV three, which we talked about before.
Но когда ты стартап, единственный ров — это фокус. Нужно выстраивать последовательность и не увлекаться. Некоторые конкуренты увлеклись и перенапряглись. И я постоянно говорю команде — мы сегодня утром завтракали с CTO и главным архитектором, обсуждали: о чём мы скорее всего пожалеем в конце года — что пытались сделать слишком много.
We are working on A-N-N-V-V four and we’re also have planned when we’re gonna do with a and NV five. Right. And then on full Tech search, we’re working on a lot of these features. We’ll be like FTSV three, but it will all roll out incrementally. Um, those are some of the really big features. And then the other thing is, um, our dashboard.
Кандидаты на третий акт — возможно, простые OLAP-запросы. Мы видим людей, которые хотят делать трейсы, логирование. Простые кейсы. Может, какие-то временные ряды.
Have any of you ever locked into the Turbo Hover dashboard? It’s not very much there. It almost looks like if, um, a founder two years ago just sat down and wrote enough dashboard that there was at least something there, and then other people just sort of added stuff on for the next two, like the, the following two years, and then at some point SSO and other things to just catch up.
Разные вещи можно делать с Turbopuffer. Но сейчас — если вы пытаетесь использовать Turbopuffer не для поиска, скорее всего, не стоит. Хотя бывает — в какой-то момент Cursor перенёс 20 терабайт данных из Postgres в Turbopuffer, потому что оно работает, и для этих конкретных планов запросов — хорошо.
And it may or may not be have what happened, but adding like, I want PHP my admin back. Like, do you, do you guys remember? Like, it was, it was so good. Right? And I think that that like software hardware integration between the, the, the dashboard of the console of the database and the database itself. Um, I’m, I’m really excited for that.
Они перенесли всё, чтобы отложить шардирование. Мы ищем такие паттерны у клиентов — что может стать будущим актом Turbopuffer, прежде чем полноценно удвоиться на этом. Но сегодня Turbopuffer — для тех, кому поиск критически важен.
There’s lots of other things, um, that are gonna come out in the next two. Like we talked a bit about some, some pricing and, and things like that, but those would be some of the big hitters. Right Now
Потом мы, возможно, добавим много ускоренных запросов к этому, но это не должно быть главной причиной приходить к нам на данный момент.
swyx: you talk about eras of like turbo profile. I, I just, I have to ask like, yes, there’s the stuff that you’re working on this year, but like I’m sure in your mind you already have the next phase that you’re already thinking about
swyx: Вы не упомянули одну вещь, которую я ожидал — графовые запросы. Графовая база данных. Вы можете это тривиально повторить на том, что уже есть?
Simon Hørup Eskildsen: Act three.
Simon Hørup Eskildsen: Мы видим, что некоторые люди так делают.
swyx: Yes. Act four. Yeah.
swyx: Потому что у вас параллельные запросы и... это, по сути, то же самое.
Simon Hørup Eskildsen: Act five.
Simon Hørup Eskildsen: Именно. Некоторые так делают. Под капотом — это просто KV-хранилище, а поверх мы предоставляем абстракции. Мы видим это. И наш роадмап — это база данных, которая соединяет ИИ с огромными объёмами данных. Путь к этому — делать вещи в правильном порядке, и хороший стартап — это именно про порядок.
swyx: What I say about that, the candidates, you don’t have to decide. Yeah, but you know,
Наши клиенты — P99, и они скажут нам, что им нужно дальше. Некоторые уже строят графы, и если им понадобится больше фич графовых баз — они будут стучать к нам в дверь, и мы расставим приоритеты.
Simon Hørup Eskildsen: I, I’ll just say that if you wanna build a big database company, the database over time has to implement more or less every quarry plan. Because when you have your data in a database, you expect it to over time, not just search, but also, Hey, I want to aggregate this column, I want to join this data, all of that.
swyx: Чай. Давайте про чай. Вы любезно подарили нам ваш любимый чай.
But when you’re a startup, your only moat is really just focus. You have to lay out the vaccine and you have to not get overeager. And I think we’ve seen some of our peers get very overeager and overextend themselves. And what I keep telling the team, I was just having breakfast this morning with our CTO and and chief architect, we were talking about like what we’re most likely to regret at the end of the year is having tried to do too much.
Это Yabu Keita Kamairicha из The Green Tea Shop. Верно? Расскажите о своей любви к чаю.
Um, and so Act three candidates could be, you know, a bunch of simpler ola queries, right? It could be, um, lending ourselves a little bit more into, we see some people who wanna do traces and logging and things like that. Some very simple use cases. Could be that, right? It could be maybe some time series.
Simon Hørup Eskildsen: Да, мы до записи как раз обсуждали кофеин. Особенно в поездках вроде этой, в Сан-Франциско, я потребляю много кофеина. Но этот зелёный чай — мой любимый источник.
Some people are trying to do that, right? Like, there’s lots of different things that you can do with turbo puffer, but for now, the, like, if you’re trying, trying to do not search on turbo puffers, the primary use case, you probably shouldn’t, but we see some customers that are like, oh, um, like at some point Cursor moved like 20 terabytes of Postgres data into Turbo Puffer because it’s like, it’s di it’s there, it works.
У меня Airtable с 200 чаями, которые я пробовал за последние 15 лет, и этот — мой фаворит. Есть шесть типов чая. Мне нравится зелёный, обычно предпочитаю китайский. Японский зелёный обычно не люблю. Но есть одна маленькая префектура в Японии, которая специализируется на том, чтобы делать японский чай китайским способом, и это просто великолепно.
And these particular query plants we know work well. And so they just moved it all to defer sharding. Um, so we look for patterns like that in what future acts of turban puffer are going to be before firmly doubling down on them. But we wouldn’t, if. Today, if you’re using Turbo Puffer, it should be because search is very important to you.
А ещё интересное в мире чая: этот конкретный чай можно найти в сотнях мест, но все закупают у разных семей на какой-нибудь горе, где растут кусты чайного дерева. И эта японка в Торонто из The Green Tea Shop — она нашла реально хорошую семью.
And then we might do a lot of accelerated queries to that, but that should not be the main reason to go to Turbo Puffer at this point in time.
Лучшее время для покупки — через пару месяцев, когда будет весенний урожай. Сейчас чай немного старый. Я обожаю весну ради свежего чая. Надеюсь, вам понравится. Но сейчас не сезон.
swyx: Yeah. Uh, you didn’t mention, uh, one thing I was looking for was graph type queries, like graph, database, graph, uh, queries. Can you basically trivially replicate this with what you already have?
swyx: Не в сезоне. Я даже не знал, что у чая есть сезоны.
Simon Hørup Eskildsen: We see some people doing
Это, конечно, показывает мою необразованность. Но это связано с тем же — любовь к картам, одержимость, внимание к деталям во всём, что делаешь. Отлично.
swyx: that, right? Because you have parallel queries and it’s It’s the same thing.
Alessio: Замечательно. Как мы говорили, у нас в Kernel есть мгновенный кипяток. Так что любитель чая может заходить в любое время.
Simon Hørup Eskildsen: Exactly. So we see some people doing that, right? Like at the under, like is just a kv, right? And then we expose things on top of it. So we are seeing people do that. And I think, you know, our roadmap is very much just the database that connects AI to a very large amount of data is what the path is to do that in the right order, which is what a good startup is around what is the order to do things in.
Simon Hørup Eskildsen: У меня есть набор, в котором я вожу маленький термометр — Thermoworks.
Our customers are P 99, and they will tell us what they care most about next. And so some of them are doing graphs now, and if they need more graph database features, they’ll be banking our door and we’ll prioritize accordingly.
В прошлую пятницу на демо-дне — у меня есть правило: если демо мало, оставшееся время я заполняю рассказом о чём-нибудь совершенно абсурдном, чтобы мотивировать людей реально показывать. И в тот раз я 20 минут рассказывал про свой Airtable и весь мой чайный дорожный набор, включая термометр.
swyx: Tea. Okay. Give us the tea. Uh, this, you, you, uh, you kindly gifted us your favorite tea.
Потому что приезжаешь куда-то — есть только кипятильник, нельзя получить нужную температуру. Этому чаю нужно 80 градусов, и... ладно, извините.
This is Yabu Keita Kacha, uh, from the Green Tea Shop. That’s right. Talk about your love of tea.
Alessio: У нас дома электрочайник с регулировкой температуры.
Simon Hørup Eskildsen: Yeah, we, we were just talking beforehand about, um, um, um. Caffeine, I think, um, and, uh, especially when I’m on a trip like this to San Francisco, I consume a lot of caffeine. Um, but this is my preferred, uh, preferred caffeine.
swyx: Я бы это смотрел. Вам стоит завести YouTube-канал — но не про поиск, а про чай и другие бренды.
It’s this green tea. I have an Airtable with 200 teas that I’ve tried over time, over the past, like 15 years, and this one is my favorite. Now, when you drink a tea, um, there’s different, there’s like six different types of tea. I like green tea in particular. I generally prefer Chinese green tea. And I don’t really like Japanese green tea, but this little prefecture somewhere in Japan has specialized in like, they’re like Japanese, but doing it the Chinese way and it’s just phenomenal.
Просто чай.
But then the interesting thing about the tea world is that all of the different, um, like you can find this particular tea, there’s probably, you know, hundreds of. Places that sell it, but they all go to a different family right on whatever mountain that they have. These like chameleon, ensis, bush bushes on and this woman, Japanese woman in Toronto from the Green tea shop, um, I don’t know, she’s just like, I has found a really good family.
Simon Hørup Eskildsen: Не думаю, что смог бы долго про это говорить. Но одна вещь, которую я начал делать. Вы знаете Sam Lambert из PlanetScale?
‘cause that’s the best one. The best time of years to get this is in a few months when they do the spring harvest. Uh, now it’s like kind of old. Um, it’s just like, I love the spring for the fresh tea, so I hope you enjoy it. But it’s not the right time of year.
swyx: Конечно.
swyx: It’s out of season. Yeah. I, I, I actually didn’t even know Tea has seasons.
Simon Hørup Eskildsen: Так вот...
This is unsophisticated, but I, I think it, like, it ties in with like, you know, loving maps and being obsessed and being keen on united in everything that you do. Um, yeah. But. That’s great.
swyx: Очень прямолинейный парень.
Alessio: Awesome. Well, as we were saying, we have instant hot water at Kernel. So, uh, MET lover can come by any,
Simon Hørup Eskildsen: Обожаю его. На прошлой неделе мы вышли в X Live и просто проболтали час. Думаю, повторим.
Simon Hørup Eskildsen: I I have a little ticket where I bring a, uh, where I bring like a little thermometer to like a little thermoworks thermometer.
Да. Наверное, ещё что-нибудь сделаем. Не знаю, как назовём. Может, P99 Live или P99 Pod.
Um, last Friday when we do demos, I have this thing where if there’s not enough demos, then I fill the remaining time talking about something completely ridiculous as an incentive for people to actually demo. And last night in time, I spent 20 minutes do, walking through my air table and going through my entire tea travel kit, including the, the, the temperature monitor.
swyx: P Pod.
‘cause like Yeah, you’ll show up. There’s only a boiler. You can’t get it to the right. Yeah. You know, you need this at 80 degrees, but anyway. Yeah, sorry.
Simon Hørup Eskildsen: P Pod.
Alessio: Yeah, we have a, we have electric kettle with the temperature thing at home.
swyx: Круто. Спасибо огромное за ваше время. Знаю, вам нужно бежать. Но это было здорово — вы явно очень увлечённый и харизматичный человек. Уверен, после этого подкаста к вам придут P99-инженеры.
swyx: I would watch this. You should start a company, YouTube, but it doesn’t have anything about search.
Да.
It just has and like other brands,
Simon Hørup Eskildsen: Огромное спасибо, что пригласили. Было очень приятно.
Simon Hørup Eskildsen: I don’t think I could talk, but something that I started doing. Do you, um, do you two know Sam Lambert of, of course, planet Scale? Of
Обсуждение этого выпуска
swyx: course.
Simon Hørup Eskildsen: Um,
swyx: very outspoken guy.
Simon Hørup Eskildsen: I love the guy and we just, um, we just last, like last week we just went on X live and just sat and like shut the shit for like an hour and I think we’ll probably do that again.
Yes. We’ll probably come up there. Well, I don’t know what we’ll call it. Maybe P 99 live or the P 99 pod or something like that.
swyx: Um, P pod.
Simon Hørup Eskildsen: P pod.
swyx: Uh, cool. Well thank you so much for your time. I know you have to go, uh, but this is a, a blast and you’re clearly very passionate and charismatic, so, uh, I I bet you’ll get some, uh, P nine nine engineers outta this podcast.
Yeah.
Simon Hørup Eskildsen: Thank you so much for having me. It was a pleasure.
Discussion about this episode