Blog

Posts on software development, careers, and craft.

Idea: - Think about your day in 15 minute blocks

Idea: - Think about your day in 15 minute blocks. - You get 32 blocks a day for each major life area: sleep, life, work. - Don't steal from sleep a...

Why learn the proper names for language features

Why learn the proper names for language features? 1. It enables efficient conversations 2. It conveys professionalism in interviews 3. Most importa...

Sure, toying with new tech is fun

Sure, toying with new tech is fun. But the most rewarding moments in programming involve deep flow. This happens when you know the tech so well tha...

I enjoy learning concepts from others that believe I already understand

I enjoy learning concepts from others that believe I already understand. Why? 1. I learn new metaphors 2. I learn justifications and downsides 3. I...

One of my favorite things about side projects: When I'm stuck, I can walk...

One of my favorite things about side projects: When I'm stuck, I can walk away from the keyboard for the day and goof off until an idea pops in my...

I often see applications that are needlessly bloated and complex

I often see applications that are needlessly bloated and complex. I’ve found two common reasons: 1. Dev team is unaware of the framework or environ...

If you're a speaker, watch this 6 minute TED Talk about nothing

If you're a speaker, watch this 6 minute TED Talk about nothing. Yep, it's about nothing. But if you carefully consider all the techniques in his d...

Developers must strive to stay current so we know when our expertise,...

Developers must strive to stay current so we know when our expertise, insights, and “best practices” have become outdated. “The illiterates of the...

If a week ago you told me my GitHub repo will be hosted by Microsoft in an...

If a week ago you told me my GitHub repo will be hosted by Microsoft in an underwater data center I’d have said you were nuts https://www.bbc.com/n...

The biggest barrier to automated testing isn't learning how to write tests

The biggest barrier to automated testing isn't learning how to write tests. The biggest barrier is understanding how to write testable code. #tdd

Most teams add dependencies without asking "Can we afford this?"

Most teams add dependencies without asking "Can we afford this?". Instead, set a performance budget. How small? This post argues that you should li...

Over my career, it's surprising how rarely I've used recursion

Over my career, it's surprising how rarely I've used recursion. School made it sound common. But I rarely write or see recursive algorithms in line...

Tired of converting React functional components to classes by hand

Tired of converting React functional components to classes by hand? Me too. Just found a handy VS Code plugin: https://marketplace.visualstudio.com...

Four super helpful #JavaScript array functions: map - give me a new array...

Four super helpful #JavaScript array functions: map - give me a new array with some changes filter - give me a new array with some items excluded f...

When I started coding: "This isn't working

When I started coding: "This isn't working. It must be a bug in the library". Today, after years of experience: "This isn't working. It's almost ce...

I'm writing a new conf talk: "Going Pro"

I'm writing a new conf talk: "Going Pro". Themes: Amateurs write clever code. Pros write clear code. Amateurs forget. Pros automate. Amateurs are r...

Writing dumb code is actually hard

Writing dumb code is actually hard. And it pays exponential dividends to do so. Spot on. Quick read: "Why Senior Devs Write Dumb Code and How to Sp...

"Patterns for Reusable JavaScript Components" is now up on YouTube

"Patterns for Reusable JavaScript Components" is now up on YouTube! 📹 This talk explores lessons I learned from building a reusable component libr...

Excellent post on handling space in CSS

Excellent post on handling space in CSS. Taking this simple advice for handling spacing makes your styles so much easier to understand and maintain...

Oooo

Oooo. I like this. An elegant way to handle nested React render prop components: https://github.com/pedronauck/react-adopt Check out the before and...

"Avoid centralized config

"Avoid centralized config. It's hard to delete centralized config, since it's unclear what you'll break." - Malte Ubl Examples: - Single CSS file -...

I prefer plain JS over ImmutableJS

I prefer plain JS over ImmutableJS. 1. ImmutableJS is ~54KB. Near twice the size of React and React-DOM combined. 2. You must use a new, wordy synt...

I often see confusion around the need/impact of treating state as immutable...

I often see confusion around the need/impact of treating state as immutable in React. Here's a little sandbox I created to show the impacts of muta...

Yes, CSS is hard

Yes, CSS is hard. But you've gotta love the instant feedback loop in the browser - made even better with autocomplete support in dev tools. This co...

Tip: When creating a new React component, start by requiring all props

Tip: When creating a new React component, start by requiring all props. Why? 1 Handling the null case requires extra code 2 It's easy to forget to...

Realization: Resumes have little correlation with me saying yes to a...

Realization: Resumes have little correlation with me saying yes to a potential hire. Instead, I chat about coding like baseball. We should both be...

Tired of writing React propTypes by hand

Tired of writing React propTypes by hand? Just paste the JSON from your API into http://transform.now.sh and it'll spit out a propType declaration...

So how's everyone handling mock APIs

So how's everyone handling mock APIs? Any favorite services, libraries, or techniques to share? I'm still using json-server with json-schema-faker....

It's concerning how many internal projects have no docs

It's concerning how many internal projects have no docs. A readme is critical for closed source too. What's this for? How does it work? How do I ge...

Making my slides for "Rapid UI development with Mock APIs" at @sddconf London

Making my slides for "Rapid UI development with Mock APIs" at @sddconf London. This seems an appropriate start...