The Best Way to Learn... Teach

If you can’t explain it simply, you don’t understand it well enough. - Albert Einstein Hopefully all of us want to get better at the things we do. Most of us, if we enjoy something, want …

  • Published March 18, 2021

Creating a Useful Component Library

One of the great benefits of the many SPA frameworks that we use nowadays (such as Angular and React) is that it is super easy to make reusable UI components that are clean and self-contained. …

  • Published August 5, 2020
Header Image

An Opinion on Progressive Enhancement in CSS

Although support for the “plague browsers” is dropping by the year, developers across the world are faced with the challenge of having to support older web browsers like Internet Explorer. Such browsers have very limited support for new web technologies like grid, flexbox, or custom properties. Because of browsers like this, the CSS spec gives specific instructions to browsers about how they should treat CSS rules that they do no understand. That is, that browsers should discard any line of CSS they do not understand. For example, let’s look at the below selector that uses logical properties. .box { padding-inline: 30px; margin-block: 30px; } In a browser that understands logical properties, the .box element will get padding of 30px on the left and right and a margin on the top and bottom of 30px. However, a browser that doesn’t understand logical properties will completely ignore those rules and the element will have no padding or margin. Thankfully, CSS has an …

  • Published March 8, 2020

The Sexiness of Headless UI Components

Something I enjoy doing most on the web is creating things that help other developers to be more productive. I especially love creating component libraries and core development kits that can be used …

  • Published December 2, 2019

Why It's So Hard to Check Object Equality in JavaScript

The other day I was working on a bit of code where I found myself having to check if two JavaScript objects were equal, namely, do two objects have the same keys and values. The first thing I tried …

  • Published November 19, 2019

6 Principles to Make Your Projects More "Team Friendly"

The other day I was reflecting on the team that I am currently working with on a massive project at our company. We have recently gone through a huge overhaul in our process and structures, so I …

  • Published November 7, 2019

Create a Keybinding Service in Angular

A common frustration I come across when working with Angular (or any other framework for that matter), is running functions based on key bindings. The typical method of doing this is unreadable and …

  • Published November 6, 2019