惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Latest news
Latest news
C
Check Point Blog
H
Help Net Security
Engineering at Meta
Engineering at Meta
Y
Y Combinator Blog
Stack Overflow Blog
Stack Overflow Blog
MyScale Blog
MyScale Blog
P
Proofpoint News Feed
Recorded Future
Recorded Future
Blog — PlanetScale
Blog — PlanetScale
T
The Blog of Author Tim Ferriss
H
Heimdal Security Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
B
Blog RSS Feed
W
WeLiveSecurity
G
Google Developers Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
P
Proofpoint News Feed
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Martin Fowler
Martin Fowler
酷 壳 – CoolShell
酷 壳 – CoolShell
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
宝玉的分享
宝玉的分享
Apple Machine Learning Research
Apple Machine Learning Research
The GitHub Blog
The GitHub Blog
C
CERT Recently Published Vulnerability Notes
aimingoo的专栏
aimingoo的专栏
D
DataBreaches.Net
PCI Perspectives
PCI Perspectives
The Register - Security
The Register - Security
阮一峰的网络日志
阮一峰的网络日志
罗磊的独立博客
H
Hacker News: Front Page
Google DeepMind News
Google DeepMind News
有赞技术团队
有赞技术团队
The Last Watchdog
The Last Watchdog
GbyAI
GbyAI
L
Lohrmann on Cybersecurity
B
Blog
NISL@THU
NISL@THU
T
The Exploit Database - CXSecurity.com
Microsoft Azure Blog
Microsoft Azure Blog
博客园_首页
N
Netflix TechBlog - Medium
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
L
LangChain Blog
J
Java Code Geeks
SecWiki News
SecWiki News
博客园 - 三生石上(FineUI控件)
P
Privacy & Cybersecurity Law Blog

Graphite blog

Introducing Code Tours: a new way to review Introducing Cursor Cloud Agents in Graphite Building the future of software development with Cursor Reimagining the PR Page: Designing for speed and focus Graphite changelog [11-20-2025] Graphite changelog [11-04-2025] Graphite changelog [10-16-2025] The future of engineering is collaborative (and already here) Meet Graphite Agent: the next evolution of AI code review Introducing frozen branches: A safer way to build on your teammates’ work Graphite changelog [09-17-2025] How we sped up code search for Graphite Chat Introducing Graphite Chat AI is writing code—here's why it also needs to review that code How I got Claude to write code I could actually ship How we built the first stack-aware merge queue (and why it matters) How we organize our monorepo to ship fast Graphite brings stacking to Tower Code review tooling: Should you build or buy? Making AI code review available to everyone Introducing: The new Graphite + Linear integration Graphite raises $52M and launches Diamond to reimagine code review for the age of AI Why AI will never replace human code review How stacked PRs unblock distributed development teams Graphite is going to Developer Week 2025 Beating the end of year code freeze How Graphite’s eng team ships code remarkably fast Why we chose Anthropic's Claude to power Graphite Reviewer AI code generation will remain fragmented How we redesigned Graphite's landing page in-house Introducing Graphite Reviewer: your AI code review companion How AI code review reduces review cycles to improve developer productivity What if you could get instant feedback on your code? The new developer toolchain Not Rocket Science - How Bors and Google’s TAP inspired modern merge queues Graphite's State of code review 2024 How Google migrated billions of lines of code from Perforce to Piper Going from 0 to 1: How to write better unit tests when there are none Speed up your merges: Parallel CI is now generally available for teams using Graphite’s merge queue Down for less than four minutes a month: how AWS deploys code BitKeeper, Linux, and licensing disputes: How Linus wrote Git in 14 days Graphite is now free for startups and open source projects Launch week wrap-up (May 2024) Reduce CI costs for Buildkite and GitHub Actions Cheaper CI & faster merging with batching How Google does code review Graphite will now automatically rebase your partially-merged stacks Multiple engineers can now seamlessly collaborate on the same stack of PRs Do you ever outgrow GitHub? From the 80's to 2024 - how CI tests were invented and optimized Graphite changelog [4/10/2024] 🎺 Graphite changelog [4/25/2024] 🐸 How Stack Overflow replaced Experts Exchange How GitHub monopolized code hosting Graphite changelog [3/27/2024] 🤝 The core principles of building a good AI feature Onboarding roulette: deleting our employee accounts daily Graphite changelog [3/13/2024] 🚁 Why Facebook doesn’t use Git How to recreate the Phabricator code review workflow Types of code reviews: Improve performance, velocity, and quality What's the best GitHub pull request merge strategy? Phabricator vs GitHub vs Graphite: How do they stack up? Improving team velocity through better pull request practices Moving fast breaks things: the importance of a staging environment Building trust as a software engineer Keeping code simple: moving fast by avoiding over-engineering What's better than GitHub pull request filters? The Graphite pull request inbox 7 Best Phabricator alternatives for PR stacking + code review [2024] Accurate eng estimations: predicting and negotiating the future Tracking and understanding GitHub PR stats: A step-by-step guide 8 pull request best practices for optimal engineering What’s next for Graphite Graphite Q1 Launch week: Stacking with the tools you love Graphite Q1 Launch week: Making stacking seamless Accelerating code review The Mom Test How to use stacked PRs to unblock your entire team Graphite Q1 launch week 2024 The practical and philosophical problems with AI code review Empirically sup code review best practices Call site attribution: how to pinpoint rogue SQL queries throttling your performance Every engineer should understand git reflog Post mortem: we took 124 seconds from you, here's 378 back Your GitHub pull request workflow is slowing everyone down Optimizing CI/CD workflows for trunk-based development Why we use AWS instead of Vercel to host our Next.js app How large pull requests slow down development 3 key lessons in application server optimization Trunk-based development: why you should stop using feature branches Git was built in 5 days Why large companies and fast-moving startups are banning merge commits How long should your CI take? Experimenting with AI code review CRA to AppRouter in 5 Steps: A case study with Graphite Graphite Changelog [10/18/2023] The comprehensive guide to writing the best PR title of all time How 10,000 Developers All Contribute to the same Repo
The technical learning curve at a startup is gentler than you might think
Nicholas Yan · 2024-05-09 · via Graphite blog

Almost three years ago to the day I left my job at (then) Facebook and started at what was then a one-year old company with five total employees: the three founders, a designer, and me.

And if I have one piece of advice for myself from those three years it’s this: the learning curve at an early-stage startup is gentler than you think.

Don’t get me wrong, I’m not claiming there’s no curve nor that it’s easy. Rather — as was the case for me — if you’ve never worked at a startup before, you may be over-estimating how much you need to learn and how quickly.

The nightmare

If I’m to be honest, before I left Facebook, the concept of joining such a small team (three engineers) was simultaneously exciting and nerve-wracking. Learning was the reason I left Facebook for a startup; I wanted more of it, faster. But on the other hand, I knew this would involve intentionally getting in over my head.

At the time I had this technical nightmare: a problem would suddenly appear — a database migration gone wrong — and that we’d lack the expertise to solve it. Coming from big tech, the details of our database or cloud infra details had always been abstracted away from me, but now I had no one to support me, no infra team of experts at my back.

In this nightmare I’d watch the company burn to the ground overnight; all of this would have been for naught.

The reality

The years have helped me realize that these fears were misplaced; I vastly misunderstood a few things.

Here were two:

  1. Just how hard getting users is

  2. The difference between launch quality at an early-stage startup and at a company with billions of users

At big tech, launching a product can feel more like flipping a scary switch: you might release a product and, even gated behind an A/B test, have hundreds of thousands of users trying it the next day.

In this scenario, there are a number of fears. You have enough users to create interesting load problems. Users have high expectations based on your established reputation. Do all of the happy paths and edge-cases work? Is the product clear enough?

On the other hand, in the earliest days of Graphite, we had tens of users. Tens. When we’d launch features, we’d be happy to capture a few users. I had worried about scaling issues before I joined; now I prayed of them — it’d be a perverse mark of success.

A different customer

It wasn't just the number of users that I hadn't been prepared for; it was also the type.

When I look back now on screenshots of our product back then, it was amply clear that this was not a tool refined by years of development. We weren't fooling anyone. But all of our users knew what they were signing up for — and enjoyed it. These users were the earliest of the early adopters. They were happy to hop on calls with us and help us improve our product, taking the journey along with us.

When we did make mistakes, it was also far easier to clean them up. In addition to looking at a crash log, we would also call the user. Did you notice anything else interesting before the crash? Do you have any other feedback?

And with less code and data in general, migrations to undo technical mistakes we had made were also shockingly simple. Before I joined the company, the founders chose to migrate our codebase from Django to TypeScript. (I’m eternally grateful.)

Migration time: two weeks.

Before I joined, part of my fear stemmed from thinking of users as anonymous folks who would judge us for every small mistake and flame us at the drop of a hat.

What I found instead was that building in this environment was more akin to hacking something together for your friends. Our users were rooting for us.

Database issues

Eventually one day, we were faced with a mystery: what had previously been cheap Postgres queries were becoming very expensive — with no change in volume of calls or database size. The query plans looked sensical; things were just slower and slower by the day and users were really starting to take note and voice their displeasure. It was my fear realized: here I was, under the gun, needing to build up real-time expertise.

After countless late nights, I finally found the issue. It was a leftover replication slot that was blocking autovacuum. I came in on a Sunday and ran pg_repack on the problematic tables and was elated to see DB CPU plummet.

We and I survived.

The difference was that I had expected this to be my day one. Instead, this was nearly two years in — two years of slowly building expertise over time rather than a sudden crash course all at once.

I’ll stress it again to be extremely clear: the work is hard and only gets more difficult the longer the company stays alive. I can’t stress how hard the art of finding users and later getting them to pay for your product is.

The technical parts though? As long as come with an appetite to learn — you’re probably more ready thank you think.

And if you were one of our earliest users (I still remember when I'd come to work every day and check the dashboard that would show all ten of our users), I'm eternally grateful. Thank you for helping us and sticking with us.