<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Notes to self · Marcus Michaels</title>
  <id>https://marcusmichaels.com/notes/</id>
  <link href="https://marcusmichaels.com/notes/"/>
  <link rel="self" href="https://marcusmichaels.com/notes/feed.xml"/>
  <updated>2026-07-07T00:00:00Z</updated>
  <author><name>Marcus Michaels</name></author>
  <entry>
    <title>Run two versions of the same npm package</title>
    <link href="https://marcusmichaels.com/notes/run-two-versions-of-the-same-npm-package/"/>
    <id>https://marcusmichaels.com/notes/run-two-versions-of-the-same-npm-package/</id>
    <updated>2026-07-07T00:00:00Z</updated>
    <summary>How to run two versions of the same npm package at once. Install the new one under an npm alias, shim its binary under a name of its own, and point one script at it. The working example is TypeScript 7's RC.</summary>
  </entry>
  <entry>
    <title>Running background agents, for humans</title>
    <link href="https://marcusmichaels.com/notes/running-background-agents-for-humans/"/>
    <id>https://marcusmichaels.com/notes/running-background-agents-for-humans/</id>
    <updated>2026-07-05T00:00:00Z</updated>
    <summary>An AI agent that works in its own throwaway worktree, in the background, and comes back as a pull request you review.</summary>
  </entry>
  <entry>
    <title>Ice cream flavoured Vim</title>
    <link href="https://marcusmichaels.com/notes/ice-cream-flavoured-vim/"/>
    <id>https://marcusmichaels.com/notes/ice-cream-flavoured-vim/</id>
    <updated>2026-07-03T00:00:00Z</updated>
    <summary>Vim Scoops is a browser game that teaches Vim motions by steering an ice cream truck to its customers.</summary>
  </entry>
  <entry>
    <title>The changelog that writes itself</title>
    <link href="https://marcusmichaels.com/notes/local-llms-in-github-actions/"/>
    <id>https://marcusmichaels.com/notes/local-llms-in-github-actions/</id>
    <updated>2026-06-26T00:00:00Z</updated>
    <summary>Run a small language model on a GitHub Actions runner, with no API key and no data leaving the box. Our working example is a weekly changelog that writes itself and posts to Slack every Friday.</summary>
  </entry>
  <entry>
    <title>Work on multiple branches at once with git worktrees</title>
    <link href="https://marcusmichaels.com/notes/git-worktrees/"/>
    <id>https://marcusmichaels.com/notes/git-worktrees/</id>
    <updated>2026-06-25T00:00:00Z</updated>
    <summary>A worktree is a separate working copy backed by the same repo. Keep your current checkout untouched whilst you build on another branch next door, then throw it away.</summary>
  </entry>
  <entry>
    <title>Run everything in one terminal with screen</title>
    <link href="https://marcusmichaels.com/notes/run-everything-in-one-terminal-with-screen/"/>
    <id>https://marcusmichaels.com/notes/run-everything-in-one-terminal-with-screen/</id>
    <updated>2026-06-18T00:00:00Z</updated>
    <summary>screen is a terminal multiplexer that holds every session in one window, keeps them alive when you walk away, and reattaches from anywhere.</summary>
  </entry>
  <entry>
    <title>The big O cheatsheet</title>
    <link href="https://marcusmichaels.com/notes/big-o-notation/cheatsheet/"/>
    <id>https://marcusmichaels.com/notes/big-o-notation/cheatsheet/</id>
    <updated>2026-06-17T00:00:00Z</updated>
    <summary>Every shape, data-structure costs, the recipe, and the survival table.</summary>
  </entry>
  <entry>
    <title>The data structures to know by heart</title>
    <link href="https://marcusmichaels.com/notes/big-o-notation/data-structures/"/>
    <id>https://marcusmichaels.com/notes/big-o-notation/data-structures/</id>
    <updated>2026-06-17T00:00:00Z</updated>
    <summary>What arrays, hash maps, trees, and heaps cost, and why you should &quot;just use a Set&quot;.</summary>
  </entry>
  <entry>
    <title>What Θ, Ω, and O really mean</title>
    <link href="https://marcusmichaels.com/notes/big-o-notation/formal-definitions/"/>
    <id>https://marcusmichaels.com/notes/big-o-notation/formal-definitions/</id>
    <updated>2026-06-17T00:00:00Z</updated>
    <summary>The formal definitions; O, Ω, and Θ, and the one-line maths behind &quot;drop the constants&quot;.</summary>
  </entry>
  <entry>
    <title>What space complexity is</title>
    <link href="https://marcusmichaels.com/notes/big-o-notation/space-complexity/"/>
    <id>https://marcusmichaels.com/notes/big-o-notation/space-complexity/</id>
    <updated>2026-06-17T00:00:00Z</updated>
    <summary>The other axis; how much extra memory an algorithm needs, and the memory-for-speed trades you'll make.</summary>
  </entry>
  <entry>
    <title>How I wish I was taught big O notation</title>
    <link href="https://marcusmichaels.com/notes/big-o-notation/"/>
    <id>https://marcusmichaels.com/notes/big-o-notation/</id>
    <updated>2026-06-16T00:00:00Z</updated>
    <summary>Big O, built in an ice cream van. A feel for how an algorithm's cost grows, then the notation behind it.</summary>
  </entry>
  <entry>
    <title>How to work out the big O of your code</title>
    <link href="https://marcusmichaels.com/notes/big-o-notation/reading-your-code/"/>
    <id>https://marcusmichaels.com/notes/big-o-notation/reading-your-code/</id>
    <updated>2026-06-16T00:00:00Z</updated>
    <summary>A three-step recipe for reading the big O off any function; find the loops, multiply or add, drop the constants.</summary>
  </entry>
  <entry>
    <title>Why sorting is O(n log n)</title>
    <link href="https://marcusmichaels.com/notes/big-o-notation/sorting-and-logarithms/"/>
    <id>https://marcusmichaels.com/notes/big-o-notation/sorting-and-logarithms/</id>
    <updated>2026-06-16T00:00:00Z</updated>
    <summary>Logarithms without fear, and why a good sort (and JS's .sort()) is O(n log n) in time.</summary>
  </entry>
  <entry>
    <title>Which complexities are too slow</title>
    <link href="https://marcusmichaels.com/notes/big-o-notation/too-slow/"/>
    <id>https://marcusmichaels.com/notes/big-o-notation/too-slow/</id>
    <updated>2026-06-16T00:00:00Z</updated>
    <summary>Where O(2ⁿ) and O(n!) come from, and the rule of thumb for what size of input each shape survives.</summary>
  </entry>
  <entry>
    <title>What big O actually is</title>
    <link href="https://marcusmichaels.com/notes/big-o-notation/what-big-o-is/"/>
    <id>https://marcusmichaels.com/notes/big-o-notation/what-big-o-is/</id>
    <updated>2026-06-16T00:00:00Z</updated>
    <summary>n is the size of the input, and big O is how the work grows as it gets bigger.</summary>
  </entry>
  <entry>
    <title>How big should a pull request be?</title>
    <link href="https://marcusmichaels.com/notes/how-big-should-a-pull-request-be/"/>
    <id>https://marcusmichaels.com/notes/how-big-should-a-pull-request-be/</id>
    <updated>2026-06-15T00:00:00Z</updated>
    <summary>Small, and about one thing. The size that keeps a change reviewable, and why that sets a team's pace.</summary>
  </entry>
  <entry>
    <title>Undo almost anything with git reflog</title>
    <link href="https://marcusmichaels.com/notes/git-reflog/"/>
    <id>https://marcusmichaels.com/notes/git-reflog/</id>
    <updated>2026-06-14T00:00:00Z</updated>
    <summary>A bad reset, lost commits, a branch you deleted by mistake. The reflog gets them back, because git rarely throws a commit away.</summary>
  </entry>
  <entry>
    <title>Ask the history</title>
    <link href="https://marcusmichaels.com/notes/grep-like-an-llm/ask-the-history/"/>
    <id>https://marcusmichaels.com/notes/grep-like-an-llm/ask-the-history/</id>
    <updated>2026-06-12T00:00:00Z</updated>
    <summary>When the code won't explain itself, the commits usually will.</summary>
  </entry>
  <entry>
    <title>The cheatsheet</title>
    <link href="https://marcusmichaels.com/notes/grep-like-an-llm/cheatsheet/"/>
    <id>https://marcusmichaels.com/notes/grep-like-an-llm/cheatsheet/</id>
    <updated>2026-06-12T00:00:00Z</updated>
    <summary>Every command from the series, in one place.</summary>
  </entry>
  <entry>
    <title>Find the door</title>
    <link href="https://marcusmichaels.com/notes/grep-like-an-llm/find-the-door/"/>
    <id>https://marcusmichaels.com/notes/grep-like-an-llm/find-the-door/</id>
    <updated>2026-06-12T00:00:00Z</updated>
    <summary>Entry points. Start from the text on screen, the names of files, and the lines around a match.</summary>
  </entry>
  <entry>
    <title>Follow the data</title>
    <link href="https://marcusmichaels.com/notes/grep-like-an-llm/follow-the-data/"/>
    <id>https://marcusmichaels.com/notes/grep-like-an-llm/follow-the-data/</id>
    <updated>2026-06-12T00:00:00Z</updated>
    <summary>Read the types first, match the word rather than the substring, and find who writes a value.</summary>
  </entry>
  <entry>
    <title>Grep like an LLM</title>
    <link href="https://marcusmichaels.com/notes/grep-like-an-llm/"/>
    <id>https://marcusmichaels.com/notes/grep-like-an-llm/</id>
    <updated>2026-06-11T00:00:00Z</updated>
    <summary>How to find your way around any codebase with grep, git, and a method borrowed from an AI agent.</summary>
  </entry>
  <entry>
    <title>Make a map, don't read</title>
    <link href="https://marcusmichaels.com/notes/grep-like-an-llm/make-a-map/"/>
    <id>https://marcusmichaels.com/notes/grep-like-an-llm/make-a-map/</id>
    <updated>2026-06-11T00:00:00Z</updated>
    <summary>The heat map and the file list. Locating a feature before opening a single file.</summary>
  </entry>
  <entry>
    <title>Playbook</title>
    <link href="https://marcusmichaels.com/notes/grep-like-an-llm/playbook/"/>
    <id>https://marcusmichaels.com/notes/grep-like-an-llm/playbook/</id>
    <updated>2026-06-11T00:00:00Z</updated>
    <summary>Why maps beat reading, and the method in full before the modules begin.</summary>
  </entry>
  <entry>
    <title>How this site is built</title>
    <link href="https://marcusmichaels.com/notes/how-this-site-is-built/"/>
    <id>https://marcusmichaels.com/notes/how-this-site-is-built/</id>
    <updated>2026-06-10T00:00:00Z</updated>
    <summary>Markdown, a small build script, and modest-ui. The setup behind these notes.</summary>
  </entry>
</feed>
