To search for a particular topic, use your browser's "Find" feature.

You can also subscribe to the RSS feed.

All articles

  1. Emulate iPhone & iPad in Safari

    Simulating your web pages on Apple devices is easy with Safari's responsive design mode

  2. Make a POST request with fetch

    A sample POST with fetch for those of us who can never remember how.

  3. Remove an item at a given index in JavaScript

    Sidestep slicing and splicing and use Array's filter method for a no-hassle solution.

  4. Tab focus not working in Safari?

    For some unknown reason, you need to enable tab highlighting in the browser's settings.

  5. The Economics of Software Development, Part III

    Demand inelasticity in web development, why its bad, and what we can do about it.

  6. Fix 'EMFILE: too many open files' error in Jest

    When trying to run Jest in watch mode, this error may mean that you are missing a dependency.

  7. Updated TypeScript mega-course on

    Reviewing and updating my TypeScript mega-course on

  8. The Economics of Software Development, Part II

    Why developers should rely on markets to make the best decisions for their product

  9. Access the home directory in Deno

    Using Deno's environment to determine your computer's home directory

  10. The Economics of Software Development, Part I

    How developers can reduce opportunity costs and avoid the sunk-cost fallacy

  11. Garden

    Before You Debug

    An organized approach to debugging your code

  12. Intro to "The Economics of Software Development"

    Introducing a new series on how economics helps explain the decisions we make when developing software

  13. Nodemon for Deno

    Denon is a utility for Deno that provides source watching and process restarting just like Nodemon

  14. Adding images to my articles

    How the right design and process for sourcing images made all the difference for me

  15. Parse argument aliases in Deno

    Using Deno's standard flags module to parse command-line arguments with aliases

  16. Await multiple promises in JavaScript

    By calling your asynchronous functions before awaiting, you can save valuable time in your JavaScript programs

  17. TypeScript mega-course on

    Creating a playlist to learn TypeScript

  18. Six video update

    Lessons learned from publishing six videos on YouTube

  19. Read a json file in Deno

    How to use Deno's standard library to read and parse data from a json file.

  20. Read a json file in Node.js

    How to use Node.js's file system to read and parse data from a json file.

  21. Publishing my first YouTube video

    Why I started a YouTube channel and what I learned in the process

  22. How to get the browser and version in JavaScript

    A brief journey into the dangerous world of user agent sniffing

  23. Logging with Eleventy and Nunjucks

    Adding a simple filter to save you a lot of grief.

  24. Store readable data

    When forced between storing data for humans or computers, choose the former.

  25. Garden

    Over my head

    A list of articles, topics, and resources that are currently over my head

  26. MagnoliaJS 2020 conference notes

    Some notes from the talks that I was able to attend

  27. How to open the Dev Tools

    A comprehensive guide for opening the dev tools in Chrome and Firefox

  28. Tools for custom Slack emojis

    The full toolbelt for making your own custom Slack emojis

  29. Garden

    Great programming reads

    A list of articles, books, and resources for software engineers

  30. Free to grow

    Why tests (should) free you to grow with confidence

  31. How to check npm scripts in current directory

    Writing a script to read the package.json for you

  32. How to remove duplicates from an object array?

    Not as easy as we'd like it, but not as hard as it could be

  33. A new Twitter handle

    Kicking off 2020 with (yet another) new handle

  34. What default parameters do (and don't do)

    Correcting my mental model

  35. Reviewing 2019 goals

    Checking in on the goals I set for myself in 2019

  36. "Stop Teaching Code" in JavaScript

    A quick review of Jeff Olson's article on teaching code with translated examples

  37. 5 Lessons from 10k open-source downloads

    A few things I've learned from managing a modestly popular open-source package.

  38. Should I snapshot my UI components?

    The temptation is strong, but consider some of the tradeoffs.

  39. Lessons Learned at Abstractions 2019

    Some notes and thoughts from Pittsburgh's cross-discipline software conference

  40. Edit a previous commit message

    The steps to edit recent or ancient commit messages

  41. Arguments or parameters?

    An attempt to remember the difference between the two

  42. How to pronounce my name

    A guide to pronounce my often-mispronounced name

  43. Add event listener for class change

    How to create a custom event listener for class names using the MutationObserver API

  44. Storing data in state vs. class variable

    Why do we store data in state as opposed to on the class?

  45. Filter out premium Medium articles

    Using a console script to alter the content on a webpage

  46. Adding accessibility checks to your React app

  47. Three reasons to learn Python

  48. JS Basics: Generate a random number

    Using JavaScript's Math object to generate random numbers

  49. JS Basics: Ternary Operator

    Demystifying the inline if statement

  50. Convert class components to functions with React Hooks

    A step by step guide to converting old components to modern React

  51. Accessibility Wednesday

    Learning and sharing about accessibility for everyone

  52. 2018 into 2019

    Reflecting on last year while looking forward to next

  53. Why a blog?

    An effort to preserve my content on the ever-changing web