<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <title>Trevor Burnham: Author of Test-Driven React</title>
  <link rel="icon" href="favicon.png" type="image/png">
  <link rel="preload" href="fonts/Bangers.woff2" as="font" type="font/woff2" crossorigin>
  <link rel="preload" href="fonts/Oswald.woff" as="font" type="font/woff" crossorigin>
  <meta name="description" content="Home page of Trevor Burnham, software engineer">
  <link rel="stylesheet" href="css/style.css">
  <meta name="viewport" content="width=device-width, initial-scale=1">
</head>

<body>
  <header>
    <div class="flex-center">
      <h1>Trevor Burnham</h1>
    </div>
  </header>

  <a name="bio"></a>
  <section class="bio">
    <div class="bio-column">
      <h2 class="sr-only">About me</h2>
      <div class="flex-center">
        <picture class="avatar-image">
          <source srcset="images/Trevor_Burnham_meets_Chewbacca.webp" type="image/webp">
          <img src="images/Trevor_Burnham_meets_Chewbacca.jpg" loading="lazy" />
        </picture>
      </div>
      <p>
        Hi! <span role="img">👋🏻</span> I’m Trevor Burnham, author of several books on
        JavaScript, most recently <a href="//pragprog.com/titles/tbreact2/test-driven-react-second-edition">
          Test-Driven React: Second Edition
        </a> (2024) and <a href="//www.manning.com/books/secrets-of-the-javascript-ninja-third-edition?utm_source=burnham&utm_medium=affiliate&utm_campaign=book_despoudis&a_aid=burnham&a_bid=d83873a0">
          Secrets of the JavaScript Ninja: Third Edition
        </a> (currently in Early Access). My
        areas of
        expertise run the gamut
        from <abbr title="user experience">UX</abbr> to <abbr title="accessibility">a11y</abbr> to reliability and
        performance. I <span role="img" aria-label="love">❤️</span> making web apps better!
      </p>

      <p>You can peruse my
        résumé on <span role="img">👔</span>&nbsp;<a href="//linkedin.com/in/trevorburnham/">LinkedIn</a>, follow me on <span role="img">🦋</span>&nbsp;<a href="//bsky.app/profile/trevorburnham.com">Bluesky</a> and check out my
        open-source
        work on <span role="img">🐙</span>&nbsp;<a href="//github.com/trevorburnham">GitHub</a>.</p>

      <p>If you have a
        project I might
        be
        interested in, <span role="img">📬</span> <a href="/cdn-cgi/l/email-protection#90e4e2f5e6ffe2f2e5e2fef8f1fdd0f7fdf1f9fcbef3fffd">email me</a>.</p>
    </div>
  </section>

  <a name="book"></a>
  <section class="book">
    <h2 class="sr-only">About Test-Driven React</h2>
    <div class="book-column">
      <div class="flex-columns">
        <div class="flex-column">
          <a href="//pragprog.com/titles/tbreact2/test-driven-react-second-edition">
            <picture class="book-image">
                <source srcset="images/Test-Driven_React_2E.webp" type="image/webp">
                <img src="images/Test-Driven_React_2E.jpg" loading="lazy" />
            </picture>
          </a></div>
        <div class="flex-column book-quotes">
          <blockquote><emph>Test-Driven React</emph> goes into great detail on how to set up testing React components in modern applications. By following the steps Trevor has clearly outlined, you’ll be up and testing in no time.</blockquote>
          <cite>Kent C. Dodds, creator of React Testing Library</cite>
          <blockquote>Test-Driven React is a masterclass in setting up a productive development workflow, in such a simple, clear, and concise language that it’s a joy to read and reread.</blockquote>
          <cite>Tibor Simic, Senior Developer at IBM</cite>
          <blockquote>An incredibly comprehensive guide to improving the testing and development workflows of React
            developers at any experience level.</blockquote>
          <cite>Adam Markon, Frontend Engineer at HubSpot</cite>
        </div>
      </div>
      <blockquote class="excerpt">The spirit of test-driven development extends beyond writing tests before you write
        code. The goal is to set up a constructive feedback loop for yourself, to identify potential problems quickly
        and give yourself
        the freedom to explore potential improvements. Tests are only a means to that end. Sometimes, you’ll want to set
        tests aside and focus on other sources of feedback. The important thing is to always think ahead: before you
        start writing a piece of code, ask yourself what the most valuable feedback you could receive for that code
        would be. Then take steps to make it a reality.</blockquote>
      <blockquote class="excerpt">Every time your eyes leave your code, you experience what’s known as a context switch.
        Returning to your code, it’s common to feel disoriented, even lost. A workflow that requires you to actively
        switch between your code and your tests will sap your ability to focus. Strive to make running your tests as
        automatic as breathing.</blockquote>
      <blockquote class="excerpt">With the new code still fresh in your mind, you can experiment. Try a different
        approach. Use cleaner syntax. Refactor. As soon as you save, the test console will tell you if your revision is
        viable. With just a few extra minutes, you can almost always find a way to make your code better. More
        importantly, what you learn from these little ventures will make you a better coder.</blockquote>
      <div class="flex-center">
        <a class="cta-link" href="//pragprog.com/titles/tbreact2/test-driven-react-second-edition">Buy direct from PragProg</a>
      </div>
    </div>
  </section>

  <template id="scroll-link-template">
    <a class="scroll-link fade-on-scroll" aria-hidden="true" tabindex="0">
      <svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100">
        <path class="st0"
          d="M50,5C25.1,5,5,25.1,5,50s20.1,45,45,45s45-20.1,45-45C95,25.1,74.9,5,50,5z M51.4,76.4L51.4,76.4 c-0.8,0.8-2,0.8-2.8,0l0,0l-32-32c-0.6-0.6-0.6-1.6-0.2-2.3c0,0,1.5-3.1,4.5-6.1c3-3,6.1-4.5,6.1-4.5c0.7-0.4,1.7-0.4,2.3,0.2 L50,52.3l20.7-20.7c0.6-0.6,1.6-0.6,2.3-0.2c0,0,3.1,1.5,6.1,4.5c3,3,4.5,6.1,4.5,6.1c0.4,0.7,0.4,1.7-0.2,2.3L51.4,76.4z">
        </path>
      </svg>
    </a>
  </template>

  <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script src="js/script.js"></script>
</body>

</html>
