My thoughts, ideas, experiences, and ramblings
My writing on this website will span many different topics, ranging from
web standards, tutorials, mental health, thoughts and ideas, and general
musings. While the bulk of my writing will be technical in nature it will
vary from long form to short form and sometimes include video and audio.
Some content will be beginner-friendly, while other pieces will be geared
towards those who have been building for the web for some time.
On the last point, please note that I might occasionally misjudge the
experience level required for certain content. If you find something where
you believe I've got it wrong, please let me know on GitHub, and I would be happy to correct it.
To help you find the content you're interested in, I offer different ways
to browse my writing. Below, you'll find a list of tags to filter content
by topic. Additionally, all my writing is listed chronologically, allowing
you to scroll through or use your browser's find-in-page functionality to
locate something specific.
As with most things, this website will evolve and improve over time based
on the time I have to work on it and your feedback and suggestions.
One of the first features I want to add is the ability to search for
content across the blog. I believe a well-implemented search feature is
one of the most powerful navigational tools, enhancing usability and
accessibility. I plan to experiment with different implementations, and
once available, I would appreciate your feedback on the search results to
ensure the best possible experience.
I hope you find value in the writing you discover here.
Browse all posts
-
In late December of 2023, TPGi posted its list of the top accessibility errors found through its ARC automation tools in 2023. In this post I explain these errors and offer a solution.
-
In this post, I share 21 pieces of unsolicited advice for junior web developers. I emphasize the challenges of learning web development, encourage collaboration, and highlight the importance of web accessibility. Additionally, I discuss bootcamps, university degrees, and the value of learning to code.
-
How to cancel asynchronous operations with the AbortController API.
-
Learn how to filter documents in a MongoDB collection by the size of an array field.
-
An introduction to Flexsearch and its tokenizers through writing and interpreting tests.
-
It’s October, which means pumpkins, candy, costumes, and Hacktoberfest. If you are completely new to open source and contributing on Github, but want to join in the fun, read on.
-
Git rebase is a powerful tool that allows developers to reorganize and clean up their commit history, such as by squashing or fixup-ing multiple commits into a single commit, which can be useful when submitting pull requests.
-
When running your Playwright tests, how do you load a different set of data based on the current execution environment?
-
Let’s work through the process of improving a basic GitHub Action CI workflow to cover multiple Node.js versions and operating systems.
-
A quick post on best practices when installing Nodejs on different platforms and managing multiple versions.
-
Ok so, this is very different from what I usually post. It is also, hands down, the hardest post I have ever written. But, there is no point in keeping this to myself. No achievement is unlocked by suffering in silence. No medal for pretending everything is A-OK.
-
How do I merge one repository into another without losing commit history? This is a quick guide on how to do this.
-
While this post does not by any means aim to cover all the amazing things you can do with Intl.NumberFormat, I do cover two very common use cases you may have faced when formatting numbers in JavaScript.
-
A step by step guide to publishing a simple CLI tool to the NPM registry.
-
Some thoughts on the current state and challenges with regards to building a PWA in 2021.
-
Sensible defaults for your Open Source project and community.
-
Could it be that the == operator in JavaScript had a bad rap and it’s time to reconsider it?
-
This post will look at starting a new Vue project using the Vite toolchain.
-
How do you style the cursor in CodeMirror 5? Also, how can you do this for light and dark themes? Let's take a look.
-
There are a couple of steps to take when switching from the older babel-eslint to the newer @babel-eslint. No worries, I'll show you how.
-
The topic of Polyfill.io and its sale came across my radar about a week ago when Tobie Langel shared a link to LinkedIn on the OpenJS Foundation Slack.
-
How do I handle type inference challenges with v-for in Vue 3 templates using TypeScript? Let's find out more.
-
Using the Nodejs EventEmitter with GitHub webhooks
-
My takeaways from Zach Leatherman's talk on web components at the 2023 JSHeroes conference.
-
Perhaps it is the social bubble I find myself in, but it seems there is a lot of talk about gatekeeping happening at the moment. While the bubble metaphor does not quite work for what will follow, I do not have a better one, so humor me.
-
Why you should be careful copying and pasting proposed solutions from LLMs.
-
Usng the special Vuejs is attribute to fix common DOM parsing caveats.
-
In this post I share how open source empowers me as a developer, fosters community collaboration, and provides a platform for making a meaningful impact. Being part of the open source community is the best way for anyone new to the technology industry to gain experience and contribute to cool projects.
-
In this post, I discuss why I care deeply about web accessibility, emphasizing its importance in ensuring equal access for people with disabilities and removing barriers to interaction with websites and applications.