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.
- #Knowledge concentrated in individuals creates risk.
- #Documentation preserves important information.
- #Code reviews help distribute expertise across teams.
- #Mentorship transfers practical engineering experience.
- #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.