David Sargent Wood

Reflections on financial advisory and portfolio management

Dec 21, 2025

Aphorisms drawn from experience building investment platform, managing SMAs, and advising financial advisors. All portfolio managers should be engineers.

General disclaimers apply.


For everyone:

  1. The purpose of financial engineering is to systematically induce side effects in the world.
    1. Engineering has two tasks, and only two: establish the state of the world; then design and maintain systems that change it.
    2. The first task is observation. The second is actuation. Every engineering system is an arrangement of reads and writes.
  2. The scope of reconciled fact defines the scope of safe systems.
    1. (Observability precedes actuation.) Never take write access to state you cannot independently read. Actuation without observation is open-loop control of other people’s money.
    2. Delegated reads are fine; derived reads are fatal. The read must be causally anchored in the counterparty’s state and auditable back to it.
    3. (No rollback, only compensation.) The world does not undo. Errors are corrected by further side effects.
  3. Financial correctness and systemic correctness cannot be cleanly separated. Their entanglement is the discipline of managing financial technology.
    1. A system that executes the wrong economics perfectly is wrong.
    2. A system that encodes the right economics but executes them unreliably is also wrong.
    3. Quants and software engineers may own different failure modes, but they act on the same state and share the same consequences.
    4. The work is therefore not to draw a perfect boundary, but to govern an imperfect one: assign authority, preserve invariants, and make accountability survive the seam.
    5. LLMs move the seam in both directions: quants can no longer disclaim implementation, and engineers can no longer disclaim business context.
  4. Information travels at the speed of light; financial information moves at T+1.
    1. At least in settled form.
    2. Speed beyond settlement breaks causality.
    3. Network speed does not guarantee finality; digital assets are not immuned.
  5. Concurrent write access to the same custodial account is the origin sin. It introduces race conditions and results in undefined behaviors.
    1. Write access is any transaction that changes the state of an account.
    2. A race condition happens when multiple things run at the same time and the result depends on which one runs first.
    3. Undefined behavior occurs when concurrent state changes are not ordered, so outcomes depend on timing rather than rules.
  6. The custodian’s firmware is broken, not as a matter of engineering, but of social contracts.
    1. Exclusive access and sequencing are the only safe remedies.
    2. Temporal separation requires time.
    3. Sleeving worsens the problem because cash is a shared state, which increases contention.
  7. A counterparty in a critical path that does not understand race conditions will inevitably introduce them.
    1. Counterparties must agree on state models and invariants.
    2. Counterparties must agree on a single source of truth for account state.
    3. Counterparties must sequence all state transitions through that source of truth.
    4. Counterparties must implement explicit acknowledgements and finality states.
    5. Counterparties must define rollback/compensation mechanics.
  8. SOPs must define the safety boundary: the set of atomic transactions that can be safely executed.
    1. Each SOP embodies the underlying obligations agreed upon with counterparties.
  9. Pushy clients function as inadvertent chaos engineers, invoking unsafe state transitions and exposing latent edge-case defects.
    1. Clients suffer.
  10. Sales serves the marginal client; portfolio managers prioritize the many; and engineers code for all.
    1. Trading rooms should follow a sterile-cockpit approach—real-time client pressure degrades decision quality.
  11. SMAs and commingled funds differ not by vehicle, but by revenue model.

For portfolio managers and engineers:

  1. A person is not a function.
    1. You can’t invoke it repeatedly without side effects.
    2. Exception just passes a runtime computer problem to a person.
  2. Code does not define intended behavior; standards do.
    1. All complex systems are built with natural language; code is merely the medium.
  3. (Brandolini’s law) Refutation costs an order of magnitude more than assertion.
    1. De facto design rights accrue to whoever is most expensive to argue with.
    2. (Conway’s law) The structure of any system designed by an organization is isomorphic to the structure of the organization.
    3. The system settles at the politically efficient design, not the technically efficient one.
  4. Systems deform around the adamant, not the informed.
    1. There is a strong negative empirical correlation between the two.
    2. The correlation is conditional. Mid-distribution, confidence tracks knowledge; conditioned on the tail — extremity, anti-consensus, belief superiority — the sign flips. Adamant names the tail.
    3. (Curve of knowledge) Knowledge generates edge cases; edge cases generate hedges; hedges lose meetings.
    4. Forced mechanistic explanation deflates extremity — “walk me through the gears” is Brandolini arbitrage.
  5. In engineering, encapsulation is a virtue in people as in code.
    1. An engineer’s circle of influence should be commensurate with their domain of expertise.
    2. Write access to decisions, scoped like write access to state.
    3. Domains are exhibited, not self-declared. Read them off the ledger of communal contribution, not off the org chart.
  6. Voice should match the weight of the artifact.
    1. A junior engineer who owns a core component must be coached into advocacy — representing the thing is part of owning it.
    2. Qui tacet consentire videtur: an unadvocated component is unowned, and someone more adamant will annex it.
  7. (Code existentialism) Practice precedes specification.
    1. Think how c++ evolves.
  8. Communal consensus is an asset; code is a liability.
    1. Communal consensus emerges from constructive interference rather than from formal documentation.
    2. À la Deutungsrahmen, domain-driven people had strong intuition but over-formalized it. È una pratica, non una regola.
    3. Complex systems tend to fail due to breakdowns in consensus-building rather than technical constraints.
  9. Pain accumulates where agency does not.
    1. (Coase theorem) If transaction costs are zero, parties will negotiate to an efficient outcome regardless of who initially holds the rights.
    2. Toil encodes the transaction costs of system improvement. Individuals accept persistent, localized pain to avoid the higher cost of collective agreement and coordinated change.
    3. Persistent toil indicates misaligned ownership. The authority to improve the system resides with those who do not bear the cost of its failure.
  10. Hiring for optics borrows credibility against future failure.
    1. Hiring for loyalty replaces competence with alignment theater.
    2. (Taleb) Organizations that suppress small failures create the conditions for catastrophic ones.
    3. Cultural capture is nonlinear: nothing happens, then everything does.
    4. Loyalty to people decays; loyalty to principles compounds.
    5. (Peter principle) In a hierarchy, every employee tends to rise to their level of incompetence.
    6. (Eric Yankowitz) Incompetence rises naturally. Preventing it requires deliberate opposition to familiarity and seniority-based promotion.
  11. (Code is ruthless) A portfolio management system is heavy industrial machinery—deterministic, mechanical, and devoid of judgment.
    1. (Fear the code) You wouldn’t put your hand near moving gears: computer systems deserve the same level of care and caution.
    2. I only code in monochrome.
  12. The domain of financial advisory is as diverse as life itself.
    1. No single system can—or should—address every investment problem.
    2. (Mike Purewal) A good system is regularized.
    3. A good system is not smart; it is determinstic, explicit, and transparent.
    4. A good system is built from composable parts.
    5. Composable means that components can be combined to solve problems.
    6. This makes the system combinatorially powerful.
    7. This also makes SOPs easier to define, enforce, and audit.

For advisors:

  1. (First law of financial advisory) Least experienced advisors buy most exotic instruments.
    1. Complexity often signals insecurity.
  2. Take your job seriously.
    1. Getting the money in is important, but managing it well takes a lifetime of learning.
  3. Prioritize investment outcomes over having a good time.
    1. Good service doesn’t mean servitude.
    2. Servitude is a poor substitute for investment advisory.
  4. Take benchmarks seriously.
    1. Know the difference between benchmarks, account-specific benchmarks, target allocations, and actual allocations.
    2. Benchmarks define success, account-specific benchmarks isolate skill, target allocations express intent, and actual allocations reflect execution.
  5. Taxes are the toll paid to move toward the benchmark.
    1. Tracking error is the penalty for staying away from it.
    2. There is a fundamental tradeoff between pre-tax and after-tax performance.
  6. Activity interrupts compounding.

  7. Be emotionally detached from your investments.
    1. Be investment rational, not investment emotional.
    2. You can occasionally force action through emotional blackmail; it generally harms clients and creates an intellectual vacuum by displacing rational argument.
  8. Think like a systematic portfolio manager—this is how you scale and deliver consistently.

  9. There are quantitative investors and poor investors.
    1. Poor investors can be lucky for a while.
  10. Don’t use investment account as a checking account.

← Back to all posts

Esse quam videri
email github linkedin disclaimer
© 2011–2026 David Sargent Wood