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

November 03, 2021

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

December 01, 2020

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

Great Coffee at Home

October 26, 2020

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

October 14, 2020

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

April 23, 2019

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

April 16, 2019

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

February 17, 2019

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

February 12, 2019

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

February 01, 2019

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

January 30, 2019

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

Image Optimization

January 29, 2019

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

Code Review

January 26, 2019

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 Style

January 26, 2019

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…

Code Smells

January 26, 2019

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

Cohesion vs Coupling

January 26, 2019

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

January 26, 2019

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

Comments

January 26, 2019

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

Container/Presentation Separation

January 26, 2019

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

January 26, 2019

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

January 26, 2019

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

Functions

January 26, 2019

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

January 26, 2019

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

January 26, 2019

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

Naming

January 26, 2019

“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

January 26, 2019

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

Performance Thresholds

January 26, 2019

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

January 26, 2019

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

January 26, 2019

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

January 26, 2019

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

January 26, 2019

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

SOLID Principles

January 26, 2019

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…

Strict Linting

January 26, 2019

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

Test-Driven Development

January 26, 2019

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

Testing

January 26, 2019

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

© 2023