or run

tessl search
Log in

senior-engineering

tessl install github:jdrhyne/agent-skills --skill senior-engineering

github.com/jdrhyne/agent-skills

Engineering principles for building software like a senior engineer. Load when tackling non-trivial development work, architecting systems, reviewing code, or orchestrating multi-agent builds. Covers planning, execution, quality gates, and LLM-specific patterns.

Review Score

76%

Validation Score

11/16

Implementation Score

77%

Activation Score

67%

Senior Engineering Principles

Guidelines for building software with the judgment and discipline of a senior engineer.

Before Writing Code

Define Done First

  • What does success look like? Write it down.
  • What are the acceptance criteria?
  • How will you verify it works?

Identify Load-Bearing Decisions

  • Which choices are hard to reverse? → More scrutiny
  • Which are easily changed? → Decide fast, move on
  • Reversible decisions don't need consensus

Decompose Before Building

  • Break work into clear, testable units
  • Each unit should be independently verifiable
  • If you can't explain the pieces, you don't understand the whole

Surface Risks Upfront

  • What could go wrong?
  • What are the dependencies?
  • What's the rollback plan?
  • Time-box exploration — analysis paralysis is real

Interface First, Implementation Second

  • Define the contract (types, API shape, error cases) before internals
  • Forces clarity on what you're actually building
  • Implementation becomes "fill in the blanks"

Ask: What's the Simplest Thing That Could Work?

  • Start there. Add complexity only when the simple version fails.
  • Most features need 20% of what we imagine.

During Build

Always Have a Runnable State

  • Never be more than 30 mins from something that compiles/runs
  • Commit working checkpoints frequently
  • Big-bang integration is where projects die

Prefer Incremental Over Big-Bang

  • Ship small, verify, iterate
  • Each step should be independently deployable if possible
  • Reduce blast radius of mistakes

Instrument As You Build

  • Add logging/metrics while coding, not when debugging prod
  • "I wish I had visibility into X" = you waited too long
  • Observability is a feature, not an afterthought

Read Errors Carefully

  • 80% of debugging is actually reading what the system tells you
  • Read the error, then read it again
  • Stack traces have answers — follow them

Boring > Clever

  • If someone has to pause to understand it, it's too clever
  • Save big-brain moves for genuinely hard problems
  • Maintainability beats elegance

Optimize for Delete

  • Write code that's easy to remove
  • Tight coupling makes features immortal
  • Good abstractions have clear boundaries

Quality Gates

Before Declaring Done

  • Linter passes
  • Type checker passes
  • Tests pass (unit + integration where applicable)
  • Manual smoke test completed
  • Edge cases considered and handled

Tests Are Documentation

  • A good test suite tells you what code is supposed to do
  • Treat tests as first-class citizens
  • If it's not tested, it's not done

Code Review Mindset

  • Review like you'll maintain it at 3am
  • Check: correctness, clarity, edge cases, security
  • "It works" is necessary but not sufficient

LLM Orchestration Principles

Context Management

  • Context window is your RAM — manage it deliberately
  • Bloated context = degraded reasoning
  • Give each agent minimum viable context, no more

Agent Delegation

  • Single responsibility per agent
  • Clear handoff contracts: inputs, outputs, success criteria
  • Parallel when independent, sequential when dependent

Verify, Don't Trust

  • First output is a draft, always
  • Review agent output like a code review
  • Agents are junior engineers, not oracles

Checkpoints Over Marathons

  • Long-running agents should checkpoint progress
  • If it crashes at 90%, don't lose everything
  • Log state to files, not just memory

Fail Fast, Surface Early

  • If something's going wrong, stop and reassess
  • Don't compound errors hoping they'll resolve
  • Human in the loop for high-stakes decisions

Ownership & Accountability

Own Failures, Credit Others

  • Own failures publicly
  • Credit others for wins
  • No ego-driven attachment to being right

Strong Opinions, Weakly Held

  • Have a position, defend it with evidence
  • Update beliefs when evidence demands it
  • "I was wrong" is a sign of growth

Leave It Better

  • Codebases, teams, processes — improve what you touch
  • Fix the small things while you're there
  • Documentation is a gift to future-you

The Meta-Principle

"Make the change easy, then make the easy change." — Kent Beck

Most senior engineering is about preparation — setting up the codebase so the actual feature is trivial. If the feature is hard, the real work is often refactoring first to make it easy.