Table of contents
- Acknowledgements
- Welcome to Your New Career
- Focus on Delivering Results
- Results (read an excerpt)
- Focus
- Deliver Smaller Results More Often
- Plans, Schedules, and Status Reports
- Moving On
- Fix Bugs Efficiently and Cleanly
- Overview
- Understand the Problem
- Write Tests that Fail
- Solve the Problem as Quickly as You Can
- Modify Your Code for Maintainability and Readability
- Commit Your Changes
- Example
- Is This Much Process Really Necessary?
- Moving On
- Add Features with Ease
- Understand the Problem
- Understand the System
- Create Acceptance-Level Tests
- Plan your Implementation
- Repeat the Test/Fix/Refactor Cycle
- Get a Code Review
- Commit Your Changes
- How to Report Progress
- Moving On
- Deal With Technical Debt and Slop
- Slop: Code to Fix Now (read an excerpt)
- Technical Debt: Code to Fix Later (or Never)
- Moving On
- Play Well With Others
- Empathize With Your Audience
- Adapt and Abstract Information
- Example
- Moving On
- Make Technical Decisions
- Identify Facts
- Identify Priorities
- Draw Conclusions
- Example
- Fallacies
- Document the Decision-Making Process
- Moving On
- Bootstrap a Greenfield System
- Overview
- Understand the problem
- Understand the System’s Place in the Technical Architecture
- Choose Technology
- Outline the Application’s Architecture
- Create a Deployment Checklist
- Create a Minimum Deployable System
- Add and Deploy Features
- Moving On
- Learn to Write
- Three Steps to Better Writing
- Write an Email
- Write System/Application Documentation
- Write API Documentation
- Practice Writing
- Moving On
- Interview Potential Co-Workers
- Ideal Technical Interview (read an excerpt)
- Other Types of Interviews
- Moving On
- Be Responsive and Productive
- Being Responsive to Others
- Pro-actively Schedule Interruptions
- A Personal SLA for Communication
- Moving On
- Lead a Team
- Start the Project
- Deliver the Project
- Enhance the Project and Fix Bugs
- Leave the Project
- Moving On
- Conclusion
Essays & Appendices
- Engineer as Product Manager
- Knowing What to Build
- Enter the Product Manager
- Be a Partner
- Doing Your Best Work
- Find Out Your Team’s Purpose
- Production is All That Matters
- “DevOps”
- Handling Production Errors Matters
- Detecting Production Errors
- Fixing Production Errors
- Avoiding Production Errors
- But it’s not my job!
- Responsible Refactoring
- Be Careful Changing Proven Code
- You Can’t Predict the Future
- Clean Code Is Not and End
- Clean When You Need to Change
- Knowing When a Refactoring Will Help
- The World’s Shortest Language Primers
- Ruby
- Java
- Reading List
- About the Author