2012–2021
812 posts
2021 196
December 2021
- Accessibility tip: Use aria-current to style active links
- I hated Apple
- Just learned about Zod, a #TypeScript schema declaration and validation library
- Concern: Waiting for code reviews wastes time
- There’s nothing wrong with using free time to learn, explore, and grow
- When I think back on my early career, I made one mistake frequently: I tried...
- A common automated testing mistake in TypeScript: Not specifying the...
- When logic is hard to unit test due to side-effects, I typically prefer...
- This month I’m switching one of my clients from create-react-app to @vercel...
- Just created Remix Doge with @remix_run
- My unintuitive solution to burnout: Learn
- A powerful way to grow quickly: Learn alone, for free
- To close out the year, I'm experimenting with using these compelling tools...
- 15 ways to make a slow React app: Put all state in the root Don’t cache,...
- Becoming a software developer is a journey, not a destination
- I admire how @remix_run embraces convention over configuration (as...
- My code review checklist: ✅ Tested ✅ Secure ✅ Robust ✅ Reusable ✅ Accessible...
- I find TypeScript gets me to a better design, faster, because it encourages...
November 2021
- To expedite code reviews, I keep my PR's small
- I’ve seen some teams fail to successfully create design systems and...
- My initial impressions on @remix_run: ✅ Uses the web platform ✅ Works...
- Today I’m thankful for: @reactjs - For providing an elegant component API...
- A frustrating trend: The biggest reason I see teams ignoring/violating the...
- Problem: I have a React component with optional props that should only be...
- Pull request habit: Provide before and after screenshots in the pull request...
- After working in TypeScript for awhile, writing JavaScript feels...
- Just found a way to write React tests faster
- Habit: I step away from the machine when I get a confusing error
- Ever wonder if your TypeScript app has unused code
- I need to pick an auth provider for a web app startup
- Wow, the #React ecosystem now has (at least) 3 routers: 1
- Being a developer requires balancing 2 skills: 1
- With projects that use npm, it's easy to make two mistakes: ❌ Unused...
- Many #React devs consider create-react-app the obvious choice
- I was using fireEvent with @TestingLib
- Two things I enjoy: ✅ Fast machines ✅ Fast test suites On the M1 Max, 300+...
- Code review habit: To review tests, I split my editor vertically
- This week I learned more about a new React framework: @blitz_js
- Had an awesome evening out last night in Atlanta with @jcreamer898...
- When I consider splitting up a component: 1
- Checklist: How to make your React app faster ⚛️: ✅ Keep state as local as...
- Woah, Chrome now has a built in recorder
- Woah, I just found an elegant way to resolve package-lock.json conflicts:...
- Mac performance / battery life tip: Tell Spotlight to ignore the folder...
October 2021
- Found a M1 Max 32GB in stock at my local Apple store and couldn’t resist
- This week I worked with a team to get code coverage over 80% (a corporate...
- How to create a React app in 2021: Client rendered: create-react-app Static,...
- For most of my life, my goal was to save enough money that I could stop working
- Coding is writing
- I'm trying out pnpm (a fast, powerful replacement for npm)
- JavaScript's 8 falsy values: 0 -0 false NaN "" (empty string) null undefined...
- The 4-step bug fix: 1
- Woah, just found Sapling, a @code extension that displays my app's React...
- I'm working on 2 similar React component libraries
- HTML z-index tip: You might not need a z-index at all
- Software dev is an amazing career
- Common problems I see at companies that are struggling with their reusable...
- 7 practices that take more time up front, but save time later: 1
- Why I store all URLs in a one file: ✅ Support reuse ✅ Enforce consistency ✅...
- This Cypress post just blew my mind
September 2021
- Problem: You're using @Cypress_io for tests, and need to log in for each test
- Handy pattern I enjoy: Clone the repo twice
- 7 things that keep teams from doing Continuous Delivery (deploying daily or...
- A well-named test answers 3 questions: 1
- I recently reviewed a team's codebase
- My favorite way to estimate tickets
- Sprint mindset: "We estimate and commit to finishing work by this date"
- The problem with sprints: Sprints create a constant sense of hurry
- Habit: I often work in my car
- Two reasons to use HTML on forms: 1
- 10 lessons I've learned about handling React state over the last 7 years
- React PropTypes are dead to me
- An interesting JavaScript template string trick: You can replace this: {...
- Scenario: You're using TypeScript, and want statically typed CSS too
- HTML accessibility tip: Only add a role if you can't use the ideal HTML tag
- 30+ HTML tags to consider before using a div: header footer nav main section...
- Job satisfaction is driven by 5 factors: 1
August 2021
- z-index Tip: When creating a reusable component that declares a z-index, add...
- I've started using @Cypress_io & @TestingLib for more than testing
- The difference between `any` and `unknown` in #TypeScript: any = “I don’t...
- I'm excited about the new type narrowing features in #typescript 4.4
- After shipping multiple projects with #TypeScript, I wouldn't go back to JS
- The only technique I’ve found for creating reliable end-to-end tests: 1
- My favorite way to create a new JavaScript object with a property omitted is...
- Common problem: "We don't have time to improve our process"
- Simple #TypeScript tip I wish someone had told me long ago: If you get a...
- Just learned about SWC, a Babel alternative
- When unit testing, I rarely use mocking libraries
- How I pivoted from an object-oriented programming style to a functional...
- Habit: When I'm done coding, I don't immediately open a pull request
- TypeScript tip: Declaring type keys in alphabetical order makes them easier...
- A well-structured codebase is consistent on the following: Validation HTTP...
- My rule for React state: Any state that can be derived, should be derived
- As I’ve learned TypeScript over the years, I’ve noticed a pattern: If it’s...
July 2021
- The best financial advice I've found: 1
- It’s remarkable how much better life is on a development team with this...
- A practical alternative to pair programming that I enjoy: I open PRs early,...
- Just used TypeScript to enforce distinct prop combinations
- Today I learned about CSS' currentColor value
- As a dev, I do "Quality Assurance"
- I run each PR I review locally
- The first thing I do when I consult with a company: I review their app’s...
- Regex: Write once, read never
- I'm a big believer in automated testing
- Simple pattern to reduce the pain of “prop drilling”: Consider using an...
June 2021
- “What gets measured, gets managed.” So as a dev, I measure: ✅ Build time ✅...
- I was immediately excited when I saw React
- Reusable React component design tip: Mimic native HTML APIs
- Woah, just learned about CSS Container Queries
- Why I taught my son HTML, JS, and CSS before Git: I believe it’s easier to...
- Why I ❤️ software development: Experimentation is typically acceptable,...
- Splitting up a large front-end dev team requires 3 key ingredients: ✅ A...
- The most useful piece of advice I’ve heard for designing reusable React...
- Early in my career, my boss asked me to email all our customers
- When creating reusable React components, prefer compound components over...
- Two code review approaches: 1
- 6 React “frameworks” and their typical use case: ⚛️ create-react-app:...
- React tip: To keep JSX simple, return early
- The more I read about React 18, the more I realize: React is maturing into a...
- Years ago I read “The Non-Designer’s Design Book”
- 5 strategies for quickly merging PRs: 1 Create small PRs 2 Open tickets for...
- Developers who merely click approve on every pull request aren’t doing their job
- As a manager, I happily promoted proactive employees
May 2021
- To get promoted, exceed expectations
- Being a developer requires balancing hubris with humility
- It's hard to mentally disconnect
- TypeScript tip: VSCode's TypeScript server hangs sometimes
- Developers often focus on improving their coding skills
- When a developer responds to every pull request with “looks good to me”, I...
- One developer, working alone, can ship as much code as an entire team
- Woah, just learned you can use $npm_execpath to write npm scripts that work...
- Physical projects: Measure twice, cut once
April 2021
- I'm switching between JavaScript and TypeScript
- Three things I like to separate: 1
- TypeScript union types are 🔥
- How to attract and retain great developers: Pay well Use modern tech Offer...
- Just upgraded a project to React 17
- I've found reviewing code on GitHub alone isn't sufficient
- How to effectively answer “I don’t know” in an interview: ✅ “I don’t know,...
- Just interviewed a seriously impressive developer
- As a consultant, I’ve found 7 common reasons dev teams struggle: 1
- Two pet peeves: 1
- I often commit a change, then before I push I realize “Oops, I’m on the...
- Something 2020 made clear: Remote meetings work REALLY well when *everyone*...
- My rule for writing reliable, scalable software: Each feature must have...
- I quit my job to be an independent consultant in 2019
- Unpopular opinion: Separate QA teams lower quality
- Hot take: Relying on QA to write your tests and find your bugs is malpractice
- I’ve reached the point of coding in TypeScript where coding in plain...
- Habit: When I open a pull request, I do my own code review first
- I'm building a large React component library for a client
- When I do OO programming, automated testing feels harder
March 2021
- One of my favorite git commands: git checkout - This checks out the branch I...
- Things many people don’t like to do: Exercise Negotiate Work for free Read...
- 3 patterns that make TypeScript hard: 1
- To motivate a dev team, you don’t need gimmicks
- Microservices lead to many separate databases
- Hey developers, please stop disabling copy/paste in form fields
- "That's easy
- Writing software is basically a 2 step process: 1
- The worst dev team I ever worked on: No source control
- The cost of a slow development environment: It lowers my morale It drains my...
February 2021
- Two coding styles: 1
- Integration testing tip: Avoid creating many small tests
- Sprint planning: "Let's commit to exactly what we're going to deliver over...
- I rarely use Storybook for my clients
- If I constantly search for better approaches, I’ll rarely get anything done
- Over the years, I've hired dozens of devs
- What I look for in a pull request: ✅ As small as practical ✅ Focused on one...
- Occasionally I review React code bases where React.memo and useCallback are...
- I rarely use these React performance features: React.memo useCallback...
- I prefer small, focused pull requests
- Developer tip: If you're unclear about your task, speak up
January 2021
- My favorite way to wrap text in an HTML tag in VS Code: Use Emmet
- 5 books that improved my life - and their big idea: Ego is the Enemy - Be...
- Software tradeoffs: Build vs Buy Reuse vs Copy Sync vs Async Serial vs...
- Why I ♥️ being a software developer: -Good pay -Fast feedback -1000’s of...
- While working on a ticket, I'm often tempted to fix/improve unrelated code
- Adding Custom Testing Library Queries
- If you write tests with @TestingLib, here's a handy tool:...
- React Server Components in 5 Minutes
- Two fundamental risks I mitigate: 1
- I'm starting to think the greatest advantage of being independent is being...
- A surprising way to make significantly more money: Work for free
- Pro athletes do drills to improve
- My favorite financial habits: 1
- Coding without tests, static types, code reviews, and CI is like...
- Mistake 1: Ignoring new tech, so I end up doing things the old/hard way
- React = reusable components
- Some teams call tasks “done” when they’re not done
- It's surprising how many REST APIs lack useful docs
- In poorly-structured companies, the hardest part of software development is...
- 3 things I can influence: 1
- It's fascinating how differently I view a problem after a good night's sleep
- When something is hard to type in TypeScript, I often find that’s a sign I...
- On React components, I prefer false defaults for boolean props
2020 182
December 2020
- Early in my career, I pushed back on unfamiliar tasks
- Toyota dealer wanted $470 to change the spark plugs
- A reminder on why the industry started rendering on the client: Partial page...
- Just joined a TypeScript project
- 3 skills that make coding easier: Organization - Recognizing and grouping...
- My son (12) has learned JavaScript over the last 2 years
- Regex are hard to write, and even harder to read
- I don’t ask if I can write tests
- 6 techniques for managing large datasets in React: 1.Pagination 2.Lazy...
- Two questions that changed my life: 1
- As a kid, I looked at exotic cars and thought “It would be awesome to own...
- If a team has no automated tests, it's hard to get started
- 5 skills of successful developers: Communication - Clear writing, speech,...
November 2020
- I'm working on two similar projects
- Just joined a project
- I buy a new laptop every 1-2 years
- Today I’m thankful for: A healthy family
- On React's useEffect Hook: "I try to describe the effects I write by saying...
- My favorite benefit of going independent: freedom
- One of the most persistent rules of software: Adding more people to a late...
- TIL the browser's built-in form validation features are surprisingly robust
- 9 things that I've found improve development team velocity: - Mock APIs -...
- 6 Signs a Dev Team is Out of Control
- 6 signs a dev team is out of control: We don't have time to write tests
- Many companies use Confluence, Dropbox, etc for project docs
- “We all have the same 24 hours a day”
- Woah, npm 7 automatically installs peer dependencies:...
- Avoid creating flexible React components with many props
- TIL about the URL constructor
- An organization that doesn't document effectively, cannot grow efficiently
October 2020
- How I became a conference speaker: Someone said “Why aren’t you speaking?”...
- After coding in TypeScript, plain JavaScript feels like doing acrobatics...
- How to create a life of stress: Overcommit
- I'm considering writing another React related course on @pluralsight
- Low-stress life recipe: Early to bed
- The #1 answer I hear from teams that don’t write automated tests: “We don’t...
- A team without documented, repeatable processes is out of control
- Fallacy: To stay busy, go broad
- I'll admit it: For the first 10 years of my career, I thought tests were a...
- I am anti "foo"
- My opinion on TypeScript changed because the environment around it changed
September 2020
- What college is selling: 1
- Just read “The Psychology of Money”
- Many who have have experienced work from home will never go back to...
- Just successfully deployed a React app to an AWS S3 bucket via an Azure Dev...
- I avoid declaring React components via the concise arrow syntax
- I’ve spent the last three days convinced my laptop had been hacked or had a...
- Years ago, I was programming in PHP
- Software development is about these 10 transformations
- Software development: It’s hard to make something easy
- Epiphany: Just wrote a test…for tests
August 2020
- Just finished “The Phoenix Project”
- When stuck, step away
- Rhythm I’ve found: Work 2 hours, then take a long break away from the screen
- Woah, if you're building a component library / design system, "Design...
- It's done
- I don't need XState
- Formik vs Plain React for Forms – Worth it?
- I typically use plain React for forms
- To me, freedom is the game
- For people just starting React today, are classes worth learning anymore
- 5 reasons I prefer React function components over class components: 1
- Handy pattern: Declare a single status to replace related state
- You don’t have to work overtime to get ahead
- Working over 40 hours a week in a salaried position = giving time away
- Two rules that help me stick to exercise: 1
- Growth mindset: I want to get better
July 2020
- I've worked remote for years
- Why I prefer videos over live teaching/webinars: 1
- I ♥️ #remotework
- Meritocracy: Picking people based on talent rather than on class privilege...
- Sometimes, I want to use a React Hook in an existing class component
- Questions to ask when picking a data structure: How many records
- Four Reasons React Renders (and three ways to stop it)
- 4 reasons React renders: 1
- Life as a dev: Every few days, I learn something that makes me wish I could...
- Four Ways to Fetch Data in React
- Good habits create positive feedback loops
- On Admiring Simplicity
- A poorly-designed solution may seem impressive
- I ❤️ composition
June 2020
- In React, there are at least 8 ways to handle state
- Fallacy: Motivation creates action
- Over abstractor: “We should wrap React in case we move to Vue or Svelte.” What
- Some teams claim they're "too busy" to: 1
- After using @PrettierCode, watching someone code without it makes me cringe
- Slick way to get a unique JavaScript array: 1
- Why react-query / swr are awesome: They return cached data *immediately*,...
- I ♥️ Hooks
- In a JavaScript app, what do you call a file that only contains functions...
- TIL: HTML and create collapsable content
- 30 Ways to Handle React State
- As a developer, UI/UX can seem like an art or innate talent
- Interesting UI monorepo config: 1
- Overrated: Buying new stuff
- Why I write integration tests first: 1 I don't have to keep manually running...
- I've spent the last week trying to use #JavaScript Map and Set instead of...
- When working with a list, an array is an obvious choice
- I was manually updating localStorage anytime state was updated
May 2020
- The fastest way I've found to learn new tech: I build something with it...
- React-query and swr are awesome
- Learning is hard
- Most React devs know to declare a key when iterating over an array
- These are the 6 questions I ask to decide where to store state in React apps
- I'm torn about @tailwindcss
- New React state library from Facebook: Recoil
- I’m creating a reusable React component library in TypeScript for a client
- When fixing a bug, I write a test that reproduces the bug first
- Announcement: I'm writing a new course
- I don't write end-to-end (e2e) tests
- "I don't have time to write tests"
- Two things that totally changed the way I think about separation of concerns: 1
- Why I code against a mock API: 1 I control the speed 2 It's never down 3 No...
- React: The Good Parts 1
- HTTP call checklist: -Can this run in parallel with other requests
April 2020
- Programming irony: A complex solution often feels impressive
- TIL: To log all clicks in React, use onClickCapture
- Performance pattern If your web app requires a lot of data that changes...
- Useful organizational skills in software development: - Name things well -...
- TypeScript protects from edge cases
- TypeScript habit: When trying a new library, TS slows down experimentation
- My routine for happiness during the pandemic: Sleep well Exercise daily...
- Confession: For the first 10 years of my career, I considered automated...
- Today I learned: 1
- I'm jumping between 2 projects: 1
- Valuable developer traits: Humility and self-awareness These traits help you...
- JSON doesn't support comments
- I rarely say "that's impossible"
- My days of complaining about CSS positioning are over
- React = Legos for adults
- Why I ❤️ being a UI specialist: ✔️Close to the user ✔️I choose my tools...
- Why I no longer write classes in #Javascript: I don't need them
- I prefer #javascript function declarations over function expressions and...
- An unexpected benefit of closing schools: Slowing down creates space for...
March 2020
- PSA: Please don't name a variable "data"
- Over the last decade, I've consumed 100's of books, videos, blogs, etc
- When I'm unsure what HTML element to use, I Google for "HTML5 Flowchart"
- Why I ♥️ software development: I don't have to get it right the first time
- JavaScript rest syntax can remove properties too
- I'm really enjoying the 16" MacBook Pro
- Client: Help
- Want to create a new #JavaScript object with an optional property
- The "best" technology often doesn't win
- Adopting TypeScript: Short-term pain for long-term gain
- I ♥️ Hooks
- In Chrome, if I write an infinite loop, the tab just freezes and cannot be...
- I'm dealing with an unhelpful error message that doesn't provide a useful...
- Why I ❤️ TypeScript: TypeScript gives me what I love about C#: Strong types...
- I'm updating a client's React component library
- 3 reasons to use TypeScript instead of React PropTypes: When checks run: PT:...
- Unpopular opinion: I like switch statements
February 2020
- Realization: Independence increased my productivity
- To save money💰 Buy used Avoid buying the “best”
- To save money, look for “diminishing returns” (the point where the better...
- Unpopular opinion: ESLint rules should be strict
- I ♥️ pure functions
- Rules keep me safe
- Tweet 1225595715281399808
- How I write code: 1
- I'm working in the cleanest code base I've ever worked with
- It's sad how many people I see making good money, creating their own prison
January 2020
- Common mistake I see in React apps: Putting state in the wrong spot
- Common thread among people I respect: An abundance mindset
- As a consultant, I'm seeing an epidemic: Companies are wasting millions by...
- So far, I ♥️ being independent
- I ♥️ remote work
- I put a React component in its own file when: ✅It's reusable by itself ✅It's...
- Wow, now that I understand state machines, I can't help but see them
- Common testing mistake: Describing behavior without context
- I avoid nested destructuring, especially when declaring defaults
- You don’t need a library to create a UI that uses a state machine
- React tip: With boolean props, prefer a false default
- React features I avoid at first, then only refactor to when necessary:...
- App without tests: 1
- Why work remote
- Simple rule to keep React apps simple: Declare state as low as possible
- Default mode: The activity you naturally reach for during free time
- Solid writeup for anyone managing a JavaScript monorepo
- An underrated way to learn and stay current: Read the docs
- 🎉 It's live
- Just radically reduced our CI build time
- React integration testing tip: On your CI server, run your automated...
2019 136
December 2019
- "We need a mandatory weekly retrospective to be agile." No we don't
- Two forms of working for "free": 1
- “We need mandatory daily stand up meetings”
- This advice improved my writing: Prefer active voice
- Upward spiral: Sleep well -> exercise -> eat well -> focus at work...
- My entire career, I've only used automated integration testing when the app...
- This is a superb, visually stunning blog post on React Hooks
- What a 2019
- Common saying: "Buy experiences, not stuff"
- Using a timebox for a tricky issue is a great way to avoid wasting hours...
November 2019
- TIL you can prefetch lazy loaded React components.🔥 create-react-app honors...
- In poorly built software, velocity slows over time
- I believe the world would be better if TVs weren't in public spaces like...
- Have an issue, but can't tell what line is causing the bug
- Welp, after literally 10 seconds using the new MacBook Pro 16" I was sold
- Currently updating imports in a large project from the "named import" style:...
- Choosing the “hard” way requires discipline
- I feared public speaking
- Felt so lucky today
- A risky dev team mindset: "We're too busy to do code reviews." Without...
- You can conditionally add JavaScript array elements in a single expression
October 2019
- Emerging job title: UI Architect Concerns: State management Reusable...
- Tip: JavaScript's spread syntax is also handy for creating a copy of an...
- If you navigate away quickly before a setState call completes, React warns...
- An option to consider: Stuck
- Want more screen real estate and less noise in @code
- One of the most satisfying experiences when writing automated tests: 1
- Mac tip: Use Safari when on battery
- I’ve been working heavily in React for 5 years now
- 3 keys to easily reusable React components: ✅Declare detailed propTypes (or...
- Tip: Annoyed by how libraries like Axios place the response under .data
- Lousy variable name: data It says nothing about what's inside
- Two reasons I ❤️ modern UI dev: 1
September 2019
- TIL: If you accidentally use a promise.then (instead of await) in an async...
- Developer productivity is directly related to feedback speed
- TIL you can declare a local file as an npm dependency
- Merging pull requests too quickly risks hurting quality
- Ever annoyed by the long list of local Git branches that are no longer relevant
- The internet became more enjoyable when I realized: I don't have to respond
- Common thread I've found in the bios of extremely driven men: Their...
- TIL the CSS attribute selector is surprisingly powerful
- For me, happiness requires balancing: 1
- My approach for learning new tech: 1
- Now that I'm independent, I feel liberated
- Big news
- "Everyone has the same 24 hours" is a lie
August 2019
- Looking back, the moment my life turned around for the better: I finally...
- Yet another reason to ❤️ async/await: If you mark a JavaScript function as...
- Component-oriented development is increasingly gratifying over time: I start...
- Just added a feature to a huge 10+ year old app written in C#, ASP NET...
- Software mistakes that are expensive to fix: - Hiring the wrong people -...
- Writing "Logic-less" JSX can improve readability
- Components have many potential states (error, no data, etc)
- In #JavaScript, I find it's typically preferable to create a file with plain...
- One of the most valuable concepts I learned in school: Opportunity cost -...
- Loving the new React devtools
- The combination of @Cypress_io and Cypress @TestingLib has made testing such...
- In React, I rarely have perf issues
- Starting these activities can radically improve quality of life, even if...
- I’m frugal with liabilities: -car -clothes -cable TV Liabilities depreciate...
July 2019
- My preferred workflow when fixing a bug: 1
- Attitude checklist - When I'm feeling lethargic or moody
- Just learned about GitHub's handy suggestion feature
- Habit: At the gym, I walk up to the guys who I have a physique I’d like to...
- When most people say they want to be a millionaire, what they really mean is...
- TIL With async/await, you must await a promise for try/catch to catch the error
- Great example of the benefits of async/await
- The fastest approach I've found for wrapping existing markup in a new tag: 1
- For most my career, I ran 2-3 monitors
- Programmer tests should: Minimize programmer waiting
- I'm a huge fan of @kentcdodds testing-library
June 2019
- 3 books that had a huge influence on my career: 1
- Working in a sloppy codebase under a tight deadline: “I will have to...
- Why I love modern UI development: ✅ Work solely on my local machine ✅ No...
- Two concerning trends I'm seeing in modern React apps: 1
- When someone new joins the team, I try to avoid verbal training
- Speaker tip: "Don't memorize your talk
- When a tweet ends with “don’t @ me”, I hear this: “Listen to me
- I've seen microfrontends work well with these rules: 1
- The 3 conditions that sociologists consider crucial to making close friends: 1
- Common thinking: "I need to add code to justify my job"
- Avoid trading long-term happiness for short-term pleasure
May 2019
- Question: For those writing automated integration tests/end-to-end tests,...
- Voluntary discomfort avoids involuntary discomfort
- Here's a simple practice for maintainable code
- To foster automated testing: 1 Setup test framework 2 Write a few tests 3...
- Redux and context are like pain medicine
- A benefit to having an expert on the team: They've already made *many* mistakes
- Recipe for going nowhere for a decade: 1
- GraphQL isn’t suddenly popular because it can do things REST can’t do
April 2019
- Sad to hear of Joe Armstrong's passing.😔 My fav quote of his: "The problem...
- "Premature optimization is the root of all evil" - Donald Knuth Why
- Just spent months building a high performance UI in React
- Things I think about during a code review: Is the intent clear
- What I love about working remote: You can work where you feel most inspired
- Ooo, I like this pattern from @kentcdodds for minimizing boilerplate in...
- I have days where I say “I don’t have time for the gym.” Yet I spend an hour...
- Habit that has radically improved my life over the last 5 years: Listening...
- Just used react-window to handle a table of 1000 records
- Unpopular opinion: The team lead should approve all code reviews
- When a team regularly responds to code reviews with “Looks good to me”, I...
March 2019
- Just finished “The Simple Path to Wealth”
- Woah, this is elegant JavaScript
- TIL about console.dir
- When creating reusable components, it's useful to have a checklist of states...
- I'm ashamed to say I used to assume consumption was a sign of wealth
- I'm concerned by open source projects using only Yarn in their examples
- React tip: Context can enhance performance too
- Little JavaScript trick I find useful: When declaring a named import, enter...
- Working with dates in JavaScript
- Just built a powerful React form implementation with 3 ingredients: 1
- My huge update to "Building Apps with React and Redux" on @pluralsight is live
- Just got confirmation that the major update to “Building Apps with React and...
- Recording complete
February 2019
- Superb CSS post
- Limiting work in progress is important
- If you're doing GraphQL, here's an excellent, concise list of best...
- There are so many benefits to transitioning to GraphQL
- To simulate enums in JS, you can use an object
- A Slack chat from today: "We're trying to reach feature parody"
- Software development: When your curiosity about why something doesn't work...
January 2019
- A helpful code review mindset: "Will we understand why this line exists...
- When I see complex code that I don't understand, I fight a knee jerk...
- I feel wildly lucky to have found a career I enjoy so much
- Hot take: Optional chaining encourages writing brittle code
- JS Tip: You can declare a default value when destructuring
- Your outcomes are a lagging measure of your habits
- Okay, I confess
- I don’t understand the grumpy old programmer stereotype
- To start a habit, plan when and where
- A http://README.md is my favorite form of documentation
- Woah, here's a slick way to learn/experiment/teach JavaScript: RunJS
- I ❤️ building against mock data
- Despite my long history in C#, I’m still not using TypeScript
- A function can be too long or too short
- Tip: You can compare any two files using VS Code's slick native diff tool: 1
2018 154
December 2018
- Npm perf tip: Use npm ci instead of npm install for 1
- My 3 favorite ways to navigate in VS Code: @code 1
- Tweet 1078634947831914496
- In 2018, I greatly reduced my bad habit of doing things merely to impress others
- Tweet 1077027663066423296
- Refactoring before commit is critical
- I've wasted countless hours through the years on slow feedback loops
- Tweet 1074766431991017473
- Common mistake in React apps: Storing values in state that could be derived...
- Developers: When asked to disable copy/paste, just say no
- Just converted a React component to use Hooks
- 🎉 It’s live
November 2018
- Spent yesterday building a React app using Hooks
- Just drove a @Tesla Model 3
- The 2018 State of JS Survey results are published
- Everyone’s life is filled with gravitational pulls that hold you in place:...
- Time is money
- Exercise is seriously magical
- Tweet 1058381128434892800
October 2018
- It takes me 2+ hours of recording and editing to create a tight 5 min video
- At conferences, I frequently talk to attendees who blow me away with their...
- Promise.all combined with modern JS features like destructuring, object...
- Idea: 1
- When I was young, I dreamt of things I wanted to buy
- Optimism is the most important quality you can develop for success and happiness
- It’s live
- Procrastination is often a sign we don't have clarity on how to move forward
- The most striking benefit of dev in React/Angular/Vue vs jQuery: Components...
- Just switched some tests from Enzyme to react-testing-library: ✅ Encourages...
- An oddly common career mistake: Becoming the go-to person for something we...
September 2018
- One of the most powerful things you can do for your motivation: Find work...
- Odd habit: I often code in Git diff view
- I keep noticing examples of how movement *creates* motivation: Start walking...
- Tip: If you don't need to return anything while iterating over a JS array,...
- Okay Twitter, I'm teaching my 10 year old son to code today and I need help
- Really enjoying my new outdoor office
- Why I ❤️front end dev: 1
- Commitments that radically increased my quality of life: 1
- There’s always somebody Richer Faster Smarter Stronger More popular Better...
- Two types of people: 1
- Realization: I'm more productive on side projects because I step away when...
August 2018
- So, think your eyes are fine
- Confession: Technology moves so fast these days that when someone recommends...
- I ❤️ Git
- Learn one thing at a time
- Recruiter: "We hire the best people in the world...who are willing to work...
- Jest 23.5 now supports .each statements: lay out multiple scenarios in a...
- My @ThatConference keynote is now up on YouTube: "The 7 Pillar Developer: A...
- I'm late to the party, but I just learned CSS grid in about 30 minutes via...
- Workflow tip: Topical browser windows
- When I started coding my apps slowly became a house of cards
- React tip: Extract your lifecycle method logic to well named methods
July 2018
- Speaking healed my poor self-image by changing how I assumed other people saw me
- Coding angry: Mostly fruitless
- TIL: You can easily grab all HTML form data like this: var data = new...
- Just tried hosting GraphQL on Amazon's AppSync
- Sure, the definition of success is personal
- Never rely on your co-workers or QA staff to find bugs in your code
- Confession: I speak at conferences because I benefit immensely: 1
- Coding gets less stressful over time
- Woah, just learned that in Node, values in package.json are automatically...
- Solid speaker tip: Be clear about the transformation you'd like to make in...
- Specialize
- Thanks for attending “Goodbye REST, Hello GraphQL”
- On desktop, a user waits around 9 seconds before giving up
- Hey React devs, here's a repo that shows the same React app written with 4...
June 2018
- With cross-cutting concerns, I like to begin with copy/paste
- Idea: - Think about your day in 15 minute blocks
- Why learn the proper names for language features
- Sure, toying with new tech is fun
- I enjoy learning concepts from others that believe I already understand
- One of my favorite things about side projects: When I'm stuck, I can walk...
- I often see applications that are needlessly bloated and complex
- If you're a speaker, watch this 6 minute TED Talk about nothing
- Developers must strive to stay current so we know when our expertise,...
- If a week ago you told me my GitHub repo will be hosted by Microsoft in an...
- The biggest barrier to automated testing isn't learning how to write tests
- Most teams add dependencies without asking "Can we afford this?"
May 2018
- Over my career, it's surprising how rarely I've used recursion
- Tired of converting React functional components to classes by hand
- Four super helpful #JavaScript array functions: map - give me a new array...
- When I started coding: "This isn't working
- I'm writing a new conf talk: "Going Pro"
- Writing dumb code is actually hard
- "Patterns for Reusable JavaScript Components" is now up on YouTube
- Excellent post on handling space in CSS
April 2018
- Tweet 989855994867015680
- "Avoid centralized config
- I prefer plain JS over ImmutableJS
- I often see confusion around the need/impact of treating state as immutable...
- Yes, CSS is hard
- Tip: When creating a new React component, start by requiring all props
- Realization: Resumes have little correlation with me saying yes to a...
- Tired of writing React propTypes by hand
- So how's everyone handling mock APIs
- It's concerning how many internal projects have no docs
- Making my slides for "Rapid UI development with Mock APIs" at @sddconf London
- Do you read books and blogs that are full of superb life advice...and then...
- Coding gets much easier over time
- Solid examples of some common mistakes with async/await: How to escape...
- Study finds remote workers are more productive and stay with the company longer
- Systems > goals 1
- Today I'm creating plop templates for our team's React framework
- Question I've heard recently: “What if we create a component library in...
- Yep, JavaScript Moves Fast. Build Your Component Library Anyway.
- Tweet 981558704708472832
- Tweet 981201871263158272
- All too many meetings are scheduled because the scheduler is unwilling to...
March 2018
- Google publishes a JavaScript style guide
- React tip: Functional components transpile down to less code, which =...
- Apple support is exceptional
- Woah, @Netlify now supports AWS lambda functions
- As a dev nearing 40, this StackOverflow stat concerns me: Only 7% of...
- Why specialize
- Many companies have: 1
- "What have you learned in the past week that you’ll still care about in 5...
- The "full stack" dev is a dying breed
- Love the new split terminal window feature in VS Code
- Realization: I’ve spent many hours reading books and blog posts about...
- Sure, you know about console.log, but there are a lot of other handy tools...
- GitHub tip: You can assign "code owners" to sections of a code base
- Ever use your Browser's console as a little scratchpad to try JavaScript
- Career tip: As tech moves faster, consider specializing
- How I read open source docs: 1
- How to handle environment-specific settings in your JavaScript apps
February 2018
- GitHub Tip: Create PULL_REQUEST_TEMPLATE.md in your project root
- promise.finally has moved to stage 4, so it's officially part of JavaScript
- Highly relevant quote for anyone teaching or learning
- Pattern I'm increasingly seeing: Companies are forking create-react-app and...
- Excited for the enhancements coming to Babel 7: - 60% faster 🚤 -...
- So true
- "99% of the time, when you think you need to mock a module, the real answer...
- Need something fixed/enhanced in an open source package that you use at work
- React tip: You can eliminate constructors for state and binding
- "Comment the why, not the how." is the most succinct and useful maxim for...
- The number of options for automated testing in #javascript today is amazing
- JS tip: console.log accepts multiple arguments
- Realization: Putting Redux in our company framework by default was a mistake
- Fascinating overview of Spotify's desktop app, built in JS
- An epic read for #javascript app best practices/project guidelines
- 🔥 Confirmed: 🔥 1
- Git tip: Have a lot of old branches on your machine
- Motivation hack: Leave an incomplete task at the end of your work day
- Impressed with the regex enhancements in ES2018
- ES2018 has been finalized
- Common question: "How do I build a big SPA?" My take
- Remote work benefit: Interacting via text fosters reading & writing skills
January 2018
- JavaScript tip: You can easily simulate named function parameters
- A successful development team is like a bees nest
- Woah, automatically convert your plain JavaScript React components to TypeScript
- Watch out: You may unknowingly be addicted to complexity
- "I've heard from several people that they've consolidated their companies...
- 6 years ago: I was terrified of public speaking
- Slick way to update an element in an array in an immutable manner *without...
2017 70
December 2017
- Seriously, if you haven't tried automated testing with @Cypress_io, do it now
- Career tip: If your boss doesn't see it, you won't get credit for it
- Three ways to design a reusable React component: 1
- React tip: You often don't need to declare a constructor in class components
- Speaker tip: Instead of asking "Who doesn't understand x?" ask "Who...
- Perhaps the most striking stat on the 2017 State of #JavaScript Survey: VS...
- Coding a simple prototype takes a little time, but saves a ton of time in...
- Man, after using @prettiercode for a month, I'd love to have all the time...
- Just rewrote a Redux app in plain React
- Creating a new feature
- Woah, prettier does a wonderful job formatting markdown files too
- Designing Reusable React Components
November 2017
- Handy way to update npm packages: Use npx
- Perf tip: Stop using babel-preset-es2015
- Coming very soon: Use cipm instead of npm on your CI server for 20x faster...
- It's live
- Using the same JS lib on multiple apps
- Extract your setState calls to pure functions
- Tip: Does your project work better with @code (VS Code) extensions
- React Pattern: Centralized PropTypes
- Tip: With async/await, you can run multiple async operations in parallel
- As a long-time OO developer, I've finally embraced the functional paradigm...
- Is there a single good reason to ever use a static class in #javascript...
- Here's a handy pattern to easily build objects for #javascript tests
- Just updated the "Tech Speaker Starter Kit" with some new resources...
- This is absolutely key
October 2017
- Much of writing testable code boils down to this: Keep logic and I/O separate
- Why blog
- Spent the morning comparing React's syntax to Angular, Vue, and Ember's for...
- I'm a fan of Redux, but it's a power tool, not a "use it all the time" tool
- Developer job security: Low road: Obfuscate so only you can understand
- Woah, you can get most of TypeScript's benefits with plain JS by just...
- I've found a VSCode setup I ❤️: Material Pale Night Material Icon Theme See...
September 2017
- Reusable Web Application Strategies: three patterns for running the same app in multiple spots
- "Never Write another Higher Order Component" Excellent talk by @mjackson on...
- To convey the big picture, I'm compiling a list of reasons *not* to use...
- Deployment & release aren't the same thing
August 2017
- After watching my "Building JS Dev Environment" course, someone emailed me:...
- Public Speaking Transformed My Life…and Can Change Yours Too
- Remote work is much more productive for me
- Developer
July 2017
- After attending many conferences, I've realized: I don't attend to learn
- "JavaScript fatigue is what happens when people use tools they don't need to...
- Was about to create this, but great to find it exists
- Great idea
- I've never written a conf talk, blog, or course without learning a ton in...
- Tip: You can automatically add a code review checklist to GitHub pull...
- Event organizers: If you give us a quality shirt with: 1
June 2017
- Most bugs come from side effects, so write "pure" functions: 1
- Why write pure functions
- "70% of a developer's day is spent reading code." - @getify Optimize for reading
- Tried Vue
- Tweet 874798551267762176
- It's live
May 2017
- Tip: You don't need to declare a constructor in your React component to...
- Create React App has been upgraded: Webpack 2, PWA by default, and really...
- Sure, destructuring props makes code concise
- Here’s Why Client-Side Rendering Won
- So here's my favorite new way to rapidly prototype React components
- Q: "How about we just ignore tests for now
April 2017
- Love this
- A function name should describe what it does, not when it's run
- Software maintenance is not "keep it working like before." It is "keep being...
- After over 6 months of heavy research & writing, I've finally started...
- ES6 modules support lands in browsers
March 2017
- My take on #reactjs setState: 1
- Node debugging used to be 😔 In @code it's 😍 Watch window, call stack,...
- React tip: State that references itself leads to out-of-sync bugs
January 2017
2016 21
November 2016
- The JavaScript Starter Kit Manifesto
- Why Do Developers Run Macs?
- A Week with the New Macbook Pro with Touch Bar
- The hardest decision in software development today: What should I ignore
- Building a JavaScript Development Environment – Live on Pluralsight!
- It's live
- Want to Code Faster? Timebox Impediments
October 2016
September 2016
August 2016
- Tip: Avoid using switch in #JavaScript
- React Binding Patterns: 5 Approaches for Handling `this`
- Posted: React Binding Patterns: 5 Approaches for Handling `this` keyword...
July 2016
- Devs, watch out for this in 2016: You can easily spend all your time...
- I Don’t Do Q&A at the End of Conference Talks. Here’s Why.
May 2016
March 2016
January 2016
2015 13
December 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
2014 19
November 2014
October 2014
August 2014
June 2014
May 2014
April 2014
February 2014
January 2014
- Who Dictates Software Quality: Client or Coder?
- Where Should an Architect Begin?
- Lean Software Architecture: Focus On the Pain – Part 3 of 3
- Lean Software Architecture: Build The Simplest Thing – Part 2 of 3
- David & Goliath: Haswell Ultrabook vs Desktop Replacement Laptop
- 13″ Haswell Ultrabook Showdown
- Lean Software Architecture: Focus on the Pain – Part 1 of 3
- Want to Get Better? Here’s a Strategy to Solicit Genuine Useful Feedback
- Hey Developer, Are You Focusing on the Right Thing?
- This is somewhat embarrassing, isn’t it?
2013 15
December 2013
- Seven Reasons Clean Code Matters
- This is somewhat embarrassing, isn’t it?
- Programming Your Brain: The Art of Learning in Three Steps
October 2013
- Writing in a Dynamic Language? Naming Matters More.
- Writing Code? Know Your Boundaries.
- JavaScript Configuration Object Pattern: JSON Saves the Day
September 2013
August 2013
July 2013
April 2013
March 2013
February 2013
2012 6
November 2012
October 2012
August 2012
May 2012
- The Joy of Prototype Driven Development
- Visual Studio Tip: Locate Current File in Solution Explorer on Demand