I've been working remotely since 2019, well before it became mainstream (though lately, it feels like that's shifting again 🫠). My WFH setup is very comfortable but I like to get outside the four walls of my home office every once in a while. This usually means coffee shops, co-working spaces, or…
My favorite resource for deciding when to add an alt tag is the Alt Decision Tree from the W3C. In addition to being a useful guide, it highlights something that isn't well known – null alt tags are not only perfectly acceptable, but even encouraged. Decorative images, as the name implies, don't add…
It makes me faster, but I didn't ask to go faster. Like someone who suddenly gets a superpower, is it irresponsible to not use it? Does the answer change when everyone was given the superpower? I struggled to call myself a developer for years because it felt like I hadn't earned it. Eventually, I…
I spent more time in Jira than I care to remember during my time as Tech Lead on my last team. Shuffling things from one column to the next, agonizing over the burndown chart, and most importantly, writing tickets. My tickets were solid. Anyone on the team (or more importantly, not on the team)…
I love JavaScript’s quirks. They can be frustrating, but I still get a kick out of noticing them. TypeScript is great at calling these out. Recently, I tried something simple: window.location = "some string" Type 'string' is not assignable to type 'Location'. Wat. I almost slapped on a @ts-ignore,…
If you’ve ever tried to track an empty directory with Git, you might have noticed the message “nothing to commit, working tree clean” after running git status. That’s because Git doesn’t track folders — it tracks files. Running git add will add only the files inside . If is empty, running git add…
Because Over-Engineering Is Fun Let's face it, resumes are boring. You know what's not boring? LaTeX (citation needed). What if we combine resumes, LaTeX, and an automated build pipeline to solve a problem no one has? The end result is a Git repo with my resume and a URL that always has the latest…
I end up reading documentation on search param APIs every time I need to work with them. This looks like me tabbing back and forth between MDN’s URL and URLSearchParams pages until I find what I’m looking for. After doing this enough times, I’ve realized I could do better. Thus, this post. It…
1. Extract compound conditionals to methods Compound conditionals, or pieces of logic comprised of two conditions, are almost always better served as a named method. The biggest benefit of this refactoring is making something that was once implicit, explicit. To copy Ben Orenstein's words, it's more…
Note: This post was written with Vue 2 in mind. I've enjoyed working with Vue for the past year, but there are a few key ideas that I wish someone would have instilled in me when I was first starting. This grab bag of advice has served me well and I hope you'll keep these tips in mind for your next…
I naturally spend a lot of time in the terminal and I found my way to ZSH after having used Bash long enough to find its shortcomings. These tips aren't exclusive to ZSH, it just happens to be the shell I use. Opening Meetings This might be my favorite of the list. My job utilizes webex for…
Earlier this year, I attended a tech conference in Pittsburgh, PA called “Abstractions”. It was there I was first introduced to the term “a11y”, a shortened name for “accessibility”. In the context of computing, a11y refers to the equal ability to use computers and computer based technology…
As the night draws to a close, so does my first software conference — Abstractions. Abstractions is a new conference that brings together everyone involved in modern software development — designers, developers, DevOps, and community leaders — to teach, learn, and connect. I discovered the event…