Writing

  • Checklists: How You Keep Standards Intact Under Speed

    In complex systems, the enemy is not ignorance.

    It’s cognitive overload.

    That’s why checklists work. Not because engineers can’t think, but because thinking under pressure is expensive. Your working memory shrinks. You miss the obvious. You forget the one step that matters.

    AI makes this better and worse at the same time.

    Better, because it can surface options and remind you of steps you forgot.

    Worse, because it can produce confident output that feels complete, even when it skipped the one check that would have caught the error.

    So the move is not “trust the model more” or “ban the model.”

    The move is: make correctness repeatable.

    A lightweight checklist does that, especially for the moments that matter:

    • Before you merge
    • Before you ship
    • Before you declare something “done”

    Three questions to keep in mind

    1. What would prove this wrong?
    2. What did we assume without verifying?
    3. What’s the blast radius if we’re wrong?

    Checklists aren’t bureaucracy.

    They’re how you keep your standards intact when speed is tempting.

  • From Solo Advantage to Shared Practice

    The first phase of AI adoption is private.

    You use it to move faster. You get better drafts. You ship more. It feels like a quiet advantage.

    Then the work hits the team boundary.

    Now the questions change:

    • Can someone review this confidently?
    • Can we reproduce the reasoning later?
    • Do we know what was verified vs generated?
    • Are we about to normalize “looks right” as a standard?

    This is the moment where “my prompts” stops mattering.

    What matters is shared practice.

    You don’t need a process overhaul. You need a few lightweight norms:

    • Disclosure: “AI drafted; I verified and adjusted.”
    • Risk tiers: stricter checks for higher blast radius.
    • Reviewability: diffs over dumps, criteria over vibes.
    • Artifacts: spec-lite for decisions, not paragraphs of explanation.

    AI can be a personal accelerator.

    But teams run on trust.

    And trust runs on things other humans can inspect.

  • Use AI to Widen Thinking, Use Evidence to Narrow Decisions

    AI is great at widening your thinking.

    It is not great at narrowing your decisions.

    That sounds subtle, but it explains a lot of the “why did we ship that?” moments.

    An LLM can brainstorm alternatives, surface edge cases, draft an implementation, even argue both sides. It’s a force multiplier for exploration.

    But commitment requires something different: evidence.

    • What requirement does this satisfy?
    • What constraint does this respect?
    • What test proves it works?
    • What could fail in production?

    If you let the tool make decisions by vibe, you get fast output and slow rework.

    If you use it to widen the solution space, then use checks to narrow the final choice, you get something better: speed you can trust.

    A practical pattern

    1. Explore wide with the model (options, tradeoffs, failure modes).
    2. Decide narrow with artifacts (acceptance criteria, diffs, tests, review).

    Use AI to widen thinking.

    Use evidence to narrow decisions.

  • Why AI Loops Can Compound Errors

    The risky part of AI-assisted engineering is not a single wrong answer.

    It’s a loop.

    Generate a draft. Apply it. Run into an error. Paste the error back. Generate a fix. Apply it. Repeat.

    That loop feels productive because something is always happening.

    But loops compound mistakes. A small misunderstanding in step one can turn into a large, confident mess by step five, especially when the tool is optimizing for momentum instead of truth.

    If you want speed and correctness, you need stop conditions and guardrails.

    Guardrails that keep loops honest

    • Time-box the loop: “Two retries, then reassess the approach.”
    • Force diffs, not dumps: “Propose a minimal patch, not a full rewrite.”
    • Pin the intent: “Restate the goal and constraints before changing code.”
    • Add a verification step: “What tests or checks prove this fix is correct?”
    • Escalate when the error repeats: “If the same symptom appears twice, stop and diagnose.”

    The goal is not to slow the tool down.

    It’s to keep the tool from dragging you forward in the wrong direction.

  • Acceptance Criteria: The Fastest Reliability Upgrade

    A lot of “AI bugs” aren’t bugs.

    They’re missing acceptance criteria.

    If you ask an LLM to “build the feature,” it will build a feature. Usually a plausible one. Sometimes even a good one.

    But plausibility is not correctness.

    The fastest way to turn AI-assisted work from vibe-driven to reviewable is to write acceptance criteria before you generate anything. Not as bureaucracy. As a forcing function.

    A simple acceptance-criteria pattern

    • Inputs: what the system receives
    • Outputs: what it must produce
    • Rules: what must always be true
    • Edge cases: what can’t break
    • Failure behavior: what it should do when it cannot proceed

    Then give the model a job that’s actually tractable:

    “Given these criteria, propose an implementation plan. Highlight any ambiguous or conflicting requirements.”

    What changes immediately

    1. You catch the missing decisions while they’re still cheap.
    2. Review becomes about whether criteria are satisfied, not whether the output “looks right.”

    If you want reliability, don’t start with generation.

    Start with a definition of done.

  • A One-Page Spec: How You Keep Good Thinking From Evaporating

    The most expensive part of AI-assisted work is not the first draft.

    It’s the second Tuesday.

    You have a great working session. The model helps you explore options, sketch a design, generate a starter implementation. You feel momentum.

    Then time passes. Context evaporates. Someone asks, “Why did we do it this way?” and you realize the reasoning never made it out of the chat.

    That’s wherea lightweight one-page spec earns its keep.

    Not a 12-page design doc. Not process theater.

    This one-page artifact captures the minimum needed for continuity:

    • Purpose: what problem we’re actually solving
    • Constraints: performance, security, interfaces, deadlines
    • Decisions: what we chose and what we rejected
    • Acceptance criteria: how we’ll know it’s done
    • Risks / unknowns: what could bite us later

    If you’re using AI as a thinking partner, a spec is how you keep authorship.

    It turns a productive session into a durable decision.

    Without it, you don’t have a design.

    You have a vibe.

  • “Hallucinations” Are Often a Context Problem

    Most “hallucinations” aren’t random.

    They’re what happens when you leave a gap and ask a system built to complete patterns to keep going anyway.

    LLMs are not shy about uncertainty. They will produce a clean, fluent answer that sits right on top of missing context. Not because they’re trying to deceive you, but because the engine is optimized to continue the most likely sequence.

    If you want reliability, your job is not “tell it to stop hallucinating.”

    Your job is to make guessing expensive and stopping easy.

    Simple guardrails that help

    • Ask for uncertainty up front: List what you would need to know to be confident.
    • Force a boundary: If information is missing, say 'INSUFFICIENT INFO' and stop.
    • Separate facts from inferences: Two sections: Verified vs Assumptions.
    • Require sources when it matters: Cite where each claim comes from.

    The mindset shift

    When the output is wrong, don’t only blame the model.

    First ask: Did I leave it room to guess?

  • Context Windows Explained (Without the Math)

    People talk about context windows like they’re mystical. Measured in tokens. Measured in miles. Measured like horsepower.

    Bigger is better, right?

    The important part isn’t the number.

    It’s the constraint.

    A context window is simply how much the model can hold in working memory at once.

    Think of it like your own working memory: you can juggle a handful of thoughts, but you can’t keep the entire encyclopedia active at the same time.

    LLMs work the same way.

    They don’t “know” everything at once. They load what’s relevant, then reason from that slice.

    And when the window fills, something has to go.

    Not because the model is weak, but because reasoning requires focus. Breadth dilutes clarity. Detail competes with detail.

    The real skill isn’t feeding everything in.

    It’s deciding what belongs inside the window.

    When you treat context as a budget, a few things change immediately:

    • Prompts become architecture, not requests
    • Relevance becomes a performance feature
    • Retrieval becomes your external memory

    The tool didn’t get smarter when you pasted more in.

    You got smarter when you chose what mattered.

  • The AI Engineer Is No Longer a Future Role

    At the start of 2025, a lot of companies still talk about “AI Engineers” as if they’re preparing to hire them someday—a future-facing job title, a next-phase capability, something they’ll address after policies mature and systems settle.

    It still sounds like a specialty. A niche discipline. A role you grow into once you’ve mastered everything else.

    But anyone building software this year knows the truth:

    The AI engineer is no longer a future role. It’s the role we’re already practicing.

    Not because everyone suddenly became an ML researcher, but because generative AI is threaded into the daily work of engineering. We design, test, debug, reason, plan, and refactor alongside systems that respond in plain language and accelerate cognitive load.

    Typing code is no longer the bottleneck. Thinking is.

    What “AI engineer” means in practice

    An AI engineer today is someone who can:

    • Translate ambiguity into structured intent the model can act on
    • Prompt like they architect: with clarity, constraints, and foresight
    • Debug reasoning, not just syntax
    • Know when to trust and when to verify
    • Guide multiple tools instead of embodying one
    • Use intelligence as infrastructure, not novelty

    This isn’t tomorrow’s job description

    This is how work is already happening, even if few have named it.

    The role didn’t emerge in a single moment. It arrived through a thousand small workflow shifts.

    As 2025 closes, we aren’t preparing for the AI engineer era. We’re living in it.

    The future didn’t wait for an invitation. It joined the team.

  • The Comeback of Good Writing in Engineering

    For years, writing was treated as a soft skill in engineering—nice to have, occasionally valued, often underappreciated. We rewarded clever architectures, optimizations, elegant abstractions.

    The written word? It lived in README files nobody read, Jira tickets with cryptic shorthand, and comments written only for our future selves to decode.

    But with AI entering the workflow, something curious is happening.

    Good writing is becoming a core engineering skill again

    Not because prose is romantic or expressive (though it can be), but because clarity is now a performance multiplier.

    The better we articulate intent, constraints, edge cases, and desired outcomes, the better our tools execute. A vague idea produces vague code. An imprecise prompt produces imprecise behavior.

    The bottleneck is no longer typing. It’s thinking—and writing is thinking made visible.

    AI doesn’t eliminate writing. It punishes sloppy thinking and rewards structured thought.

    What we’re rediscovering

    • Clear writing reveals unclear reasoning
    • Good prompts are just good specs in disguise
    • Ambiguity creates rework, whether human or machine
    • Precision isn’t pedantry. It’s leverage.

    We’re entering a world where the engineers who communicate clearly will lead. Where documentation and design docs stop being chores and become control surfaces. Where writing is not a status report—it’s an interface to intelligence.

    The pen didn’t go extinct. It just became the keyboard.

    And now the keyboard is becoming a conductor’s baton.

    Good writing is coming back—not as decoration, but as architecture.