David Gu

575 posts

David Gu banner
David Gu

David Gu

@davidgu

conversations are the world's largest dataset. ceo @recallai

SF Katılım Ekim 2016
492 Takip Edilen3.7K Takipçiler
Guido Appenzeller
Sorry to see Granola @meetgranola going closed. They encrypted their local db, no local and no cloud API. In a world where notes are managed by agents, the app now has zero value. Any recommendations for good alternatives? What are you switching to?
English
178
11
632
335K
David Gu
David Gu@davidgu·
@cramforce You can actually scale to 30,000+ connections without a pooler. At a certain point `postman`, the single-threaded postgres process that forks new subprocesses, becomes the bottleneck We ran into that! recall.ai/blog/postgres-…
English
0
0
1
36
David Gu retweetledi
jae
jae@jaegpark·
Today, I’m excited to announce that @sentra_app has raised a $5M Seed. This round is led by a16z @speedrun and @scaletogether, with participation from @parable_vc, @ekaurghar, @PrecursorVC, @inovia, @BackwardsCapVC, and @AntigravitySF. We also have some of the best founders and operators backing us - @gokulr, @blader, Prasad Chintamaneni, @cailen, @KaitlynKnopp and more. @ashwingop @AndreyStarenky @alrey_ and I are tackling the unavoidable problem every growing company struggles with: context decay. When you're 3 founders, everyone knows everything. But scale to 50 or 100 people over a few months, and it gets hard to even know everyone's names, let alone stay in sync. People stop knowing why decisions were made. Or worse, people stop knowing what was decided at all. Context all too often stays in people's heads, never written down. At large companies, it gets very expensive. One leader told us their engineering team wasted a month building support for a feature that another team had already deprecated–nobody told them. Today, we try to prevent it with more documentation, more meetings, or more tools. But none of those really work. You drown in bureaucracy while tracking everything about what happened and nothing about why. Sentra does something that wasn't possible until now: it builds a living memory of your company as work happens. Not just what was decided, but why, what alternatives were considered, and how decisions connect across teams and time. What does that actually mean? Leaders get a weekly synthesis of where teams are drifting and what needs attention. New hires ramp in days instead of weeks because "who do I ask about X?" has an answer. Status updates and decision logs are automated–no more chasing people. Today, Sentra’s been deployed in dozens of companies all the way from Seed stage to Global Fortune 500 enterprises. Finally, a massive thank you to our early believers - @anneleeskates, @ekaurghar, Chuck Dietrich, Alex Yang, @tllshankar - to name a few, for their support and guidance from the earliest of days. If you want to see what Sentra can do for your company, book a demo below.
jae tweet media
English
147
60
799
88.9K
David Gu
David Gu@davidgu·
We are hiring! If you're interested in launching millions of instances, operating large-scale video processing clusters, and writing high-performance Rust: DM me your GitHub :)
English
1
1
3
663
David Gu
David Gu@davidgu·
We launched 18 million EC2 instances last month. 10 things you didn’t know about the EC2 API, part 2. Fact: AWS's code path for booting new EC2 instances is buggy. When you boot a lot (e.g. 10,000s) of EC2 instances you often see failures with Server.InternalError
English
1
1
3
726
David Gu
David Gu@davidgu·
We are hiring! If you're interested in operating massive clusters, and writing high-performance Rust: DM me your GitHub :)
English
1
0
5
653
David Gu
David Gu@davidgu·
10 things you didn’t know about the EC2 API, part 1. Fact: RunInstances returning a 201 with N instances does not mean you have actually been allocated N instances. Any number of those instances can fail to boot with Server.InsufficientInstanceCapacity.
English
2
2
6
701
David Gu
David Gu@davidgu·
@binsquares We don't have a blog post about this issue (yet!), but have blogged about some other cool stuff from running large scale infra We had a 1 in 36,000,000 segfault that we caught in our audio encoder :) recall.ai/blog/debugging…
English
0
0
0
27
BinBin
BinBin@binsquares·
@davidgu this thundering herd issue + investigation deserves a more in-depth tech blog!
English
1
0
1
64
David Gu
David Gu@davidgu·
we run postgres with 20k concurrent writers. at this scale, it's mandatory to deeply understand the internals of every piece of infra we ran into a performance bottleneck, where our query performance was limited by the rate that Linux could fork child processes! 🧵 👇️
David Gu tweet mediaDavid Gu tweet media
English
13
39
485
57.1K
hrushikesh
hrushikesh@Hrushikeshhhh·
@davidgu i love your posts, the technical detailing is beautiful. keep posting - im learning a lot.
English
1
0
2
42
David Gu
David Gu@davidgu·
We launch over 18 million EC2 instances per month. One thing we've learned is that cold-booting an EC2 instance is very slow, but this happens for a surprising reason. When you boot an EC2 instance from an AMI, creating a new root EBS volume is near-instantaneous. However, the reason AWS can create a 20GiB - 100GiB volume instantly is because no data is actually copied on volume creation. All blocks in the file system are lazily loaded from an S3 backing store on first read. This S3 backing mechanism is invisible to EC2 users, but results in the first read being very slow. As a VM starts up with a fresh EBS volume, every block it reads needs to be lazy loaded, which can results in 10x - 100x higher read latency!
English
3
1
5
574
Yet Another Tech Poster
Yet Another Tech Poster@YATPoaster·
@davidgu Am curious to know why you need to launch so many instances! Is it the bursty nature of meetings? 9:00 AM standup for example
English
1
0
0
37
David Gu
David Gu@davidgu·
We are hiring! If you're interested in writing Rust, running high performance infrastructure at massive scale: DM me your GitHub :)
English
5
2
8
560
David Gu
David Gu@davidgu·
Recall.ai is the API for meeting recording. We are infra for 1000’s of companies including HubSpot, ClickUp, and Rippling. In 2025 we grew 3x, raised our Series B and learned what it actually means to find strong PMF and execute. We only made it because of the help of other generous founders that offered their valuable time and advice. I want to pay this forward by opening up office hours to other founders in SF! If you are starting an infra company or even considering, I’m down to meet for coffee. Reply with “office hours” and let’s find time at the south park blue bottle
English
3
1
13
1.4K
David Gu
David Gu@davidgu·
@ozeniken it's odd to have this sort of undefined behavior in the spec, but it seems like the culprit is Safari compatibility x.com/piec_kamil/sta…
Kamil Piec@piec_kamil

@davidgu @csjh__ Yes, there's historical reason. If you look at V8's implementation (#L18" target="_blank" rel="nofollow noopener">github.com/v8/v8/blob/mai…) it says "Accept ES5 ISO 8601 date-time-strings or legacy dates compatible with Safari.". Which means that if there's undefined behaviour it's because backwards compatibility with Safari.

English
0
0
0
35
Ozeniken
Ozeniken@ozeniken·
@davidgu The spec only defines parsing iso 8601 I believe and any other input is up to the vendor
English
2
0
2
1.6K
David Gu
David Gu@davidgu·
fun javascript fact, if you pass a string numeric to the Date constructor, you get a totally crazy result new Date("0") results in Jan 1, 2000 new Date("1") results in Jan 1, 2001 (+1 year, ok....) new Date("2") results in Feb 1, 2001 (+1 month, ??????) 🧵👇
David Gu tweet media
English
12
7
214
36.8K
David Gu
David Gu@davidgu·
@ozeniken it's odd to have this sort of undefined behavior in the spec, but it seems like the culprit is Safari compatibility x.com/piec_kamil/sta…
Kamil Piec@piec_kamil

@davidgu @csjh__ Yes, there's historical reason. If you look at V8's implementation (#L18" target="_blank" rel="nofollow noopener">github.com/v8/v8/blob/mai…) it says "Accept ES5 ISO 8601 date-time-strings or legacy dates compatible with Safari.". Which means that if there's undefined behaviour it's because backwards compatibility with Safari.

English
0
0
3
1.7K
David Gu
David Gu@davidgu·
@legloriouslotus weird to have this sort of undefined behavior in the spec! x.com/piec_kamil/sta… This person actually figured out the root cause
Kamil Piec@piec_kamil

@davidgu @csjh__ Yes, there's historical reason. If you look at V8's implementation (#L18" target="_blank" rel="nofollow noopener">github.com/v8/v8/blob/mai…) it says "Accept ES5 ISO 8601 date-time-strings or legacy dates compatible with Safari.". Which means that if there's undefined behaviour it's because backwards compatibility with Safari.

English
0
0
0
324
Glorious Lotus
Glorious Lotus@legloriouslotus·
@davidgu The behavior of Date for string inputs that aren’t in a "date" format is not specificed. You can implement it however you want. According to the docs, Date("0") will return different values for Chromium/FF and Safari. No idea for Date("n") developer.mozilla.org/en-US/docs/Web…
English
1
0
2
502
David Gu
David Gu@davidgu·
@ceehex @vguria The fact that there's 6 different ways an integer can be interpreted, depending on it's size from 0-100 is the really crazy part if you did [0...100].map((v) => new Date(v.toString()), you'd get a set of dates that are dramatically different from each other in weird ways
English
0
0
0
46
c
c@ceehex·
@vguria @davidgu any normal language should prevent u from doing this
English
1
0
0
48