👋 I'm Cam McHenry

I am a software engineer that is passionate about building great web applications. Currently, I work at GitHub and I live in State College, Pennsylvania.

I often write about TypeScript and React in my blog, and occasionally write some useful tools.

Featured work

  • How to write custom ESLint rules for your project

    ESLint is a great tool for analyzing code, but it can be a bit of a hassle to set up when it comes to making your own rules. This is a quick guide on how to create a TypeScript ESLint plugin, write a custom rule, and write tests for it.

  • Everything You Need To Know About TypeScript Union Types

    Union types are a powerful feature of TypeScript to ergonomically model a finite number of mutually exclusive cases and ensure that every case is handled safely.

  • TypeScript Type Guards Explained

    Type guards are conditional checks that allow types to be narrowed from general types to more specific ones. With type guards, we do run-time type checking and ensure that code is safe.

Recent posts

  • How I write accessible Playwright tests

    Five practical tips for writing tests to check the accessibility of web applications with Playwright, as well as generally improve the robustness of end-to-end tests.

  • How to test accessible descriptions with Playwright

    Playwright recently added support an assertion to check accessible descriptions and labels, allowing you to more easily test the accessibility of elements in your web application.

  • Mini-skills

    Mini-skills are small, focused skills that can be learned and used within a short amount of time.