CSS Scroll-Driven Animations
Scroll-driven animations is an extremely exciting feature that is coming to CSS. Join me as we explore how to use scroll-driven animations to create performant and well polished user experiences.
All of my blog posts, even the ones that I might not fully agree with anymore. Software engineering is a process of continuous learning, don’t ever think there isn’t more to learn.
Scroll-driven animations is an extremely exciting feature that is coming to CSS. Join me as we explore how to use scroll-driven animations to create performant and well polished user experiences.
How easy is it to build real-time multiplayer cursor tracking from apps like Figma? I had that very question, and this post dives deep into the world of WebSockets and real-time communication to show exactly how you can build this type of feature in your apps.
Most people celebrate Christmas in one way or another, but do they truly understand the reason why we should celebrate Christmas? Is Christmas just a commercial holiday, or is there more to it than that?
When adding pagination to the Bytes section of my website, I didn't want to use traditional limit/offset pagination, instead I wanted to experiment with cursor based pagination which scales significantly better than limit/offset pagination. In this post, we explore how to do this with Prisma.
I'm proud to unveil Bytes, my collection of short-form posts, tips, and things I learn as I build software! Bytes is a way to document my learnings and share that knowledge with you and in this post I share a bit more about my motivation for creating Bytes, and some of the fun tech stack that powers it.
While Bash and Zsh are the leading shells used by developers, I find the Fish shell to be a great fit for my workflow as it provides a great experience with nice features and improvments to my daily workflow. Read on to learn about my favorite features as well as some things I wish were changed in Fish.
The JavaScript community loves to debate about semicolons thanks to JavaScript's ability to use them or not. In this article, I give some thoughts on the two camps in this debate as well as what I believe to be a more reasonable approach to this debate.
Maintaining a developer blog almost always includes code highlighting. I recently switched from Prism to Shiki for more accurate and familiar code highlighting.
In the world of modern editors and tools, shell scripting has become somewhat of a lost skill or a dark art. In this article, I'll show practical, real-world examples of shell scripts to encourage you to re-explore shell scripting to enhance your workflows and increase your productivity.
A common question I hear from junior-level software engineers is what it takes to advance in their career as software engineers. In this article, I discuss my journey to becoming a staff software engineer and what I learned along the way.
TypeScript's Extract type can be confusing to understand and use. In this article, I'll show how this type works as well as some practical examples of when you might want to use it in your applications.
Tired of manual refactoring? This article shows how to automate code transformations using jscodeshift to reduce manual work when performing refactors.
Yarn 2 introduced a new feature referred to as "constraints" to help you manage packages in your monorepo. In this article, I explain how constraints work and show you how you can use them to enforce consistency in your monorepo.
Releasing npm packages can be a challenge. There are often many steps in the process and forgetting a step can result in a package being released incorrectly. In this article, I will show how to implement semantic-release in your project to fully automate your npm package releases.
Enforcing consistent code formatting in your repositories with Prettier is great, but it can easily result in a less than ideal developer experience. In this article, I discuss how to leverage GitHub Actions to automate code formatting without requiring any additional steps from developers.
Derived state in React is generally considered to be an anti-pattern that should be avoided. In this article, I show how to recognize derived state in your components and alternative ways to write your components to avoid using derived state.
Shallow rendering is an approach to unit testing made popular by the Enzyme library. In this article, I discuss many of the problems that arise when using shallow rendering and why you should avoid it when writing unit tests for your React components.
Environment variables are a great way to manage configuration in your applications, but they introduce a number of challenges. In this article, I explain an alternative approach to managing configuration in your applications using environment files rather than environment variables.
Viewing npm packages on npmjs.com is a common tasks when developing front-end applications. In this article, I show a few small CSS customizations to improve the npmjs.com styles.
Releasing npm packages can be a challenge. There are often many steps in the process and forgetting a step can result in a package being released incorrectly. In this article, I will show how to use GitHub Actions to automate some of the manual steps required to simplify your npm publishing workflow.
Every day, we encounter ideas and viewpoints that affect our lives in one way or another. In this article, I discuss how to look at differing ideas more objectively to help you make better decisions at work and in your personal life.
Are you considering changing your GitHub username? In this article, I discuss everything I learned when changing my GitHub username to help you understand the steps required in this process.