Cosmic Module

S

Qubits of DPK

March 30, 2026

Core SWE @ Google
Large software systems are not only about writing code.
They are also about sharing knowledge across teams and engineers.
This chapter explains why knowledge sharing is essential in large engineering organizations and how companies like Google design systems and processes to ensure knowledge spreads effectively.
The central idea of this chapter is:
Knowledge that stays inside one person's head is a risk to the entire system.
Successful engineering organizations actively work to spread knowledge across teams.

Why Knowledge Sharing Matters

In large organizations, engineers constantly move between teams, projects, and companies.
Examples:
  • engineers switch teams
  • engineers take vacations
  • engineers leave the company
  • new engineers join the team
If important system knowledge exists only in the mind of one engineer, the project becomes extremely fragile.
When that person leaves, the team may struggle to maintain or improve the system.

The Knowledge Problem in Large Systems

As systems grow, knowledge becomes harder to manage.
Large software systems often contain:
  • millions of lines of code
  • complex architectures
  • many interacting services
  • multiple teams working simultaneously
Without structured knowledge sharing, engineers may struggle to:
  • understand existing systems
  • debug problems
  • safely modify code

Types of Knowledge in Software Engineering

Knowledge in software systems exists in different forms.
All of these types of knowledge must be shared across the organization.

Explicit Knowledge vs Tacit Knowledge

Knowledge can be divided into two categories.

Explicit Knowledge

Explicit knowledge is documented and easily shared.
Examples include:
  • documentation
  • design documents
  • tutorials
  • code comments
Explicit knowledge can be easily transferred between engineers.

Tacit Knowledge

Tacit knowledge exists in people's experience and intuition.
Examples include:
  • debugging techniques
  • architectural reasoning
  • experience with system failures
Tacit knowledge is harder to transfer and often requires:
  • mentorship
  • discussions
  • practical experience

Mechanisms for Knowledge Sharing

Engineering organizations use several mechanisms to spread knowledge.

Code Reviews

Code reviews are one of the most effective ways to share knowledge.
In a code review:
  • one engineer writes code
  • another engineer reviews it before it is merged
Benefits of code reviews:
  • bugs are detected early
  • coding standards are enforced
  • knowledge spreads across engineers
Reviewers learn about new parts of the system while reviewing code.

Documentation

Documentation preserves knowledge in written form.
Good documentation ensures that engineers can understand systems without relying on individuals.

Design Documents

Before implementing large systems, engineers write design documents.
A typical design document includes:
Design documents help teams understand decisions and evaluate alternatives.

README Files

README files provide quick information about a project.
They usually include:
  • project purpose
  • setup instructions
  • build instructions
  • usage examples
A good README helps new engineers quickly understand a project.

API Documentation

API documentation explains how to interact with system components.
Clear API documentation helps engineers:
  • understand how to use a service
  • avoid incorrect usage
  • integrate systems correctly
Poor documentation often leads to misuse of APIs.

Mentorship

Mentorship is another important method for sharing knowledge.
Senior engineers guide junior engineers through:
  • architecture discussions
  • code reviews
  • debugging sessions
  • system design explanations
Mentorship helps transfer tacit knowledge that is difficult to document.

Technical Talks and Presentations

Large organizations often hold internal technical talks where engineers present:
  • new system designs
  • lessons learned from failures
  • architectural improvements
These presentations help distribute knowledge across teams.

Internal Knowledge Platforms

Many organizations build internal tools to store and distribute knowledge.
Examples include:
  • internal documentation portals
  • Q&A systems
  • engineering wikis
  • knowledge bases
These systems allow engineers to quickly find answers to technical questions.

Encouraging a Culture of Learning

Knowledge sharing depends not only on tools but also on culture.
Healthy engineering cultures encourage engineers to:
  • ask questions freely
  • document their work
  • share lessons learned
  • teach others
This creates an environment where knowledge naturally spreads.

Risks of Poor Knowledge Sharing

If knowledge sharing is neglected, several problems appear.
Examples include:
  • engineers repeatedly solving the same problems
  • difficulty maintaining legacy systems
  • slow onboarding for new engineers
  • fragile systems dependent on specific individuals
These issues reduce productivity and increase system risk.

Benefits of Strong Knowledge Sharing

Organizations that invest in knowledge sharing gain several advantages.

Key Lessons from Chapter 3

This chapter highlights several important principles.
  1. #
    Knowledge concentrated in individuals creates risk.
  2. #
    Documentation preserves important information.
  3. #
    Code reviews help distribute expertise across teams.
  4. #
    Mentorship transfers practical engineering experience.
  5. #
    Organizations must build systems and culture that encourage learning.

Simple Explanation (For Non-Technical Readers)

Imagine a large hospital.
If only one doctor understands how a critical machine works, the hospital is at risk if that doctor is absent.
Instead, hospitals train many doctors and document procedures.
Software systems work the same way.
Successful engineering teams ensure that knowledge is shared widely so the system remains reliable even when people change.