Notes from articles “21 Lessons from 14 Years at Google” and “14 More Lessons from 14 years at Google”.

Points summarised mostly with ChatGPT for easy recap, I grouped them in themes.

Delivery

  • The best engineers are obsessed with solving user problems. – Value comes from deeply understanding users and their pain points, rather than from technology for technology’s sake. [I.1]
  • Bias towards action. Ship. You can edit a bad page, but you can’t edit a blank one. – Early delivery and iteration beat endless perfectionism. [I.3]
  • Focus on what you can control. Ignore what you can’t. – Effective engineers concentrate their energy on areas they can influence. [I.10]
  • When a measure becomes a target, it stops measuring. – Metrics degrade when they become targets instead of insights. [I.15]
  • Process exists to reduce uncertainty, not to create paper trails. – Good process clarifies coordination, bad process just adds overhead. [I.19]
  • Eventually, time becomes worth more than money. Act accordingly. – Prioritizing personal and professional time becomes critical with experience. [I.20]
  • There are no shortcuts, but there is compounding. – Deliberate practice and reflection compound into meaningful career progress. [I.21]
  • The best engineers pick the right problems to solve. – Saying yes selectively protects focus on the most impactful work. [II.1]
  • “We should” is not a plan. “On Tuesday, I will” is a plan. – Converting intentions into specific actions drives progress. [II.3]
  • Slow code is sometimes a symptom. Slow decisions are always a problem. – Delays are often caused by unclear decision rights or context gaps. [II.4]
  • AI makes drafts cheap. Taste becomes expensive. – With AI generating drafts easily, human judgment in choosing the best options becomes the key skill. [II.13]

Teamwork

  • Being right is cheap. Getting to right together is the real work. – Alignment with others on goals and solutions matters more than winning technical arguments. [I.2]
  • Your code doesn’t advocate for you. People do. – Influence and reputation come from relationships and visibility, not just code. [I.6]
  • Most “slow” teams are actually misaligned teams. – Misalignment and unclear priorities slow progress more than technical issues. [I.9]
  • The work that makes other work possible is priceless – and invisible. – Glue work like docs and onboarding is crucial, even if rarely celebrated. [I.13]
  • Your network outlasts every job you’ll ever have. – Long-term relationships deliver opportunities beyond any single role. [I.17]
  • When you add a team, you add edges, not just nodes. – More people introduce communication complexity unless ownership and interfaces are clear. [II.11]
  • Trust is a latency optimization for teams. – High trust accelerates decisions and reduces coordination overhead. [II.14]

Communication

  • Clarity is seniority. Cleverness is overhead. – Clear code and communication reduce risk and improve team effectiveness. [I.4]
  • Writing forces clarity. The fastest way to learn something better is to try teaching it. – Teaching and documenting concepts deepens understanding. [I.12]
  • If you win every debate, you’re probably accumulating silent resistance. – Real alignment requires integrating others’ perspectives, not just winning arguments. [I.14]
  • Admitting what you don’t know creates more safety than pretending you do. – Vulnerability encourages learning and psychological safety. [I.16]
  • If you can’t say what decision you’re asking for, you’re not ready for the meeting. – Meetings should start with a defined decision ask to avoid aimless discussion. [II.2]
  • You can’t “communication” your way out of a bad interface between teams. – Structural boundaries matter more than more meetings or messages. [II.6]
  • The best escalation comes with a proposal. – Presenting options and recommendations earns trust and accelerates decisions. [II.7]
  • Small PRs are kindness. Especially if the PR is AI generated. – Incremental changes improve reviewability and team velocity. [II.10]

Systems

  • Novelty is a loan you repay in outages, hiring, and cognitive overhead. – New or exotic tech brings hidden operational costs. [I.5]
  • The best code is the code you never had to write. – Avoiding unnecessary code simplifies systems and reduces long-term maintenance. [I.7]
  • At scale, even your bugs have users. – Bugs become dependencies at scale and require careful handling. [I.8]
  • Abstractions don’t remove complexity. They move it to the day you’re on call. – Abstractions shift complexity rather than eliminate it. [I.11]
  • Most performance wins come from removing work, not adding cleverness. – Eliminating unnecessary tasks often yields more impact than optimization. [I.18]
  • Reliability is a product feature. Treat it like one. – System reliability deserves the same planning and resourcing as other features. [II.5]
  • Avoid hero culture. Build systems that don’t require heroes. – Sustainable systems reduce reliance on individual heroics. [II.8]
  • Make observability part of the feature. – Built-in telemetry and visibility are essential for real-world reliability and iteration. [II.9]
  • The migration is never just a migration. – Technical migrations involve negotiation, human effort, and long-tail compatibility work. [II.12]