Writing

Essays, learnings, technical notes, and the occasional rant.

  • Why the Room Goes Quiet Jul 22, 2026

    Why capable people stay silent in meetings, and the mechanical moves leaders can use to level the field and let the good ideas out.

    cultureinterpersonal-skills
  • HAL 9000 - An Obsidian and Claude Co-Pilot Jun 28, 2026

    Blending Obsidian and Claude into a small set of skills that plan my day, organize my notes, and surface follow-ups - all from plain markdown.

    productivityclaudeobsidianplanning
  • Iteration Four - Fundamentals & Habits Jun 6, 2026

    Setting up a system to track fitness and health fundamentals. Building in Public, One Habit at a Time

    healthfitnesstracking
  • Psychology of learned helplessness to tackle issues in engineering teams Jun 1, 2022

    Tech debt is rarely a tooling problem — it's often learned helplessness, and external intervention plus small repeated actions is how teams break the cycle.

    cultureteams
  • Strangulating bare-metal infrastructure to Containers Apr 10, 2020

    An incremental strangler-pattern migration from bare-metal Ansible deployments to Kubernetes with under a few minutes of production disruption.

    techinfrastructure
  • Patterns for microservices - Sync vs Async May 8, 2018

    Trade-offs between synchronous and asynchronous communication styles in a microservices architecture.

    techmicroservicesarchitecture
  • How I learned to love personal development Nov 17, 2014

    Finding structure in personal development so it doesn't get crowded out by delivery and deadlines.

    growth
  • Building Adaptive Mobile APIs with Legacy Services Nov 17, 2014

    An adaptive proxy layer between mobile apps and legacy backends to decouple release cadence, trim payloads, and aggregate sources.

    techapisarchitecture
  • Reinforced design with TDD Aug 18, 2014

    How TDD reinforces good object design — breaking problems into small units, forcing behavior-first thinking, and building a safety net for refactoring.

    techoop
  • Objects that talk domain Aug 18, 2014

    Why models should own behavior tied to the domain — and what's wrong with the data-transfer-object reflex many enterprise developers carry over.

    techoop
  • Objects that are loose and discrete Aug 18, 2014

    State vs behavior, Tell-Don't-Ask, unidirectional associations, Law of Demeter, and dependency injection — guidelines that keep object models loosely coupled.

    techoop
  • Design patterns for win Aug 18, 2014

    Why design patterns are worth learning — illustrated with Command and Strategy refactorings on the Mars Rover problem.

    techoop
  • Decoding ThoughtWorks' coding problems Aug 18, 2014

    An intro to a series on what "good code" means in the context of ThoughtWorks' interview code reviews, using the Mars Rover problem.

    techoop
  • Validating SSL certs in Mobile Apps Mar 30, 2014

    Preventing Man in the middle attacks with certification .

    techmobiledev