Contributing to A Guide to DevOps Engineering
Thank you for your interest in contributing to this open-source book! This guide is a community effort to help junior DevOps engineers bridge the gap to senior-level expertise.
🎯 Our Mission
To create the most practical, scenario-based DevOps guide that helps junior engineers:
- Learn from real-world experiences
- Understand the "why" behind best practices
- Gain confidence in production environments
- Accelerate their professional growth
🤝 How You Can Contribute
1. Report Issues
Found a problem? Please open an issue for:
- Technical errors in code examples
- Broken links or missing resources
- Typos and grammar mistakes
- Outdated information (tool versions, deprecated practices)
- Unclear explanations that need improvement
2. Suggest Improvements
Have ideas? We'd love to hear about:
- Additional scenarios Sarah should encounter
- Missing topics that should be covered
- Better explanations for complex concepts
- Diagrams that would help visualize concepts
- Real-world examples from your experience
3. Submit Content
Ready to write? You can contribute:
- New chapters on relevant DevOps topics
- Case studies from your own experience
- Code examples and configurations
- Troubleshooting guides
- Diagrams and illustrations
4. Improve Existing Content
Help make existing chapters better:
- Enhance code examples
- Add more detailed explanations
- Create better diagrams
- Add tips and warnings from experience
- Update content for new tool versions
5. Translate
Help make this book accessible globally:
- Translate chapters to other languages
- Review existing translations
- Maintain localized versions
📝 Contribution Guidelines
Writing Style
When contributing content, please follow these guidelines:
Voice and Tone
- Conversational but professional
- Empathetic to junior engineer struggles
- Practical over theoretical
- Encouraging without being condescending
Technical Content
- Accurate — test all code examples
- Production-ready — no toy examples
- Explained — don't just show, explain why
- Comprehensive — cover edge cases and gotchas
Scenario Structure
If writing a new chapter, follow this structure:
- Sarah's Challenge — The problem/scenario
- Understanding the Problem — Concepts and context
- The Senior's Perspective — Expert insights
- The Solution — Step-by-step implementation
- Lessons Learned — Key takeaways
- Reflection Questions — Help readers apply concepts
Code Standards
All code examples must:
- ✅ Work — be tested and functional
- ✅ Follow best practices — industry standards
- ✅ Include comments — explain non-obvious parts
- ✅ Be secure — no hardcoded secrets or vulnerabilities
- ✅ Be formatted — use consistent style
Example:
# Good: Well-commented, explains the why
apiVersion: v1
kind: Service
metadata:
name: frontend
labels:
app: frontend
spec:
# Using ClusterIP since this service is internal-only
# and accessed via Ingress controller
type: ClusterIP
ports:
- port: 80
targetPort: 8080
protocol: TCP
name: http
selector:
app: frontend
Markdown Standards
- Use proper heading hierarchy (# → ## → ###)
- Include code fences with language specification
- Use bold for emphasis, italic for terms
- Add alt text to all images
- Keep line length reasonable (~100 characters)
Diagram Guidelines
If adding diagrams:
- Use consistent styling and colors
- Include source files (draw.io, mermaid, etc.)
- Export as SVG when possible (scales better)
- Add descriptive captions
- Consider accessibility (color blind friendly)
🔄 Submission Process
For Small Changes (typos, small fixes)
- Fork the repository
- Create a branch:
git checkout -b fix/typo-chapter-15 - Make your changes
- Commit:
git commit -m "Fix typo in chapter 15" - Push:
git push origin fix/typo-chapter-15 - Open a Pull Request
For Larger Contributions (new content, major changes)
- Open an issue first to discuss your idea
- Get feedback from maintainers
- Fork and create a branch
- Write your content
- Test all code examples
- Submit a Pull Request with detailed description
Pull Request Checklist
Before submitting, ensure:
- Content follows the writing guidelines
- Code examples are tested and work
- No sensitive information (API keys, passwords, etc.)
- Markdown is properly formatted
- Links are working
- Diagrams have source files included
- You've added yourself to contributors list (if first contribution)
👀 Review Process
What to Expect
- Initial review within 1 week
- Feedback from maintainers and community
- Iterations to refine the content
- Approval from at least 2 maintainers
- Merge and inclusion in next release
Review Criteria
Contributions are evaluated on:
- Accuracy — Is the technical content correct?
- Relevance — Does it fit the book's scope?
- Quality — Is it well-written and clear?
- Completeness — Are examples and explanations sufficient?
- Consistency — Does it match the book's style?
🎨 Content Guidelines by Type
Adding a New Chapter
Required elements:
- Fits within existing book structure
- Includes a realistic scenario for Sarah
- Has working code examples
- Follows chapter template structure
- Adds 15-25 pages of content
- Includes reflection questions
Adding Code Examples
Requirements:
- Tested in a real environment
- Includes necessary context/setup
- Has inline comments explaining key points
- Shows best practices
- Includes error handling where appropriate
Adding Diagrams
Guidelines:
- Use consistent color scheme (navy/blue theme)
- Include architecture context
- Label all components clearly
- Show data flow with arrows
- Include legend if needed
Updating Existing Content
When updating:
- Preserve the original scenario/narrative
- Improve clarity without changing meaning
- Update tool versions in comments
- Add deprecation warnings if needed
- Link to additional resources
🛠️ Development Setup
Prerequisites
# Install mdBook
cargo install mdbook
# Or using package manager
brew install mdbook # macOS
Local Development
# Clone the repository
git clone https://github.com/BahaTanvir/devops-guide-book.git
cd devops-guide-book
# Serve the book locally
mdbook serve
# Open in browser: http://localhost:3000
# Build the book
mdbook build
# Test all code examples
./scripts/test-examples.sh
Testing Your Changes
Before submitting:
# Check markdown formatting
mdbook test
# Verify all links
./scripts/check-links.sh
# Test code examples
./scripts/test-code.sh
📜 Licensing
By contributing, you agree that:
- Your contributions will be licensed under the same license as the project
- You have the right to submit the contribution
- You're not including proprietary or confidential information
🌟 Recognition
All contributors are:
- Added to the contributors list
- Credited in commit history
- Acknowledged in release notes
- Appreciated by the community! 🎉
💬 Getting Help
Need help with your contribution?
- GitHub Issues — Ask questions
- Discussions — Chat with the community
- Email — Reach out to maintainers (coming soon)
- Discord — Join our community (coming soon)
📋 Priority Areas
We especially need help with:
- Real-world scenarios — Share your experiences
- Diagrams — Visual learners need more graphics
- Code examples — More working examples
- Troubleshooting sections — Common issues and solutions
- Translations — Make it accessible globally
🎯 Good First Issues
New to contributing? Look for issues labeled:
good-first-issue— Great for beginnershelp-wanted— We need assistancedocumentation— Improve docstypo— Quick fixes
📚 Resources for Contributors
❓ Questions?
Don't hesitate to ask! Open an issue with the question label.
Thank you for helping junior DevOps engineers learn and grow! 🚀
Every contribution, no matter how small, makes a difference in someone's career journey.