pseudorandom

{
  author: "Aaron Buxbaum",
  email: "me@aaronbuxbaum.com",
  github: "github.com/aaronbuxbaum",
  linkedin: "linkedin.com/in/aaronbuxbaum",
}

Focus and Flow: trade-offs in programmer productivity

Programmers are fiends for productivity methodologies — ways to estimate tasks more accurately, get more done in less time, and get work…

Software Engineering is a Misnomer

The juxtaposition of the term “software engineer” against other engineering disciplines strikes me as particularly awkward, in the same…

Great Coffee at Home

Due to the pandemic, my love of good coffee has turned into more of a hobby. I can no longer grab a cappuccino on the way to work, or get a…

Apollo GraphQL: why it's slow and what to do about it

Apollo is a company which provides a nicely-written and open-sourced client and server combination for GraphQL. As of this writing, it is by…

RAID and DNA Replication

I’ve had a strange relationship with biology. My father is a chemical engineer, and he did a great job of instilling interest in the…

Synology and RAID Repair

In my home, I use a Synology NAS (Network Attached Storage) as a web server, computer backup, and media content provider for video/picture…

Encouraging Best Practices with Lint

I like to personally review every pull request that goes into the code base; I believe that it gives me a greater ability to speak to what’s…

The NFL and Linear Optimization

If you’re a football (the real kind, not soccer) fan, you’re well-aware of the yearly schedule release. At some point between April and…

No Free Lunch: A Value Proposition

At one point in my career, I enjoyed the perhaps overly-lavish digs over at Google’s NYC office. While I believe much of the hype regarding…

Root Cause Analysis & No-Blame Culture

Regardless of how polished your fundamentals are, it’s inevitable that mistakes will happen. Much of what differentiates a productive and…

Image Optimization

For better or worse, many of the biggest performance gains in front-end engineering regard lowering network payload, and the biggest…

Code Review

Code Review is a great way to ensure that code that goes in is high-quality. A lot of value here isn’t from the review itself, it’s from the…

Code Smells

Code smells are patterns indicate a potential problem with a section of code. While the associated code typically does actually work, it…

Code Style

xkcd What is code style? Code style is a term of quality used to describe code that is authored to be readable and comprehensible. This…

Cohesion vs Coupling

High-quality code has the dual properties of high cohesion and low coupling. Cohesion represents the degree to which the elements inside a…

Command-Query Separation

Command-Query Separation is a guideline to help you write clean, reusable code. It helps you mentally separate responsibility in functions…

Comments

Comments are a useful, but often abused, tool. You should actually avoid comments where possible. Comments (including jsdoc) should be…

Container/Presentation Separation

Container/Presentation Separation is a mode of organizing front-end functionality so that changes are easier to adapt to and testing is…

Five-Point System

The “Five Point System” is a way to organize explicit work towards refactoring React code into best practices. While all new work should…

Fixing Component Speed

Why do components update? In React, components update when a value in prop or state changes. When this happens, the component itself runs…

Functions

What does a good function look like? Most of us know when we see a really bad function, but noting a great, delightful function is much…

How Object Literals Hurt Performance

If you use an object literal within a component, it will cause unnecessary re-renders (in other words, slow performance). There are 3 types…

Intent

“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” The main point of modern…

Naming

“There are only two hard things in Computer Science: cache invalidation, naming things, and off-by-one errors.” Much of the difficulty in…

Pair Programming

Pair Programming is a great way to write better code and disseminate knowledge through the team at the same time. Counterintuitively…

Performance Thresholds

The following are thresholds that I believe should be measured and analyzed against before a deploy can occur. The values will differ from…

Principle of Least Surprise

The Principle of Least Surprise is a concept that is used to frame your mindset as you code. If a necessary feature has a high astonishment…

Readability

Readability is a system internal at Google that I brought over to Jet for great effect. It’s a system for ensuring that code quality stays…

Refactoring

Why bother refactoring? Refactoring is a core part of all development work. You should have some form of refactor in every PR you make. Each…

shouldComponentUpdate and Pure Components

The Render Cycle By default, React re-renders a component when it receives a render trigger. What happens during that process? Something…

Strict Linting

Linting is a set of metrics that are statically analyzed against the code. This static analysis can inform the user about known bad code…

SOLID Principles

SOLID is an acronym for a set of best-practice principles that have been shown over time to result in higher-quality code. They’re concepts…

Test-Driven Development

Test-Driven Development (TDD) is a technique that helps developers write better and more high-quality code. Some experts even argue that the…

Testing

Why bother with testing? Testing is important for many reasons: It catches bugs early on. It describes the intent of the code (in other…

© 2024