Monthly Archives: January 2025

The Real Guide to Engineering Documentation: What Actually Works

After 18 years in tech, I’ve seen documentation fail in almost every way possible. From outdated wikis that no one reads to massive Google Doc graveyards that make your eyes glaze over. But I’ve also discovered what actually works. Here’s the real deal on documentation that people will actually use.

The Hard Truth About Documentation

Let’s be honest: most engineering documentation is terrible. Not because engineers can’t write (though some of us certainly prefer code), but because we’re thinking about documentation all wrong. We treat it like a checkbox to tick off rather than a tool to help our teams move faster.

Video Documentation: The Game Changer

Here’s my “personal fav” approach that has consistently worked: Record short, focused videos. Why?

  1. It’s faster to create. You can record a 5-minute technical deep-dive in… well, 5 minutes. Writing that same content might take an hour.
  2. People actually consume it. Engineers are more likely to watch a quick video showing how to set up a local environment than read a 20-page setup guide.
  3. It captures context you can’t write. When you’re explaining why you made certain architectural decisions, tone and emphasis matter.

The Documentation Stack That Actually Works

Here’s my hierarchy of documentation, from most to least important:

1. README.md Files

  • Lives with the code
  • Explains how to get started
  • Lists core dependencies
  • Shows basic usage examples
  • Must be maintained or CI fails

2. Quick Video Walkthroughs

  • 5-10 minutes max
  • One specific topic per video
  • Screen recording + voice explanation
  • Perfect for:
    • Debugging common issues
    • Setting up development environments
    • Walking through new features
    • Explaining architectural decisions

3. Living Architecture Documents

  • High-level system design
  • Core architectural decisions
  • Update when major changes happen
  • Keep it brief – link to videos for details

4. Runbooks

  • Step-by-step emergency procedures
  • Must be tested regularly
  • Include common failure scenarios
  • Link to monitoring dashboards

Make Documentation Actually Maintainable

Here’s what I’ve learned about keeping docs alive:

  1. Treat documentation like code:
  • Version control it
  • Review it during PRs
  • Test it (yes, really)
  • Delete it when it’s obsolete – make sure you have a forcing function to revisit old docs
  1. Write less, but better:
  • One source of truth
  • Link don’t copy
  • Update or delete
  • No “TODO” sections (we all know they never get done)

The Documentation Workflow That Works

Here’s my actual process for creating documentation that sticks:

  1. Start with a video:
  • Record yourself explaining the concept – I use OBS since it’s free and lets me record myself, my screen, and pairs nicely with a StreamDeck that I use to do everything in a single cut.
  • Share with the team
  • Get feedback
  • Iterate if needed (I use FinalCut Pro to edit my videos, but I try to make net-new videos if possible)
  1. Extract key points:
  • Turn video insights into bullet points, link to timestamps in your video.
  • Add to README or architecture doc
  • Link to the video for details
  1. Create runbooks from real incidents:
  • Document while solving problems
  • Update with each new incident
  • Include links to relevant videos

Common Documentation Pitfalls to Avoid

Don’t make these mistakes I’ve seen kill documentation efforts:

  1. The “Someone Else Will Do It” Trap
  • If you’re working on it, you document it
  • No exceptions
  1. The “I’ll Document It Later” Lie
  • Document while you work
  • Use screen recording to capture your process
  • It’s never “later”
  • Add a calendar invite for an hour in your own calendar to make sure it gets done, set it to recurring on a daily basis as your reminder.
  1. The “Everyone Knows This” Fallacy
  • New team members exist
  • Future you will forget as your brain attic gets cluttered with more stuff
  • Document the obvious, it’s not obvious to everyone – teaching others will help you retain and learn too

Make Your Documentation Count

Here’s what I tell every team I work with:

  1. If you’re explaining something more than once, record it
  2. If you’re recording it, keep it under 10 minutes. Don’t record meetings, be purposeful about what you record, meetings and questions can drone on, but your succinct video is to the point – you can always have follow-up meetings to chat live about something.
  3. If you’re writing it, make it searchable – search and AI-generated content from what you make now is going to be commonplace in the next 5 years.
  4. If it’s not maintained, delete it

The Bottom Line

Documentation isn’t about writing novels. It’s about helping your team move faster and making your systems more maintainable. Start with videos, keep your docs close to your code, and ruthlessly delete anything that’s not providing value.

Set Goals Like A Senior Software Engineer

After 18 years in tech, from NOC Engineer at Lockheed Martin to senior engineering roles, I’ve learned that goal setting isn’t just about ticking boxes on a performance review. It’s about strategic thinking that separates senior engineers from the pack. Here’s how to approach it properly.

The Problem with Traditional Goal Setting

Most engineers fall into one of two traps:

  1. Setting vague goals like “improve coding skills” or “learn new technologies”
  2. Treating goals as a checkbox exercise for their manager

This is the engineering equivalent of implementing a feature without considering scale, maintenance, or customer impact. Let’s fix that.

Think Like a Senior Engineer

Senior engineers don’t just write code – they solve business problems. Your goals should reflect this mindset. Here’s my framework:

1. Impact Metrics First

Before writing a single goal, answer these questions:

  • How many users will this impact?
  • What’s the revenue or cost savings potential?
  • How does this affect system reliability/performance?

A junior engineer might say “Implement database migration to BigQuery.” A senior engineer says “Reduce query latency by 40% and cut storage costs by $50K/month through BigQuery migration.”

2. Non-Functional Requirements Matter

Don’t forget the unsexy but critical goals:

  • Security improvements
  • System reliability targets
  • Technical debt reduction
  • Performance optimization

These often have more impact than flashy new features. I’ve seen entire teams get derailed because they ignored these fundamentals.

3. Automate Everything

For every project goal, add an automation goal. Ask yourself:

  • What manual processes can I eliminate?
  • How can I make the next person’s job easier?
  • What repeatable tasks are wasting team time?

4. Uplift Others

The best engineers are multipliers. Set explicit goals around:

  • Mentoring junior engineers
  • Creating documentation
  • Recording technical deep-dives
  • Improving team processes

Remember: your impact scales dramatically when you help others improve.

Making It Concrete

Here’s what bad versus good goals look like:

Bad Goal: “Learn Kubernetes and improve our deployment process”

Good Goal: “Reduce deployment failures by 50% and cut deploy time from 45 to 15 minutes by implementing automated Kubernetes deployments. Create runbook and train 3 team members on the new process by Q2.”

The Reality Check

Review your goals and ask:

  • Can I measure this?
  • Does this improve our business metrics?
  • Will this make the team more effective?
  • Is this actually achievable in 6 months?

The Bottom Line

Your goals shouldn’t just be about what you’ll do – they should be about what will change because of what you do. That’s the difference between coding and engineering.

Remember: as you become more senior, your manager won’t set these goals for you. You need to think strategically about where you can create the most value. Start practicing now.

What are your thoughts on goal setting? How do you approach it differently at your level? Drop me a comment – I’d love to hear your perspective.