<!doctype html>
<html>
  <head>
    <title>Mary Rose Cook</title>
    <meta
      name="description"
      content="Essays, talks and projects by Mary Rose Cook"
    />
    <meta name="viewport" content="width = device-width" />
    <link
      type="text/css"
      rel="stylesheet"
      href="https://fast.fonts.net/cssapi/3ac768d8-7a5c-4fd8-b377-f61d7f1760fa.css"
    />

    <meta charset="utf-8" />
    <link rel="stylesheet" type="text/css" href="/css/homepage.css" />
  </head>

  <body>
    <div class="grid grid-pad">
      <div class="col-3-12 left-shunt"><div class="content"></div></div>
      <div class="col-9-12">
        <div class="content">
          <h1><a href="/">Mary Rose Cook</a></h1>
        </div>
      </div>

      <div class="col-3-12" style="height: 100%">
        <div class="content about">
          <h2>About</h2>

          <p>
            I live in San Francisco. I work as an AI Engineer at Notion on our
            agent.
          </p>

          <p>
            I've worked at Airtable as a staff product engineer, at Ableton and
            at the Recurse Center.
          </p>

          <p>
            Send me a <a href="https://x.com/maryrosecook">DM</a> if you want to
            get coffee in SF! I love to talk about building tools, making
            software authoring more accessible, and, of course, AI.
          </p>

          <!-- <p>
            I've made a
            <a href="https://www.youtube.com/watch?v=xy4uE8ZEqjA">game IDE</a>,
            two <a href="http://emptyblack.maryrosecook.com/">video</a>
            <a href="http://pistolslut.com">games</a>, and
            <a href="http://gitlet.maryrosecook.com">reimplemented Git</a> in
            JavaScript. I've spoken at JSConf and Strange Loop.
          </p> -->

          <p>
            Subscribe to my
            <a href="https://maryrosecook.substack.com/">newsletter</a>.
          </p>

          <p>
            <a href="https://x.com/maryrosecook">X</a>
            <a href="mailto:mary@maryrosecook.com">Email</a>
          </p>

          <p>
            <a href="/blog">Blog</a>
            <a href="https://github.com/maryrosecook">GitHub</a>
            <a href="/blog/post/books-ive-read">Books</a>
          </p>
        </div>
      </div>

      <div class="col-6-12">
        <div class="content">
          <h2>Projects</h2>

          <h3>
            <a
              href="https://maryrosecook.notion.site/maryrosecook/Build-software-faster-6c09597aa68c4dee9453e109fd1303f4"
              >Essays on agentic engineering</a
            >
          </h3>
          <p>
            <div><a href="/blog/post/using-encapsulated-development-to-code-on-my-phone"
              >Using encapsulated development to code on my phone</a
            ></div>
            <div><a href="/blog/post/code-generation-that-just-works"
              >Code generation that just works</a
            ></div>
            <div><a href="/blog/post/pressure-to-change"
              >Pressure to change</a
            ></div>
            <div><a href="/blog/post/using-ai-to-build-a-tactical-shooter"
              >Using AI to build a tactical shooter</a
            ></div>
            <div><a href="/blog/post/explore-expand-exploit"
              >Explore, expand, exploit</a
            ></div>
          </p>

          <h3>
            <a href="https://www.youtube.com/watch?v=xy4uE8ZEqjA">Fountain</a>
          </h3>
          <p>
            An app I made on my phone for making phone games on my phone.
            See a <a href="https://www.youtube.com/shorts/6E2tdiJt-mE">demo</a>.
          </p>

          <h3>
            <a
              href="https://maryrosecook.notion.site/maryrosecook/Build-software-faster-6c09597aa68c4dee9453e109fd1303f4"
              >Build software quickly</a
            >
          </h3>
          <p>
            I did independent research for two years on how to make it quicker
            to build software. Here are
            <a
              href="https://maryrosecook.notion.site/Hack-the-UI-of-a-to-do-app-to-make-programmable-to-dos-129f967a4d1343f390b78a56fc0fc7a0"
              >some</a
            >
            <a
              href="https://maryrosecook.notion.site/Don-t-build-phony-things-6ac118709c524c5ebf5a58a4d32d6878"
              >of</a
            >
            <a
              href="https://maryrosecook.notion.site/Request-for-Startups-Behavioral-Prototyping-309bcabaecdd4e259b3c7bca273e2599"
              >my</a
            >
            <a
              href="https://maryrosecook.notion.site/Tools-used-to-prototype-iOS-ee75fbffa3b442b5b9022ed0de97d969"
              >favorite</a
            >
            pieces from my
            <a
              href="https://maryrosecook.notion.site/maryrosecook/Build-software-faster-6c09597aa68c4dee9453e109fd1303f4"
              >research blog</a
            >.
          </p>

          <h3><a href="http://codelauren.maryrosecook.com">Code Lauren</a></h3>
          <p>
            An online
            <a href="http://codelauren.maryrosecook.com"
              >programming environment</a
            >
            for beginners. The user's program is rerun on every keystroke. They
            can run their program forwards and backwards. Watch this
            <a href="https://www.youtube.com/watch?v=KZyweusTNMI"
              >short screencast</a
            >
            showing the latest features or
            <a href="http://codelauren.maryrosecook.com">try it out</a>.
          </p>

          <h3><a href="http://gitlet.maryrosecook.com">Gitlet</a></h3>
          <p>
            Git implemented in
            <a href="http://gitlet.maryrosecook.com">1000 lines of JavaScript</a
            >. I wrote Gitlet to show how Git works under the covers. I wrote it
            to be readable and commented the code heavily. I used what I learned
            to write an
            <a href="/blog/post/git-from-the-inside-out">essay</a> and
            <a href="https://www.youtube.com/watch?v=fCtZWGhQBvo">talk</a> on
            the innards of Git.
          </p>

          <h3><a href="http://pistolslut.com">Pistol Slut</a></h3>
          <p>
            A 2D <a href="http://pistolslut.com">platform shooter</a>. Guns,
            grenades, parallax scrolling, particle effects. The enemies work in
            teams. The
            <a href="http://github.com/maryrosecook/pistolslut">code</a> is on
            GitHub. I wrote an article about the
            <a href="/blog/post/how-to-do-2d-collision-detection"
              >collision detection</a
            >. I
            <a href="https://www.youtube.com/watch?v=BYzvPhg4r8g">talked</a>
            about the game at JSConf.
          </p>

          <h3>
            <a
              href="https://music.apple.com/us/album/10997-ep/1595950662?uo=4&app=apple+music"
              >10997</a
            >
          </h3>
          <p>
            My latest record on
            <a
              href="https://music.apple.com/us/album/10997-ep/1595950662?uo=4&app=apple+music"
              >Apple Music</a
            >
            and
            <a href="https://open.spotify.com/album/2prtOWnF0VMYLjL527tvbC"
              >Spotify</a
            >. Recorded on my phone in my kitchen in Berlin.
          </p>

          <h3>
            <a href="https://www.youtube.com/watch?v=hbKN-9o5_Z0"
              >Mary livecodes Space Invaders</a
            >
          </h3>
          <p>
            I <a href="https://www.youtube.com/watch?v=hbKN-9o5_Z0">built</a> a
            clone of Space Invaders in front of 300 people at Front-Trends in
            Warsaw.
          </p>

          <h3>
            <a href="/blog/post/things-ive-made-and-done"
              >More things I've made</a
            >
          </h3>
        </div>
      </div>
    </div>

    <script>
      (function (i, s, o, g, r, a, m) {
        i["GoogleAnalyticsObject"] = r;
        ((i[r] =
          i[r] ||
          function () {
            (i[r].q = i[r].q || []).push(arguments);
          }),
          (i[r].l = 1 * new Date()));
        ((a = s.createElement(o)), (m = s.getElementsByTagName(o)[0]));
        a.async = 1;
        a.src = g;
        m.parentNode.insertBefore(a, m);
      })(
        window,
        document,
        "script",
        "//www.google-analytics.com/analytics.js",
        "ga",
      );

      ga("create", "UA-24453347-1", "auto");
      ga("send", "pageview");
    </script>
  </body>
</html>
