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

推荐订阅源

F
Full Disclosure
V
Vulnerabilities – Threatpost
Attack and Defense Labs
Attack and Defense Labs
N
News and Events Feed by Topic
SecWiki News
SecWiki News
S
Security @ Cisco Blogs
Schneier on Security
Schneier on Security
B
Blog
TaoSecurity Blog
TaoSecurity Blog
The Last Watchdog
The Last Watchdog
H
Hacker News: Front Page
Hacker News - Newest:
Hacker News - Newest: "LLM"
博客园_首页
D
Docker
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Y
Y Combinator Blog
W
WeLiveSecurity
N
News and Events Feed by Topic
F
Fortinet All Blogs
PCI Perspectives
PCI Perspectives
WordPress大学
WordPress大学
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Recent Announcements
Recent Announcements
Forbes - Security
Forbes - Security
T
Tailwind CSS Blog
Hacker News: Ask HN
Hacker News: Ask HN
爱范儿
爱范儿
腾讯CDC
Last Week in AI
Last Week in AI
月光博客
月光博客
C
Cybersecurity and Infrastructure Security Agency CISA
P
Proofpoint News Feed
Help Net Security
Help Net Security
V
V2EX
C
Cyber Attacks, Cyber Crime and Cyber Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
H
Heimdal Security Blog
L
LINUX DO - 最新话题
GbyAI
GbyAI
The Hacker News
The Hacker News
罗磊的独立博客
S
SegmentFault 最新的问题
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园 - 【当耐特】
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
V2EX - 技术
V2EX - 技术
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
O
OpenAI News
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

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 The technical learning curve at a startup is gentler than you might think 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 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
Building trust as a software engineer
Greg Foster · 2024-02-13 · via Graphite blog

When working on Airbnb’s infra team, I struggled to grow from an L4 engineer to a senior/L5 eng.

I came early, stayed late, and said yes to working on anything that needed help - I was as eager as a new grad could be.

Eventually, I found myself on a project to migrate engineers across all of Airbnb off our old deployment platform, “Deployboard,” onto the open-source Spinnaker. My manager had a goal that in the next two months, 80% of micro-services would be deployed from the new platform. I coded relentlessly and did my best to uphold the highest quality bar. I fixed bugs, brushed up on my Java, and read textbooks on how to better review my teammates’ code.

Despite all my frantic efforts and sleepless nights, when my manager checked in with me at the halfway point, I realized I had no idea whether or not we were on track to hit our 80% goal. In fact, we were way off track, and I just didn’t know.

Later that year, I was dismayed to see a harsh performance review. My manager sat me down and explained: I had been doing the work of two L4 engineers, but that would never get me promoted to an L5. What he needed was someone he could reliably hold accountable to hitting specific project goals. Furthermore, if for some reason a goal couldn't be hit, he needed me to raise the blocker ASAP along with a new plan. I was so focused on solving the immediate problems in front of me, I didn’t see the larger picture. In return, he couldn’t trust me - at least not to deliver senior-level projects.

Despite my frustration at the time, this was the best performance review I ever received.

My issue was one of focus and reliability. My input effort meant little if I failed to land hard projects with grace. I could grind and execute as an all-star engineer, but my career would stall, and I’d never drive large-scale company impact.

To be a senior engineer is to cultivate and maintain trust

L3 / Junior SWE: Can be trusted with small bugs and scoped tasks.

L4 / SWE: Can be trusted to drive large complex projects.

L5 / Senior SWE: Can be trusted to plan, coordinate, and deliver large complex projects.

In 2020 I quit Airbnb, moved to NYC, founded a startup, and coincidentally became a pandemic hermit. The sweeping life change was overwhelming, but gave me a chance to reset my working style. Graphite, in particular, forced me to adopt a more mature perspective on project ownership. Dependability became critical - first with my cofounders, and later with our engineering team.

Early on at Graphite, we knew we’d have hard engineering problems and minimal management oversight. In response, we chose to only hire senior engineers for the first ten folks. This made 2022 recruiting brutal, but had the positive effect of forcing me to deeply reflect on what makes an engineer “senior” - the same level I struggled to perform at just years earlier. While many factors contribute™️, I realized the core thing I need from a senior engineer is the ability to reliably ship challenging, ambiguous projects. I need to be able to trust them with broad problem areas and know they’ll deliver consistently without having to micromanage them.

Given that high trust has become a core expectation of all engineers on the team, I’ve also been forced to reflect on how to build and maintain trust. It’s only fair that if we expect it, we should articulate how to cultivate it.

Trust is a streak

Fundamentally, trust is how much someone believes that you’ll do the right thing, when you have the chance to do the wrong thing. This is also true in engineering projects: trusting that if you put someone in a situation where there’s a risk of failure, they’ll either navigate through the complexity and deliver, or they’ll provide direct, immediate feedback that something about the project needs to be rescoped so that success is possible.

As a practical example: when I meet a friend for coffee, I have some degree of trust whether they’ll be on time or not. Ideally they’re on time, but there’s plenty of opportunity for them to be late. My percentage confidence that they’ll be on time, is how much I trust them (at least in the realm of coffee meetings).

If I get coffee with someone new, all I can do is hope they show up on time. If they show up on time once, I have a slightly higher belief they’ll do it again the following week. But if they show up late the next time, my trust takes a dip. If they show up late 1/3rd of times, my trust becomes pretty low that they’ll show up on time in future meetings.

The person I trust most to show up on time is the the person who I’ve had coffee with 30 times before, and in each instance, they’re on time. It’s the person who’s always on time, and who, in emergencies, messages me when something comes up up. While it may just be coffee, the same person also does this with other engagements and other people.

The point I'm getting at is that I believe trust is mostly a game of iterations and streaks. The best way to build trust is to log repeated instances where things could go wrong but don’t. The longer the streak, the more someone will trust you in a future iteration. Break that streak however, and you suddenly find yourself needing to rebuild trust.

This is true for small things like showing up to meetings on time, but it’s significantly more important for critical software projects. All projects are useful, but some are higher stakes than others. If a refactor takes longer than the committed time, or fails to land - it’s not the end of the world. If we’re pivoting the company (as we did twice in the early days), I’m going to give ownership on the new functionality to the most trusted engineer in the room. And that person will be the person who has the longest streak of taking hard, ambiguous projects and shipping them reliably.

Trust = the belief, that given a new situation, someone will deliver.

Building trust = creating a streak of continuously living up to expectations and promises.

Trust in the context of engineering

First impressions matter a lot. If you're working with a new person, or joining a new team - I believe it’s worth going above and beyond to ensure you build a strong streak. More important than doing a ton of work, or doing something very hard, is reliably delivering on expectations. When you’re new, folks around you are subconsciously building expectations of you, and their prior examples may be sparse. This lack of context is why it’s so important to make their first few datapoints of you stellar.

Warren Buffet describes reputations as taking 20 years to build, and only a minute to destroy. I think trust can be similar - and the mistake I see is wonderful engineers not caring enough about protecting their reliability streaks. When working on a hard project, there’s always a chance for something to go awry. Unknown unknowns erupt, and the timeline needs to be pushed back. But what I need to trust in is that the project owner will immediately communicate the situation and handle the next steps with care and grace. Not just ignore the delays and wait until its too late to mention that things have gone off the rails.

Dependability is more valuable on an engineering team than unreliable excellence. Why? Because engineering projects at companies are part of a large dependency graph. Before engineering comes research, design, and planning. After comes testing, marketing, feedback, and more research. Some engineering projects block others. Some engineering projects are so critical that the whole company’s continued existence depends on them. An engineer who can ship 2x the number of projects, but half of them drop or are wildly delayed, is nearly useless in this context. They’ll be assigned only the lowest stakes works streams, and even then someone with higher trust will quietly need to pin their attention on the person. This wastes resources and limits the importance of projects the team has capacity to take on.

My advice: Focus on being a dependable engineer. Build and maintain your streak of reliability at all costs. Gently increase your output and difficulty, but all while holding rock solid on your dependability. That’s what is required if you aspire to become more senior, and that’s what your team needs of you.