The
Senior Software Engineer

11 Practices of an Effective Technical Leader

By David Bryant Copeland

Buy Now $25Instantly download as PDF/MOBI/ePub
 

Table of contents

  1. Acknowledgements
  2. Welcome to Your New Career
  3. Focus on Delivering Results
    1. Results (read an excerpt)
    2. Focus
    3. Deliver Smaller Results More Often
    4. Plans, Schedules, and Status Reports
    5. Moving On
  4. Fix Bugs Efficiently and Cleanly
    1. Overview
    2. Understand the Problem
    3. Write Tests that Fail
    4. Solve the Problem as Quickly as You Can
    5. Modify Your Code for Maintainability and Readability
    6. Commit Your Changes
    7. Example
    8. Is This Much Process Really Necessary?
    9. Moving On
  5. Add Features with Ease
    1. Understand the Problem
    2. Understand the System
    3. Create Acceptance-Level Tests
    4. Plan your Implementation
    5. Repeat the Test/Fix/Refactor Cycle
    6. Get a Code Review
    7. Commit Your Changes
    8. How to Report Progress
    9. Moving On
  6. Deal With Technical Debt and Slop
    1. Slop: Code to Fix Now (read an excerpt)
    2. Technical Debt: Code to Fix Later (or Never)
    3. Moving On
  7. Play Well With Others
    1. Empathize With Your Audience
    2. Adapt and Abstract Information
    3. Example
    4. Moving On
  8. Make Technical Decisions
    1. Identify Facts
    2. Identify Priorities
    3. Draw Conclusions
    4. Example
    5. Fallacies
    6. Document the Decision-Making Process
    7. Moving On
  9. Bootstrap a Greenfield System
    1. Overview
    2. Understand the problem
    3. Understand the System’s Place in the Technical Architecture
    4. Choose Technology
    5. Outline the Application’s Architecture
    6. Create a Deployment Checklist
    7. Create a Minimum Deployable System
    8. Add and Deploy Features
    9. Moving On
  10. Learn to Write
    1. Three Steps to Better Writing
    2. Write an Email
    3. Write System/Application Documentation
    4. Write API Documentation
    5. Practice Writing
    6. Moving On
  11. Interview Potential Co-Workers
    1. Ideal Technical Interview (read an excerpt)
    2. Other Types of Interviews
    3. Moving On
  12. Be Responsive and Productive
    1. Being Responsive to Others
    2. Pro-actively Schedule Interruptions
    3. A Personal SLA for Communication
    4. Moving On
  13. Lead a Team
    1. Start the Project
    2. Deliver the Project
    3. Enhance the Project and Fix Bugs
    4. Leave the Project
    5. Moving On
  14. Conclusion

Essays & Appendices

  1. Engineer as Product Manager
    1. Knowing What to Build
    2. Enter the Product Manager
    3. Be a Partner
    4. Doing Your Best Work
    5. Find Out Your Team’s Purpose
  2. Production is All That Matters
    1. “DevOps”
    2. Handling Production Errors Matters
    3. Detecting Production Errors
    4. Fixing Production Errors
    5. Avoiding Production Errors
    6. But it’s not my job!
  3. Responsible Refactoring
    1. Be Careful Changing Proven Code
    2. You Can’t Predict the Future
    3. Clean Code Is Not and End
    4. Clean When You Need to Change
    5. Knowing When a Refactoring Will Help
  4. The World’s Shortest Language Primers
    1. Ruby
    2. Java
  5. Reading List
  6. About the Author