title | date |
---|---|
The Missing README Software Engineering Links & Resources |
November 1, 2021 |
This page contains all books, links, and resources referenced in The Missing README: A Guide for the New Software Engineer. If you find these resources useful, you might enjoy the book! You can buy it on Amazon or anywhere books are sold.
A tour of the book and the beginning of your career.
- No references.
Skills to learn on the job and what to expect from yourself.
- All You Have to Do Is Ask: How To Master the Most Important Skill for Success
- Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman
- Extreme Programming Explained: Embrace Change
- On Pair Programming
- Presence: Brining your Boldest Self to Your Biggest Challenges
- Space Invaders 77
- Teaching for Learning
Working with legacy code and how to prevent technical debt.
- Choose Boring Technology
- The Hard Thing about Hard Things
- How to Write a Git Commit Message
- The Legacy Code Programmer's Toolbox
- The Mythical Man-Month
- Refactoring: Improving the Design of Existing Code
- TechnicalDebtQuadrant
- Working Effectively with Legacy Code
Use metrics, logging, configuration, and write tools to make your software easy to run.
- The Amazon Builders' Library
- Building Secure & Reliable Systems
- Clean Code
- Code Complete
- OWASP Top Ten
- Site Reliability Engineering
Versioning strategies, transitive dependencies, and how to avoid dependency hell.
Testing philosophies and how to write safe, fast, predictable tests.
Learn to make code reviews helpful instead of a nuisance.
Continuous integration and deployment strategies including blue/green deploys, dark launches, and more.
- The Amazon Builders' Library
- Apache Developers' & Contributors' Overview
- Continuous Delivery
- Git for Teams
- An Overview of Packaging for Python
- Preparing Spark Releases
- Release It!
- Site Reliability Engineering
How to go enter your team's on-call cycle and deal with production incidents.
- A List of Post-mortems!
- Best practices for working with Customer Care
- Incident Postmortem Template
- What Happens When the Pager Goes Off?
- Site Reliability Engineering
The technical design process, including experiments, problem definition, documentation, and collaboration.
- design_doc_template
- Effective Software Design Documents
- Elements of Style
- Hammock Driven Development
- How to Write Usefully
- Kafka Improvement Proposals
- Manager's Schedule, Maker's Schedule
- On Writing Well
- Python Enhancement Proposals
- Rust RFCs
- Write Like You Talk
Build evolvable software using architectural best practices like YAGNI and by learning to maintain compatibility.
- Building Evolutionary Architectures
- Data Mesh
- Designing Data-Intensive Applications
- Elements of Clojure
- How do I make a field "required", like in Protocol Buffers?
- Implementing Domain Driven Design
- A Philosophy of Software Design
- Simple Made Easy
Learn to participate in Agile development practices like sprint planning, stand-ups, and retrospectives.
Build a healthy relationship with your manaager and learn to work with common management practices like 1:1s.
- An Elegant Puzzle
- The Manager's Path
- Thanks for the Feedback: The Science and Art of Receiving Feedback Well
- Managing Up
- High Output Management
Position yourself to grow into senior or staff and staff roles, and learn to navigate the promotion process.