<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Cory House</title><description>The Art of Software Development.</description><link>https://coryhouse.dev/</link><item><title>Not Enough Time To Build It Sloppy</title><link>https://coryhouse.dev/2012/04/23/not-enough-time-to-do-it-sloppy/</link><guid isPermaLink="true">https://coryhouse.dev/2012/04/23/not-enough-time-to-do-it-sloppy/</guid><description>“Just write it quick and dirty. We can clean it up later.” When deadlines loom and clients are angry it’s hard to argue. Yet the hard truth is most technical de…</description><pubDate>Tue, 24 Apr 2012 03:29:17 GMT</pubDate><category>Clean Code</category></item><item><title>Visual Studio Tip: Locate Current File in Solution Explorer on Demand</title><link>https://coryhouse.dev/2012/05/01/locate-current-file-in-solution-explorer/</link><guid isPermaLink="true">https://coryhouse.dev/2012/05/01/locate-current-file-in-solution-explorer/</guid><description>Visual Studio doesn’t offer an easy way to locate the current file you’re editing in the Solution Explorer on demand. You can set the solution explorer to alway…</description><pubDate>Wed, 02 May 2012 03:20:28 GMT</pubDate><category>Visual Studio</category></item><item><title>The Joy of Prototype Driven Development</title><link>https://coryhouse.dev/2012/05/22/prototype-driven-development/</link><guid isPermaLink="true">https://coryhouse.dev/2012/05/22/prototype-driven-development/</guid><description>I’m a big believer in PDD. Why? Because we clearly need another TLA in our lives. Okay, as a good developer seeing an unfamiliar acronym you likely just Googled…</description><pubDate>Wed, 23 May 2012 03:45:44 GMT</pubDate><category>Uncategorized</category></item><item><title>How RESTful is Your API?</title><link>https://coryhouse.dev/2012/08/26/how-restful-is-your-api/</link><guid isPermaLink="true">https://coryhouse.dev/2012/08/26/how-restful-is-your-api/</guid><description>It’s been over a decade since Roy Fielding wrote his seminal dissertation on Representation State Transfer (REST). Over this period we’ve seen SOAP/WSDL fall ou…</description><pubDate>Mon, 27 Aug 2012 02:35:27 GMT</pubDate><category>SOA</category></item><item><title>Kill the Zombies in Your Code</title><link>https://coryhouse.dev/2012/10/22/kill-the-zombies-in-your-code/</link><guid isPermaLink="true">https://coryhouse.dev/2012/10/22/kill-the-zombies-in-your-code/</guid><description>With Halloween nearly upon us, it seems appropriate to discuss a widespread problem in software development: zombie code. Nearly every codebase I work with is l…</description><pubDate>Tue, 23 Oct 2012 03:00:41 GMT</pubDate><category>Clean Code</category></item><item><title>Strongly Typed .NET Session Pattern</title><link>https://coryhouse.dev/2012/11/11/strongly-typed-net-session-pattern/</link><guid isPermaLink="true">https://coryhouse.dev/2012/11/11/strongly-typed-net-session-pattern/</guid><description>When working in a strongly typed language like C#, I prefer to avoid being “stringly typed“. Thus I typically wrap .NET’s session object with a custom wrapper. …</description><pubDate>Sun, 11 Nov 2012 18:59:48 GMT</pubDate><category>.NET</category></item><item><title>Are You a Resume’ Driven Developer?</title><link>https://coryhouse.dev/2013/02/26/are-you-a-resume-driven-developer/</link><guid isPermaLink="true">https://coryhouse.dev/2013/02/26/are-you-a-resume-driven-developer/</guid><description>I’ve had the pleasure of working with many exceptionally talented developers over the years. Yet I’ve noticed the downfall of a few of the brightest minds is a …</description><pubDate>Wed, 27 Feb 2013 03:59:51 GMT</pubDate><category>Uncategorized</category></item><item><title>Nebraska Code Camp 2013 – Lessons Learned</title><link>https://coryhouse.dev/2013/03/17/nebraska-code-camp-2013-lessons-learned/</link><guid isPermaLink="true">https://coryhouse.dev/2013/03/17/nebraska-code-camp-2013-lessons-learned/</guid><description>Rethinking Enterprise – Ted Neward Ted started the day off with a bang. He has a knack for pulling in interesting tidbits from other disciplines and weaving the…</description><pubDate>Sun, 17 Mar 2013 05:29:01 GMT</pubDate><category>Conference</category></item><item><title>Serializing Knockout ViewModels to JSON: Quotes matter</title><link>https://coryhouse.dev/2013/04/08/serializing-knockout-viewmodels-to-json-quotes-matter/</link><guid isPermaLink="true">https://coryhouse.dev/2013/04/08/serializing-knockout-viewmodels-to-json-quotes-matter/</guid><description>The Knockout MVVM framework makes it dirt simple to serialize your ViewModels to JSON: ko.toJSON(viewModel); However, if you’re wondering why some observables a…</description><pubDate>Mon, 08 Apr 2013 16:07:33 GMT</pubDate><category>Knockout</category></item><item><title>Highlights from Codepalousa 2013</title><link>https://coryhouse.dev/2013/04/30/highlights-from-codepalousa-2013/</link><guid isPermaLink="true">https://coryhouse.dev/2013/04/30/highlights-from-codepalousa-2013/</guid><description>This was my first time attending CodepaLOUsa, and I was not disappointed. The always entertaining Carl Franklin got things rolling with a nostalgic keynote on h…</description><pubDate>Tue, 30 Apr 2013 12:58:48 GMT</pubDate><category>Conference</category></item><item><title>I’ll keep my 4 year old laptop, thanks.</title><link>https://coryhouse.dev/2013/07/05/ill-keep-my-4-year-old-laptop-thanks/</link><guid isPermaLink="true">https://coryhouse.dev/2013/07/05/ill-keep-my-4-year-old-laptop-thanks/</guid><description>I enjoy shopping around for computer equipment and like Joel Spolsky, I’m a big believer in using the best tools money can buy. And yet, I’ve held on to my trus…</description><pubDate>Sat, 06 Jul 2013 04:37:08 GMT</pubDate><category>Hardware</category></item><item><title>JavaScript Breakpoints in Chrome</title><link>https://coryhouse.dev/2013/07/26/javascript-breakpoints-in-chrome/</link><guid isPermaLink="true">https://coryhouse.dev/2013/07/26/javascript-breakpoints-in-chrome/</guid><description>When doing front-end dev, I set breakpoints in Chrome all the time. Here’s the quickest way to set a JavaScript breakpoint in Chrome: F12 if dev tools aren’t al…</description><pubDate>Fri, 26 Jul 2013 14:29:42 GMT</pubDate><category>JavaScript</category></item><item><title>Debugging JavaScript in Chrome with frames</title><link>https://coryhouse.dev/2013/08/05/debugging-javascript-in-chrome-with-frames/</link><guid isPermaLink="true">https://coryhouse.dev/2013/08/05/debugging-javascript-in-chrome-with-frames/</guid><description>When debugging JavaScript on a page with frames, it’s easy to find yourself running commands in the console in the wrong frame. I’ve hit this wall many times an…</description><pubDate>Mon, 05 Aug 2013 12:43:23 GMT</pubDate><category>JavaScript</category></item><item><title>Warn Users of Unsaved Changes with jQuery</title><link>https://coryhouse.dev/2013/08/19/warn-users-of-unsaved-changes-with-jquery/</link><guid isPermaLink="true">https://coryhouse.dev/2013/08/19/warn-users-of-unsaved-changes-with-jquery/</guid><description>In web apps it’s helpful to warn the user if they attempt to navigate away after making changes without hitting save. But the tricky part is, how do you track w…</description><pubDate>Tue, 20 Aug 2013 02:09:16 GMT</pubDate><category>JavaScript</category></item><item><title>KnockoutJS: Maintain Input Focus While Tabbing and Rebinding</title><link>https://coryhouse.dev/2013/09/27/knockoutjs-maintain-input-focus-while-tabbing-and-rebinding/</link><guid isPermaLink="true">https://coryhouse.dev/2013/09/27/knockoutjs-maintain-input-focus-while-tabbing-and-rebinding/</guid><description>Single page applications pose a unique and interesting set of problems. Libraries that offer two-way binding like KnockoutJS and AngularJS make it trivial to co…</description><pubDate>Fri, 27 Sep 2013 21:26:39 GMT</pubDate><category>JavaScript</category><category>Knockout</category></item><item><title>JavaScript Configuration Object Pattern: JSON Saves the Day</title><link>https://coryhouse.dev/2013/10/06/javascript-configuration-object-pattern/</link><guid isPermaLink="true">https://coryhouse.dev/2013/10/06/javascript-configuration-object-pattern/</guid><description>So you’re building a modern web app? That means you’re likely running a variety of client-side libraries and custom business logic in JavaScript. And one of the…</description><pubDate>Sun, 06 Oct 2013 17:43:22 GMT</pubDate><category>Clean Code</category><category>JavaScript</category></item><item><title>Writing Code? Know Your Boundaries.</title><link>https://coryhouse.dev/2013/10/07/writing-code-know-your-boundaries/</link><guid isPermaLink="true">https://coryhouse.dev/2013/10/07/writing-code-know-your-boundaries/</guid><description>Today’s developers are cursed blessed with a massive list of libraries and technologies for solving problems. And some of the worst sins against code stem from …</description><pubDate>Tue, 08 Oct 2013 03:33:23 GMT</pubDate><category>Clean Code</category><category>JavaScript</category></item><item><title>Writing in a Dynamic Language? Naming Matters More.</title><link>https://coryhouse.dev/2013/10/18/dynamic-language-naming-matters-more/</link><guid isPermaLink="true">https://coryhouse.dev/2013/10/18/dynamic-language-naming-matters-more/</guid><description>Sure, well-named variables and functions are important in all programming languages. But when is a name good enough? And when is it especially critical? I just …</description><pubDate>Sat, 19 Oct 2013 02:23:47 GMT</pubDate><category>Clean Code</category></item><item><title>Programming Your Brain: The Art of Learning in Three Steps</title><link>https://coryhouse.dev/2013/12/14/programming-your-brain-the-art-of-learning-in-three-steps/</link><guid isPermaLink="true">https://coryhouse.dev/2013/12/14/programming-your-brain-the-art-of-learning-in-three-steps/</guid><description>From time to time, I run into people who are interested in breaking into programming. Last night at the company holiday party a guy (we’ll call him Sam) walked …</description><pubDate>Sun, 15 Dec 2013 05:15:16 GMT</pubDate><category>Self Improvement</category></item><item><title>This is somewhat embarrassing, isn’t it?</title><link>https://coryhouse.dev/2013/12/27/how-one-blog-post-landed-30000-readers-in-two-days/</link><guid isPermaLink="true">https://coryhouse.dev/2013/12/27/how-one-blog-post-landed-30000-readers-in-two-days/</guid><description>It seems we can’t find what you’re looking for. Perhaps searching, or one of the links below, can help. Search Recent Posts AngularJS: The De Facto Standard for…</description><pubDate>Fri, 27 Dec 2013 12:00:00 GMT</pubDate></item><item><title>Seven Reasons Clean Code Matters</title><link>https://coryhouse.dev/2013/12/29/seven-reasons-clean-code-matters/</link><guid isPermaLink="true">https://coryhouse.dev/2013/12/29/seven-reasons-clean-code-matters/</guid><description>Anyone who knows me well knows the one technical topic I’m unapologetically religious about is the importance of clean code. I recently wrote a guest post on th…</description><pubDate>Sun, 29 Dec 2013 21:56:26 GMT</pubDate><category>Clean Code</category></item><item><title>This is somewhat embarrassing, isn’t it?</title><link>https://coryhouse.dev/2014/01/05/lean-software-architecture-focus-on-the-pain/</link><guid isPermaLink="true">https://coryhouse.dev/2014/01/05/lean-software-architecture-focus-on-the-pain/</guid><description>It seems we can’t find what you’re looking for. Perhaps searching, or one of the links below, can help. Search Recent Posts Who Dictates Software Quality: Clien…</description><pubDate>Sun, 05 Jan 2014 12:00:00 GMT</pubDate></item><item><title>Hey Developer, Are You Focusing on the Right Thing?</title><link>https://coryhouse.dev/2014/01/09/hey-developer-are-you-focusing-on-the-right-thing/</link><guid isPermaLink="true">https://coryhouse.dev/2014/01/09/hey-developer-are-you-focusing-on-the-right-thing/</guid><description>At a certain point (perhaps sooner than you think), becoming more technically competent isn’t going to change the trajectory of your life. You have to change yo…</description><pubDate>Thu, 09 Jan 2014 14:19:00 GMT</pubDate><category>Self Improvement</category></item><item><title>Want to Get Better? Here’s a Strategy to Solicit Genuine Useful Feedback</title><link>https://coryhouse.dev/2014/01/12/want-to-get-better-heres-a-strategy-to-solicit-genuine-useful-feedback/</link><guid isPermaLink="true">https://coryhouse.dev/2014/01/12/want-to-get-better-heres-a-strategy-to-solicit-genuine-useful-feedback/</guid><description>I just wrapped up presenting two sessions at Codemash and I’ve never learned more about how to improve from a single session. How? Well, a few days ago I was ch…</description><pubDate>Sun, 12 Jan 2014 21:35:19 GMT</pubDate><category>Self Improvement</category></item><item><title>Lean Software Architecture: Focus on the Pain – Part 1 of 3</title><link>https://coryhouse.dev/2014/01/16/real-world-architecture-focus-on-the-pain/</link><guid isPermaLink="true">https://coryhouse.dev/2014/01/16/real-world-architecture-focus-on-the-pain/</guid><description>An architect’s job is to manage complexity, not increase it. Yet the developer life is filled with jargon, acronyms, and seemingly infinite choices. So how do w…</description><pubDate>Thu, 16 Jan 2014 14:00:23 GMT</pubDate><category>Architecture</category></item><item><title>13″ Haswell Ultrabook Showdown</title><link>https://coryhouse.dev/2014/01/17/13-haswell-ultrabook-showdown/</link><guid isPermaLink="true">https://coryhouse.dev/2014/01/17/13-haswell-ultrabook-showdown/</guid><description>I recently decided it’s time to pickup a better machine for traveling and working unplugged. As a frequent conference speaker and remote worker, I need a machin…</description><pubDate>Fri, 17 Jan 2014 20:59:34 GMT</pubDate><category>Hardware</category></item><item><title>David &amp; Goliath: Haswell Ultrabook vs Desktop Replacement Laptop</title><link>https://coryhouse.dev/2014/01/18/haswell-ultrabook-vs-desktop-replacement-laptop/</link><guid isPermaLink="true">https://coryhouse.dev/2014/01/18/haswell-ultrabook-vs-desktop-replacement-laptop/</guid><description>Okay, so it was only a few months ago I was rambling on about how I am quite happy with my four year old desktop replacement style Dell laptop. It’s been comple…</description><pubDate>Sat, 18 Jan 2014 22:58:01 GMT</pubDate><category>Hardware</category></item><item><title>Lean Software Architecture: Build The Simplest Thing – Part 2 of 3</title><link>https://coryhouse.dev/2014/01/20/lean-software-architecture-build-the-simplest-thing-part-2/</link><guid isPermaLink="true">https://coryhouse.dev/2014/01/20/lean-software-architecture-build-the-simplest-thing-part-2/</guid><description>In part one of this series, we outlined some specific examples of complexities that today’s software architects may consider. And we considered how each potenti…</description><pubDate>Mon, 20 Jan 2014 15:03:38 GMT</pubDate><category>Architecture</category></item><item><title>Lean Software Architecture: Focus On the Pain – Part 3 of 3</title><link>https://coryhouse.dev/2014/01/23/lean-software-architecture-focus-on-the-pain-part-3/</link><guid isPermaLink="true">https://coryhouse.dev/2014/01/23/lean-software-architecture-focus-on-the-pain-part-3/</guid><description>In previous parts of this series, we outlined a simple two step process for being a lean software architect: Build the simplest thing that could possibly work F…</description><pubDate>Thu, 23 Jan 2014 13:01:46 GMT</pubDate><category>Architecture</category></item><item><title>Where Should an Architect Begin?</title><link>https://coryhouse.dev/2014/01/24/where-should-a-software-architect-begin/</link><guid isPermaLink="true">https://coryhouse.dev/2014/01/24/where-should-a-software-architect-begin/</guid><description>Imagine you’re dropped in a new position with no one there to help provide a smooth knowledge transition. It’s like being dropped right out of the sky. That’s e…</description><pubDate>Fri, 24 Jan 2014 14:33:54 GMT</pubDate><category>Architecture</category></item><item><title>Who Dictates Software Quality: Client or Coder?</title><link>https://coryhouse.dev/2014/01/28/who-chooses-quality-client-or-coder/</link><guid isPermaLink="true">https://coryhouse.dev/2014/01/28/who-chooses-quality-client-or-coder/</guid><description>A friend of mine brought up a common struggle for many software developers, particularly independent consultants: How do you influence your clients to demand th…</description><pubDate>Wed, 29 Jan 2014 05:41:06 GMT</pubDate><category>Architecture</category><category>Testing</category></item><item><title>User Interface Framework Showdown: Bootstrap, Foundation, KendoUI, and jQueryUI</title><link>https://coryhouse.dev/2014/02/26/selecting-one-user-interface-framework-the-impossible-dream/</link><guid isPermaLink="true">https://coryhouse.dev/2014/02/26/selecting-one-user-interface-framework-the-impossible-dream/</guid><description>Standards might not be exciting, but man, they’re important. Without them everyone does their own thing, reinvents the wheel, and unnecessarily injects new fram…</description><pubDate>Thu, 27 Feb 2014 03:41:05 GMT</pubDate><category>UI</category></item><item><title>AngularJS: The De Facto Standard for SPA Development?</title><link>https://coryhouse.dev/2014/04/14/angularjs-the-de-facto-standard-for-spa-development/</link><guid isPermaLink="true">https://coryhouse.dev/2014/04/14/angularjs-the-de-facto-standard-for-spa-development/</guid><description>One year ago, I started a large Single Page Application (SPA) project. I spent a few weeks Googling and biting my nails, trying to choose between the various op…</description><pubDate>Tue, 15 Apr 2014 02:42:14 GMT</pubDate><category>JavaScript</category></item><item><title>The TDD Divide: Everyone is Right</title><link>https://coryhouse.dev/2014/05/01/the-tdd-divide/</link><guid isPermaLink="true">https://coryhouse.dev/2014/05/01/the-tdd-divide/</guid><description>I’ve been enjoying the back and forth regarding the Death of TDD on the interwebs. The intellectual volleying between “legalists” like Robert C. Martin (Uncle B…</description><pubDate>Thu, 01 May 2014 13:33:57 GMT</pubDate><category>Testing</category></item><item><title>An Epic Week of Development in Norway</title><link>https://coryhouse.dev/2014/06/19/ndc-oslo-2014/</link><guid isPermaLink="true">https://coryhouse.dev/2014/06/19/ndc-oslo-2014/</guid><description>tldr; NDC was amazing! I was a guest on .NET Rocks! My recorded sessions from NDC in Oslo, Norway are below. And I finally got to meet Uncle Bob! I just had an …</description><pubDate>Thu, 19 Jun 2014 18:02:19 GMT</pubDate><category>Conference</category></item><item><title>Knockout Bindings are Evaluated Left to Right</title><link>https://coryhouse.dev/2014/08/04/knockout-bindings-are-evaluated-left-to-right/</link><guid isPermaLink="true">https://coryhouse.dev/2014/08/04/knockout-bindings-are-evaluated-left-to-right/</guid><description>I just resolved an odd behavior that tripped me up. Have you ever attached a click handler to a checkbox/radio with Knockout and wondered why the old value is r…</description><pubDate>Mon, 04 Aug 2014 20:21:11 GMT</pubDate><category>Uncategorized</category></item><item><title>Shadow DOM vs iframes</title><link>https://coryhouse.dev/2014/10/02/shadow-dom-vs-iframes/</link><guid isPermaLink="true">https://coryhouse.dev/2014/10/02/shadow-dom-vs-iframes/</guid><description>I’m really excited about the new HTML5 Web Components Standard. The Shadow DOM is particularly interesting, as it finally gives us encapsulated markup and styli…</description><pubDate>Fri, 03 Oct 2014 03:52:48 GMT</pubDate><category>Web Components</category></item><item><title>Two Quick TFS Performance Tips</title><link>https://coryhouse.dev/2014/10/09/two-quick-tfs-performance-tips/</link><guid isPermaLink="true">https://coryhouse.dev/2014/10/09/two-quick-tfs-performance-tips/</guid><description>Team Foundation Server (TFS) continues to improve, but one area I’ve struggled recently is performance. I work in a very large codebase that knocks up against t…</description><pubDate>Thu, 09 Oct 2014 13:01:34 GMT</pubDate><category>Source Control</category></item><item><title>6 Quick Tips for Presenting Code in Visual Studio</title><link>https://coryhouse.dev/2014/11/16/5-quick-tips-for-presenting-code-in-visual-studio/</link><guid isPermaLink="true">https://coryhouse.dev/2014/11/16/5-quick-tips-for-presenting-code-in-visual-studio/</guid><description>As a frequent conference presenter and attendee, I often see live code walk-throughs. There are a variety of tweaks you can make to optimize the Visual Studio e…</description><pubDate>Sun, 16 Nov 2014 12:00:00 GMT</pubDate></item><item><title>6 Quick Tips for Presenting Code in Visual Studio</title><link>https://coryhouse.dev/2014/11/16/presenting-code-in-visual-studio/</link><guid isPermaLink="true">https://coryhouse.dev/2014/11/16/presenting-code-in-visual-studio/</guid><description>As a frequent conference presenter and attendee, I often see live code walk-throughs. There are a variety of tweaks you can make to optimize the Visual Studio e…</description><pubDate>Mon, 17 Nov 2014 04:46:42 GMT</pubDate><category>Visual Studio</category></item><item><title>Cache Busting via Gulp.js</title><link>https://coryhouse.dev/2015/01/25/cache-busting-via-gulp-js/</link><guid isPermaLink="true">https://coryhouse.dev/2015/01/25/cache-busting-via-gulp-js/</guid><description>Have you ever thought about how many HTTP requests your app is wasting? Many developers think the native caching mechanisms of browsers are sufficient. However,…</description><pubDate>Mon, 26 Jan 2015 03:47:36 GMT</pubDate><category>Automated Builds</category><category>JavaScript</category></item><item><title>7 Ways to Handle Circular Dependencies in RequireJS</title><link>https://coryhouse.dev/2015/02/03/circular-dependencies-in-requirejs/</link><guid isPermaLink="true">https://coryhouse.dev/2015/02/03/circular-dependencies-in-requirejs/</guid><description>When working with RequireJS, you’re likely to run across two modules that need to reference each other. When you create a circular reference using the standard …</description><pubDate>Tue, 03 Feb 2015 14:21:10 GMT</pubDate><category>Architecture</category><category>JavaScript</category></item><item><title>Is Separating HTML and JavaScript Harmful?</title><link>https://coryhouse.dev/2015/03/18/is-separating-html-and-javascript-harmful/</link><guid isPermaLink="true">https://coryhouse.dev/2015/03/18/is-separating-html-and-javascript-harmful/</guid><description>I’ve spent the last many years religiously honoring the principle of separation of concerns. Separating concerns produces code that’s easier to read, maintain, …</description><pubDate>Wed, 18 Mar 2015 14:54:54 GMT</pubDate><category>JavaScript</category></item><item><title>Why I’m Not Sold on MongoDB</title><link>https://coryhouse.dev/2015/04/13/why-im-not-sold-on-mongodb/</link><guid isPermaLink="true">https://coryhouse.dev/2015/04/13/why-im-not-sold-on-mongodb/</guid><description>Disclaimer: While I’ve experimented with MongoDB, I haven’t deployed it to production. These are my honest reservations that keep me from deploying a production…</description><pubDate>Mon, 13 Apr 2015 12:49:19 GMT</pubDate><category>Databases</category></item><item><title>What Makes a Great Coding Interview? Be Real.</title><link>https://coryhouse.dev/2015/05/07/coding-interviews/</link><guid isPermaLink="true">https://coryhouse.dev/2015/05/07/coding-interviews/</guid><description>I’ve both taken and created a lot of coding interviews throughout the years. And I’ve learned there are many ways to screw it up. The worst tests feel like a wa…</description><pubDate>Thu, 07 May 2015 12:43:47 GMT</pubDate><category>Interviewing</category></item><item><title>Conferences Are For Why, Not How</title><link>https://coryhouse.dev/2015/06/28/conferences-teach-why-not-how/</link><guid isPermaLink="true">https://coryhouse.dev/2015/06/28/conferences-teach-why-not-how/</guid><description>There are dozens of solid ways to level up as a developer. Online video, blogs, niche mailing lists, books, reading source code on GitHub, and of course simply …</description><pubDate>Sun, 28 Jun 2015 20:18:24 GMT</pubDate><category>Conference</category><category>Speaking</category></item><item><title>Webpack vs Browserify</title><link>https://coryhouse.dev/2015/07/27/webpack-vs-browserify/</link><guid isPermaLink="true">https://coryhouse.dev/2015/07/27/webpack-vs-browserify/</guid><description>If you need a cabin, why start with a mere pile of logs? In the land of JavaScript, no one is king for long. Just last year Grunt was effectively dethroned by G…</description><pubDate>Mon, 27 Jul 2015 13:54:16 GMT</pubDate><category>Automated Builds</category><category>JavaScript</category></item><item><title>Building Applications with React and Flux</title><link>https://coryhouse.dev/2015/08/13/building-applications-with-react-and-flux/</link><guid isPermaLink="true">https://coryhouse.dev/2015/08/13/building-applications-with-react-and-flux/</guid><description>It’s live! I just published a new course on Pluralsight: “Building Applications with React and Flux“. This is the product of over six months of preparation incl…</description><pubDate>Fri, 14 Aug 2015 03:09:36 GMT</pubDate><category>Uncategorized</category></item><item><title>React Demo Apps</title><link>https://coryhouse.dev/2015/08/25/react-demo-apps/</link><guid isPermaLink="true">https://coryhouse.dev/2015/08/25/react-demo-apps/</guid><description>I just wrapped up six months of hard work authoring my new Pluralsight course “Building Applications with React and Flux“. During that time I dissected over 30 …</description><pubDate>Tue, 25 Aug 2015 11:14:05 GMT</pubDate><category>JavaScript</category></item><item><title>React’s JSX: The Other Side of the Coin</title><link>https://coryhouse.dev/2015/09/01/reacts-jsx-the-other-side-of-the-coin/</link><guid isPermaLink="true">https://coryhouse.dev/2015/09/01/reacts-jsx-the-other-side-of-the-coin/</guid><description>When React was released, many people took one look at JSX and lost their minds. What are these angle brackets doing in JavaScript?! What about separation of con…</description><pubDate>Tue, 01 Sep 2015 19:58:54 GMT</pubDate><category>JavaScript</category><category>Uncategorized</category></item><item><title>Internet Explorer 8 is (nearly) Dead</title><link>https://coryhouse.dev/2015/10/07/internet-explorer-8-is-nearly-dead/</link><guid isPermaLink="true">https://coryhouse.dev/2015/10/07/internet-explorer-8-is-nearly-dead/</guid><description>IE8’s death has been rumored for a long while, but the final nail in the coffin is coming January 12, 2016: Starting on that date, Microsoft will only support t…</description><pubDate>Wed, 07 Oct 2015 13:17:20 GMT</pubDate><category>Web Development</category></item><item><title>12 Rules for Professional JavaScript in 2015</title><link>https://coryhouse.dev/2015/10/21/12-rules-for-professional-javascript-in-2015/</link><guid isPermaLink="true">https://coryhouse.dev/2015/10/21/12-rules-for-professional-javascript-in-2015/</guid><description>Well, that’s disturbing.Disclaimer: I speak in absolutes below for brevity. Yes, nearly every “rule” in programming has exceptions. JavaScript is hard. It moves…</description><pubDate>Wed, 21 Oct 2015 12:03:47 GMT</pubDate><category>Clean Code</category><category>JavaScript</category></item><item><title>Casing jargon for developers: camelCase PascalCase kebab-case Train-Case...</title><link>https://coryhouse.dev/2015/12/31/tweet-682592407515455488/</link><guid isPermaLink="true">https://coryhouse.dev/2015/12/31/tweet-682592407515455488/</guid><description>Casing jargon for developers: camelCase PascalCase kebab-case Train-Case snake_case Camel_Snake_Case SCREAMING_SNAKE_CASE #programming</description><pubDate>Thu, 31 Dec 2015 16:01:26 GMT</pubDate><category>Tweets</category></item><item><title>Angular 2 versus React: There Will Be Blood</title><link>https://coryhouse.dev/2016/01/03/tweet-683755613743132673/</link><guid isPermaLink="true">https://coryhouse.dev/2016/01/03/tweet-683755613743132673/</guid><description>Angular 2 versus React: There Will Be Blood. My detailed comparison is live! http://buff.ly/1Rjyclb #angularjs #reactjs #javascript</description><pubDate>Sun, 03 Jan 2016 21:03:36 GMT</pubDate><category>Tweets</category></item><item><title>Angular 2 versus React</title><link>https://coryhouse.dev/2016/01/04/angular-2-versus-react/</link><guid isPermaLink="true">https://coryhouse.dev/2016/01/04/angular-2-versus-react/</guid><description>Angular 2 has reached Beta and appears poised to become the hot new framework of 2016. It’s time for a showdown. Let’s see how it stacks up against 2015’s darli…</description><pubDate>Tue, 05 Jan 2016 02:11:52 GMT</pubDate><category>JavaScript</category><category>Web Development</category></item><item><title>Why I Left Gulp and Grunt for npm Scripts</title><link>https://coryhouse.dev/2016/01/18/why-i-left-gulp-and-grunt-for-npm-scripts/</link><guid isPermaLink="true">https://coryhouse.dev/2016/01/18/why-i-left-gulp-and-grunt-for-npm-scripts/</guid><description>I know what you’re thinking. WAT?! Didn’t Gulp just kill Grunt? Why can’t we just be content for a few minutes here in JavaScript land? I hear ya, but… I’ve fou…</description><pubDate>Mon, 18 Jan 2016 15:17:16 GMT</pubDate><category>Automated Builds</category><category>JavaScript</category></item><item><title>Common coding mistake: Trying to do too much in one commit</title><link>https://coryhouse.dev/2016/03/18/tweet-710634575018528772/</link><guid isPermaLink="true">https://coryhouse.dev/2016/03/18/tweet-710634575018528772/</guid><description>Common coding mistake: Trying to do too much in one commit. Commits should honor the single responsibility principle too.</description><pubDate>Fri, 18 Mar 2016 01:11:00 GMT</pubDate><category>Tweets</category></item><item><title>In Defense of ES6 Classes</title><link>https://coryhouse.dev/2016/03/29/in-defense-of-es6-classes/</link><guid isPermaLink="true">https://coryhouse.dev/2016/03/29/in-defense-of-es6-classes/</guid><description>These days it feels like everyone is attacking classes in JavaScript. Developers I respect say ES6 classes are a virus. We’ve compiled long lists on the reasons…</description><pubDate>Tue, 29 Mar 2016 13:09:25 GMT</pubDate><category>JavaScript</category><category>Uncategorized</category></item><item><title>It&apos;s live</title><link>https://coryhouse.dev/2016/05/21/tweet-733989140832899072/</link><guid isPermaLink="true">https://coryhouse.dev/2016/05/21/tweet-733989140832899072/</guid><description>It&apos;s live! React &amp; Redux in ES6 just published on Pluralsight! http://buff.ly/1NDvEiU #reactjs #javascript</description><pubDate>Sat, 21 May 2016 11:53:42 GMT</pubDate><category>Tweets</category></item><item><title>React and Redux in ES6 – Live!</title><link>https://coryhouse.dev/2016/05/23/react-and-redux-in-es6-pluralsight/</link><guid isPermaLink="true">https://coryhouse.dev/2016/05/23/react-and-redux-in-es6-pluralsight/</guid><description>After over 6 months of preparation, research, writing, and recording, “Building Applications in React and Redux in ES6” just published on Pluralsight! This isn’…</description><pubDate>Mon, 23 May 2016 11:50:39 GMT</pubDate><category>Architecture</category><category>Automated Builds</category><category>JavaScript</category><category>Testing</category></item><item><title>I Don’t Do Q&amp;A at the End of Conference Talks. Here’s Why.</title><link>https://coryhouse.dev/2016/07/07/questions-conference-talks/</link><guid isPermaLink="true">https://coryhouse.dev/2016/07/07/questions-conference-talks/</guid><description>I’m admittedly in the minority: At the end of a conference or user group talk, how should the speaker handle questions? — Cory House (@housecor) July 1, 2016 Q&amp;…</description><pubDate>Thu, 07 Jul 2016 16:49:18 GMT</pubDate><category>Conference</category><category>Speaking</category><category>Uncategorized</category></item><item><title>Devs, watch out for this in 2016: You can easily spend all your time...</title><link>https://coryhouse.dev/2016/07/23/tweet-756657854078185473/</link><guid isPermaLink="true">https://coryhouse.dev/2016/07/23/tweet-756657854078185473/</guid><description>Devs, watch out for this in 2016: You can easily spend all your time learning fleeting new tech instead of the timeless fundamentals.</description><pubDate>Sat, 23 Jul 2016 01:11:05 GMT</pubDate><category>Tweets</category></item><item><title>Posted: React Binding Patterns: 5 Approaches for Handling `this` keyword...</title><link>https://coryhouse.dev/2016/08/17/tweet-765998058161274880/</link><guid isPermaLink="true">https://coryhouse.dev/2016/08/17/tweet-765998058161274880/</guid><description>Posted: React Binding Patterns: 5 Approaches for Handling `this` keyword http://buff.ly/2beVF8D #reactjs</description><pubDate>Wed, 17 Aug 2016 19:45:43 GMT</pubDate><category>Tweets</category></item><item><title>React Binding Patterns: 5 Approaches for Handling `this`</title><link>https://coryhouse.dev/2016/08/18/react-binding-patterns-this-keyword/</link><guid isPermaLink="true">https://coryhouse.dev/2016/08/18/react-binding-patterns-this-keyword/</guid><description>JavaScript’s this keyword behavior has confused developers for ages. Coding with binds is hard. There are at least five ways to handle the this context in React…</description><pubDate>Thu, 18 Aug 2016 18:01:11 GMT</pubDate><category>JavaScript</category></item><item><title>Tip: Avoid using switch in #JavaScript</title><link>https://coryhouse.dev/2016/08/19/tweet-766672072504406016/</link><guid isPermaLink="true">https://coryhouse.dev/2016/08/19/tweet-766672072504406016/</guid><description>Tip: Avoid using switch in #JavaScript. Consider the method lookup pattern. Here&apos;s why: http://buff.ly/2bnqUMT</description><pubDate>Fri, 19 Aug 2016 16:24:00 GMT</pubDate><category>Tweets</category></item><item><title>Important: Named imports still import *the entire resource*</title><link>https://coryhouse.dev/2016/09/30/tweet-781936982612185093/</link><guid isPermaLink="true">https://coryhouse.dev/2016/09/30/tweet-781936982612185093/</guid><description>Important: Named imports still import *the entire resource*. Need only part of a lib? Explicitly import it. Huge impact. #javascript</description><pubDate>Fri, 30 Sep 2016 19:21:18 GMT</pubDate><category>Tweets</category></item><item><title>Save typing in npm: npm i -D &lt;- install ---save-dev npm i -S &lt;-...</title><link>https://coryhouse.dev/2016/10/07/tweet-784480619648679937/</link><guid isPermaLink="true">https://coryhouse.dev/2016/10/07/tweet-784480619648679937/</guid><description>Save typing in npm: npm i -D &lt;- install ---save-dev npm i -S &lt;- install --save npm t &lt;- npm test #node #javascript</description><pubDate>Fri, 07 Oct 2016 19:48:49 GMT</pubDate><category>Tweets</category></item><item><title>Want to Code Faster? Timebox Impediments</title><link>https://coryhouse.dev/2016/11/02/want-to-code-faster-timebox-impediments/</link><guid isPermaLink="true">https://coryhouse.dev/2016/11/02/want-to-code-faster-timebox-impediments/</guid><description>Confession: Last week I burned an entire morning configuring SSH key authentication on our Enterprise Github account. I tried everything I could think of, but c…</description><pubDate>Wed, 02 Nov 2016 18:28:20 GMT</pubDate><category>Methodology</category><category>Self Improvement</category></item><item><title>It&apos;s live</title><link>https://coryhouse.dev/2016/11/11/tweet-797072516909068289/</link><guid isPermaLink="true">https://coryhouse.dev/2016/11/11/tweet-797072516909068289/</guid><description>It&apos;s live! &quot;Building a JavaScript Development Environment&quot; just published on @pluralsight! http://app.pluralsight.com/author/cory-house #javascript</description><pubDate>Fri, 11 Nov 2016 13:44:31 GMT</pubDate><category>Tweets</category></item><item><title>Building a JavaScript Development Environment – Live on Pluralsight!</title><link>https://coryhouse.dev/2016/11/12/building-a-javascript-development-environment-live-on-pluralsight/</link><guid isPermaLink="true">https://coryhouse.dev/2016/11/12/building-a-javascript-development-environment-live-on-pluralsight/</guid><description>I just published my newest course on Pluralsight! Building a JavaScript application from scratch today is overwhelming. You have to make decisions about package…</description><pubDate>Sat, 12 Nov 2016 22:48:06 GMT</pubDate><category>JavaScript</category></item><item><title>The hardest decision in software development today: What should I ignore</title><link>https://coryhouse.dev/2016/11/16/tweet-798713030955696128/</link><guid isPermaLink="true">https://coryhouse.dev/2016/11/16/tweet-798713030955696128/</guid><description>The hardest decision in software development today: What should I ignore? We can&apos;t possibly follow it all. #specialize</description><pubDate>Wed, 16 Nov 2016 02:23:20 GMT</pubDate><category>Tweets</category></item><item><title>A Week with the New Macbook Pro with Touch Bar</title><link>https://coryhouse.dev/2016/11/27/a-week-with-the-new-macbook-pro-with-touch-bar/</link><guid isPermaLink="true">https://coryhouse.dev/2016/11/27/a-week-with-the-new-macbook-pro-with-touch-bar/</guid><description>I purchased the new Macbook Pro (MBP for short, below) with Touch Bar one week ago. I chose the maxed out “standard” model for $2,799 at the local Apple store: …</description><pubDate>Sun, 27 Nov 2016 22:26:21 GMT</pubDate><category>Hardware</category></item><item><title>Why Do Developers Run Macs?</title><link>https://coryhouse.dev/2016/11/27/why-do-developers-run-macs/</link><guid isPermaLink="true">https://coryhouse.dev/2016/11/27/why-do-developers-run-macs/</guid><description>I spoke at Fluent conference in San Francisco in March of 2015. I looked out in the crowd as I was setting up and saw this: See all those glowing Apples? Nearly…</description><pubDate>Sun, 27 Nov 2016 22:53:14 GMT</pubDate><category>Hardware</category></item><item><title>The JavaScript Starter Kit Manifesto</title><link>https://coryhouse.dev/2016/11/29/the-javascript-starter-kit-manifesto/</link><guid isPermaLink="true">https://coryhouse.dev/2016/11/29/the-javascript-starter-kit-manifesto/</guid><description>My talk from Nodevember just went live on YouTube! This is my sales pitch: Starting from scratch today in JavaScript is crazy. The solution? Your team needs a J…</description><pubDate>Tue, 29 Nov 2016 14:59:26 GMT</pubDate><category>JavaScript</category><category>Methodology</category><category>Speaking</category></item><item><title>I&apos;ve switched from Webstorm to VSCode: 1 Faster 2 Sips battery 3 Entire UI...</title><link>https://coryhouse.dev/2017/01/11/tweet-819244501508247553/</link><guid isPermaLink="true">https://coryhouse.dev/2017/01/11/tweet-819244501508247553/</guid><description>I&apos;ve switched from Webstorm to VSCode: 1 Faster 2 Sips battery 3 Entire UI scales via ctrl+/- (😍 for demos) 4 Multiple solutions per window</description><pubDate>Wed, 11 Jan 2017 18:08:04 GMT</pubDate><category>Tweets</category></item><item><title>To increase quality: 1 TDD 2 Pair 3 Stop bug tracking</title><link>https://coryhouse.dev/2017/01/18/tweet-821725850945130500/</link><guid isPermaLink="true">https://coryhouse.dev/2017/01/18/tweet-821725850945130500/</guid><description>To increase quality: 1 TDD 2 Pair 3 Stop bug tracking. Zero defect policy. New bug = priority #1. 4 Simple design (3-4 hour tasks) -@chzy</description><pubDate>Wed, 18 Jan 2017 14:28:04 GMT</pubDate><category>Tweets</category></item><item><title>React tip: State that references itself leads to out-of-sync bugs</title><link>https://coryhouse.dev/2017/03/07/tweet-839125277842231298/</link><guid isPermaLink="true">https://coryhouse.dev/2017/03/07/tweet-839125277842231298/</guid><description>React tip: State that references itself leads to out-of-sync bugs. Instead, generate derived data in render or a function. #reactjs</description><pubDate>Tue, 07 Mar 2017 14:47:11 GMT</pubDate><category>Tweets</category></item><item><title>Node debugging used to be 😔 In @code it&apos;s 😍 Watch window, call stack,...</title><link>https://coryhouse.dev/2017/03/09/tweet-839850018202873860/</link><guid isPermaLink="true">https://coryhouse.dev/2017/03/09/tweet-839850018202873860/</guid><description>Node debugging used to be 😔 In @code it&apos;s 😍 Watch window, call stack, hover vars to inspect... Point at a file and go! So slick. #nodejs</description><pubDate>Thu, 09 Mar 2017 14:47:02 GMT</pubDate><category>Tweets</category></item><item><title>My take on #reactjs setState: 1</title><link>https://coryhouse.dev/2017/03/17/tweet-842705274339319808/</link><guid isPermaLink="true">https://coryhouse.dev/2017/03/17/tweet-842705274339319808/</guid><description>My take on #reactjs setState: 1. Use setState when 1 component uses the data. 2. Use Redux when many components use the data.</description><pubDate>Fri, 17 Mar 2017 11:52:48 GMT</pubDate><category>Tweets</category></item><item><title>ES6 modules support lands in browsers</title><link>https://coryhouse.dev/2017/04/12/tweet-852156103928532993/</link><guid isPermaLink="true">https://coryhouse.dev/2017/04/12/tweet-852156103928532993/</guid><description>ES6 modules support lands in browsers! 🎉 Time to rethink bundling? 🤔 Nope. Automated builds are here to stay: http://buff.ly/2p2U3H5</description><pubDate>Wed, 12 Apr 2017 13:47:02 GMT</pubDate><category>Tweets</category></item><item><title>After over 6 months of heavy research &amp; writing, I&apos;ve finally started...</title><link>https://coryhouse.dev/2017/04/19/tweet-854686135368417281/</link><guid isPermaLink="true">https://coryhouse.dev/2017/04/19/tweet-854686135368417281/</guid><description>After over 6 months of heavy research &amp; writing, I&apos;ve finally started recording! 🎉 Can&apos;t wait for this to go live! #reactjs @pluralsight</description><pubDate>Wed, 19 Apr 2017 13:20:28 GMT</pubDate><category>Tweets</category></item><item><title>Software maintenance is not &quot;keep it working like before.&quot; It is &quot;keep being...</title><link>https://coryhouse.dev/2017/04/25/tweet-856867167350005762/</link><guid isPermaLink="true">https://coryhouse.dev/2017/04/25/tweet-856867167350005762/</guid><description>Software maintenance is not &quot;keep it working like before.&quot; It is &quot;keep being useful in a changing world&quot;. @jessitron</description><pubDate>Tue, 25 Apr 2017 13:47:07 GMT</pubDate><category>Tweets</category></item><item><title>A function name should describe what it does, not when it&apos;s run</title><link>https://coryhouse.dev/2017/04/28/tweet-857973559431491586/</link><guid isPermaLink="true">https://coryhouse.dev/2017/04/28/tweet-857973559431491586/</guid><description>A function name should describe what it does, not when it&apos;s run. Why? Good function names summarize what happens inside. #cleancode</description><pubDate>Fri, 28 Apr 2017 15:03:31 GMT</pubDate><category>Tweets</category></item><item><title>Love this</title><link>https://coryhouse.dev/2017/04/29/tweet-858132227586215938/</link><guid isPermaLink="true">https://coryhouse.dev/2017/04/29/tweet-858132227586215938/</guid><description>Love this. This is why I don&apos;t hesitate to spend money on computer equipment. &quot;Spend your money where you spend your time.&quot; - Noah Kagan</description><pubDate>Sat, 29 Apr 2017 01:34:01 GMT</pubDate><category>Tweets</category></item><item><title>Q: &quot;How about we just ignore tests for now</title><link>https://coryhouse.dev/2017/05/04/tweet-860202162546237445/</link><guid isPermaLink="true">https://coryhouse.dev/2017/05/04/tweet-860202162546237445/</guid><description>Q: &quot;How about we just ignore tests for now? We&apos;re moving too fast.&quot; A: &quot;Tests are like brakes. Going fast without them is dangerous.&quot;</description><pubDate>Thu, 04 May 2017 18:39:11 GMT</pubDate><category>Tweets</category></item><item><title>So here&apos;s my favorite new way to rapidly prototype React components</title><link>https://coryhouse.dev/2017/05/06/tweet-860853412157640704/</link><guid isPermaLink="true">https://coryhouse.dev/2017/05/06/tweet-860853412157640704/</guid><description>So here&apos;s my favorite new way to rapidly prototype React components. Can easily share too! 👍 http://buff.ly/2qJwVM3</description><pubDate>Sat, 06 May 2017 13:47:01 GMT</pubDate><category>Tweets</category></item><item><title>Here’s Why Client-Side Rendering Won</title><link>https://coryhouse.dev/2017/05/08/heres-why-client-side-rendering-won/</link><guid isPermaLink="true">https://coryhouse.dev/2017/05/08/heres-why-client-side-rendering-won/</guid><description>A decade ago, nearly everyone was rendering their web applications on the server using technologies like ASP.NET, Ruby on Rails, Java, and PHP. Then handy libra…</description><pubDate>Tue, 09 May 2017 01:31:21 GMT</pubDate><category>JavaScript</category><category>UI</category><category>Web Development</category></item><item><title>Sure, destructuring props makes code concise</title><link>https://coryhouse.dev/2017/05/10/tweet-862388707315339264/</link><guid isPermaLink="true">https://coryhouse.dev/2017/05/10/tweet-862388707315339264/</guid><description>Sure, destructuring props makes code concise. But another benefit just occurred to me: Autocompletion support. #reactjs</description><pubDate>Wed, 10 May 2017 19:27:44 GMT</pubDate><category>Tweets</category></item><item><title>Create React App has been upgraded: Webpack 2, PWA by default, and really...</title><link>https://coryhouse.dev/2017/05/19/tweet-865584707819286528/</link><guid isPermaLink="true">https://coryhouse.dev/2017/05/19/tweet-865584707819286528/</guid><description>Create React App has been upgraded: Webpack 2, PWA by default, and really slick error overlay. Great stuff! https://facebook.github.io/react/blog/2...</description><pubDate>Fri, 19 May 2017 15:07:30 GMT</pubDate><category>Tweets</category></item><item><title>Tip: You don&apos;t need to declare a constructor in your React component to...</title><link>https://coryhouse.dev/2017/05/22/tweet-866651617998897152/</link><guid isPermaLink="true">https://coryhouse.dev/2017/05/22/tweet-866651617998897152/</guid><description>Tip: You don&apos;t need to declare a constructor in your React component to initialize state. Can use a public class field instead! #reactjs</description><pubDate>Mon, 22 May 2017 13:47:01 GMT</pubDate><category>Tweets</category></item><item><title>It&apos;s live</title><link>https://coryhouse.dev/2017/06/06/tweet-872073474071830529/</link><guid isPermaLink="true">https://coryhouse.dev/2017/06/06/tweet-872073474071830529/</guid><description>It&apos;s live! &quot;Creating Reusable React Components&quot; just published on @pluralsight! 🎉 Share your React components! http://buff.ly/2sNpbsA</description><pubDate>Tue, 06 Jun 2017 12:51:33 GMT</pubDate><category>Tweets</category></item><item><title>Wow</title><link>https://coryhouse.dev/2017/06/14/tweet-874798551267762176/</link><guid isPermaLink="true">https://coryhouse.dev/2017/06/14/tweet-874798551267762176/</guid><description>Wow. If fear holds you back, this 13 min talk by @ tferriss is a must watch. Define your fears. http://buff.ly/2rmoZ7c</description><pubDate>Wed, 14 Jun 2017 01:20:02 GMT</pubDate><category>Tweets</category></item><item><title>Tried Vue</title><link>https://coryhouse.dev/2017/06/17/tweet-875906970833883136/</link><guid isPermaLink="true">https://coryhouse.dev/2017/06/17/tweet-875906970833883136/</guid><description>Tried Vue. Fundamentally, it&apos;s the same as Angular, Ember, &amp; Knockout: It&apos;s HTML-centric. React is JS-centric. https://medium.com/@CalinLeafsha...</description><pubDate>Sat, 17 Jun 2017 02:44:30 GMT</pubDate><category>Tweets</category></item><item><title>&quot;70% of a developer&apos;s day is spent reading code.&quot; - @getify Optimize for reading</title><link>https://coryhouse.dev/2017/06/20/tweet-876976394043088897/</link><guid isPermaLink="true">https://coryhouse.dev/2017/06/20/tweet-876976394043088897/</guid><description>&quot;70% of a developer&apos;s day is spent reading code.&quot; - @getify Optimize for reading. #FluentConf #cleancode</description><pubDate>Tue, 20 Jun 2017 01:34:00 GMT</pubDate><category>Tweets</category></item><item><title>Why write pure functions</title><link>https://coryhouse.dev/2017/06/21/tweet-877338782860791808/</link><guid isPermaLink="true">https://coryhouse.dev/2017/06/21/tweet-877338782860791808/</guid><description>Why write pure functions? 1. Easy to test. 2. Easy to understand. 3. Composable. 4. Deterministic. (consistent output for a given input)</description><pubDate>Wed, 21 Jun 2017 01:34:00 GMT</pubDate><category>Tweets</category></item><item><title>Most bugs come from side effects, so write &quot;pure&quot; functions: 1</title><link>https://coryhouse.dev/2017/06/23/tweet-878063557090213888/</link><guid isPermaLink="true">https://coryhouse.dev/2017/06/23/tweet-878063557090213888/</guid><description>Most bugs come from side effects, so write &quot;pure&quot; functions: 1. Accept *all* inputs as params. 2. Don&apos;t mutate inputs. 3. Return new value.</description><pubDate>Fri, 23 Jun 2017 01:34:00 GMT</pubDate><category>Tweets</category></item><item><title>Event organizers: If you give us a quality shirt with: 1</title><link>https://coryhouse.dev/2017/07/05/tweet-882617590941708292/</link><guid isPermaLink="true">https://coryhouse.dev/2017/07/05/tweet-882617590941708292/</guid><description>Event organizers: If you give us a quality shirt with: 1. A small logo 2. No year on it We&apos;ll wear it to promote your event for *years*.</description><pubDate>Wed, 05 Jul 2017 15:10:06 GMT</pubDate><category>Tweets</category></item><item><title>Tip: You can automatically add a code review checklist to GitHub pull...</title><link>https://coryhouse.dev/2017/07/07/tweet-883304305117323264/</link><guid isPermaLink="true">https://coryhouse.dev/2017/07/07/tweet-883304305117323264/</guid><description>Tip: You can automatically add a code review checklist to GitHub pull requests by creating PULL_REQUEST_TEMPLATE.md. Here&apos;s ours:</description><pubDate>Fri, 07 Jul 2017 12:38:51 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;ve never written a conf talk, blog, or course without learning a ton in...</title><link>https://coryhouse.dev/2017/07/09/tweet-884109188158427136/</link><guid isPermaLink="true">https://coryhouse.dev/2017/07/09/tweet-884109188158427136/</guid><description>I&apos;ve never written a conf talk, blog, or course without learning a ton in the process. Even topics I thought I had nailed. To learn, teach.</description><pubDate>Sun, 09 Jul 2017 17:57:11 GMT</pubDate><category>Tweets</category></item><item><title>Great idea</title><link>https://coryhouse.dev/2017/07/10/tweet-884432026853658625/</link><guid isPermaLink="true">https://coryhouse.dev/2017/07/10/tweet-884432026853658625/</guid><description>Great idea. Keep your cables organized and avoid them falling behind your desk with simple binder clips. http://buff.ly/2t4NIc6</description><pubDate>Mon, 10 Jul 2017 15:20:01 GMT</pubDate><category>Tweets</category></item><item><title>Was about to create this, but great to find it exists</title><link>https://coryhouse.dev/2017/07/19/tweet-887697765924560897/</link><guid isPermaLink="true">https://coryhouse.dev/2017/07/19/tweet-887697765924560897/</guid><description>Was about to create this, but great to find it exists! 😀 Avoid bloating your bundle by linting named imports! https://github.com/eslint-plugins/es...</description><pubDate>Wed, 19 Jul 2017 15:36:54 GMT</pubDate><category>Tweets</category></item><item><title>&quot;JavaScript fatigue is what happens when people use tools they don&apos;t need to...</title><link>https://coryhouse.dev/2017/07/21/tweet-888468139389861888/</link><guid isPermaLink="true">https://coryhouse.dev/2017/07/21/tweet-888468139389861888/</guid><description>&quot;JavaScript fatigue is what happens when people use tools they don&apos;t need to solve problems they don&apos;t have.&quot; - Lucas F Costa #nejsconf</description><pubDate>Fri, 21 Jul 2017 18:38:06 GMT</pubDate><category>Tweets</category></item><item><title>After attending many conferences, I&apos;ve realized: I don&apos;t attend to learn</title><link>https://coryhouse.dev/2017/07/30/tweet-891471910235758592/</link><guid isPermaLink="true">https://coryhouse.dev/2017/07/30/tweet-891471910235758592/</guid><description>After attending many conferences, I&apos;ve realized: I don&apos;t attend to learn. I attend to learn what I need to learn.</description><pubDate>Sun, 30 Jul 2017 01:34:00 GMT</pubDate><category>Tweets</category></item><item><title>Developer</title><link>https://coryhouse.dev/2017/08/06/tweet-894008675542736896/</link><guid isPermaLink="true">https://coryhouse.dev/2017/08/06/tweet-894008675542736896/</guid><description>Developer? Go deep. Architect? Go wide. A thoughtful short read on breadth vs depth: https://buff.ly/2hxHiSp</description><pubDate>Sun, 06 Aug 2017 01:34:12 GMT</pubDate><category>Tweets</category></item><item><title>Remote work is much more productive for me</title><link>https://coryhouse.dev/2017/08/10/tweet-895730689349369856/</link><guid isPermaLink="true">https://coryhouse.dev/2017/08/10/tweet-895730689349369856/</guid><description>Remote work is much more productive for me. I just accomplished more in half a day than I could in a couple interruption filled office days.</description><pubDate>Thu, 10 Aug 2017 19:36:52 GMT</pubDate><category>Tweets</category></item><item><title>Public Speaking Transformed My Life…and Can Change Yours Too</title><link>https://coryhouse.dev/2017/08/12/public-speaking-transformed-my-lifeand-can-change-yours-too/</link><guid isPermaLink="true">https://coryhouse.dev/2017/08/12/public-speaking-transformed-my-lifeand-can-change-yours-too/</guid><description>A Call For Speakers…From 40,000 Feet I’m writing this from a bar…that’s floating somewhere over Greenland. I just enjoyed a complimentary 3 course meal with win…</description><pubDate>Sat, 12 Aug 2017 16:09:57 GMT</pubDate><category>Speaking</category></item><item><title>After watching my &quot;Building JS Dev Environment&quot; course, someone emailed me:...</title><link>https://coryhouse.dev/2017/08/14/tweet-897115617639137281/</link><guid isPermaLink="true">https://coryhouse.dev/2017/08/14/tweet-897115617639137281/</guid><description>After watching my &quot;Building JS Dev Environment&quot; course, someone emailed me: &quot;How do you keep up with JavaScript churn?&quot; Here&apos;s my answer.</description><pubDate>Mon, 14 Aug 2017 15:20:05 GMT</pubDate><category>Tweets</category></item><item><title>Deployment &amp; release aren&apos;t the same thing</title><link>https://coryhouse.dev/2017/09/05/tweet-905064725255512064/</link><guid isPermaLink="true">https://coryhouse.dev/2017/09/05/tweet-905064725255512064/</guid><description>Deployment &amp; release aren&apos;t the same thing. Deployment: Put code in prod env. Release: Make the feature available. So deploy continously.</description><pubDate>Tue, 05 Sep 2017 13:47:00 GMT</pubDate><category>Tweets</category></item><item><title>To convey the big picture, I&apos;m compiling a list of reasons *not* to use...</title><link>https://coryhouse.dev/2017/09/16/tweet-909143662629703682/</link><guid isPermaLink="true">https://coryhouse.dev/2017/09/16/tweet-909143662629703682/</guid><description>To convey the big picture, I&apos;m compiling a list of reasons *not* to use React for my new course. Other downsides/concerns I&apos;m overlooking?</description><pubDate>Sat, 16 Sep 2017 19:55:14 GMT</pubDate><category>Tweets</category></item><item><title>&quot;Never Write another Higher Order Component&quot; Excellent talk by @mjackson on...</title><link>https://coryhouse.dev/2017/09/23/tweet-911669032071426049/</link><guid isPermaLink="true">https://coryhouse.dev/2017/09/23/tweet-911669032071426049/</guid><description>&quot;Never Write another Higher Order Component&quot; Excellent talk by @mjackson on an alternative pattern: Render props https://www.youtube.com/watch?time...</description><pubDate>Sat, 23 Sep 2017 19:10:09 GMT</pubDate><category>Tweets</category></item><item><title>Reusable Web Application Strategies: three patterns for running the same app in multiple spots</title><link>https://coryhouse.dev/2017/09/29/reusable-web-application-strategies/</link><guid isPermaLink="true">https://coryhouse.dev/2017/09/29/reusable-web-application-strategies/</guid><description>Imagine your team just deployed an amazing todo list app. A month later, another team in your company wants to run your todo app within their invoice app. So no…</description><pubDate>Fri, 29 Sep 2017 11:37:45 GMT</pubDate><category>Architecture</category><category>JavaScript</category><category>UI</category><category>Web Components</category><category>Web Development</category></item><item><title>I&apos;ve found a VSCode setup I ❤️: Material Pale Night Material Icon Theme See...</title><link>https://coryhouse.dev/2017/10/05/tweet-915766278211686400/</link><guid isPermaLink="true">https://coryhouse.dev/2017/10/05/tweet-915766278211686400/</guid><description>I&apos;ve found a VSCode setup I ❤️: Material Pale Night Material Icon Theme See settings in 2nd screenshot. Perfect for late night coding.</description><pubDate>Thu, 05 Oct 2017 02:31:09 GMT</pubDate><category>Tweets</category></item><item><title>Woah, you can get most of TypeScript&apos;s benefits with plain JS by just...</title><link>https://coryhouse.dev/2017/10/10/tweet-917771737680564224/</link><guid isPermaLink="true">https://coryhouse.dev/2017/10/10/tweet-917771737680564224/</guid><description>Woah, you can get most of TypeScript&apos;s benefits with plain JS by just slapping comments in your code?! Compelling. https://buff.ly/2ydk9eR</description><pubDate>Tue, 10 Oct 2017 15:20:08 GMT</pubDate><category>Tweets</category></item><item><title>Developer job security: Low road: Obfuscate so only you can understand</title><link>https://coryhouse.dev/2017/10/19/tweet-921009803438280704/</link><guid isPermaLink="true">https://coryhouse.dev/2017/10/19/tweet-921009803438280704/</guid><description>Developer job security: Low road: Obfuscate so only you can understand. High road: Automate your job away, and a better job will follow.</description><pubDate>Thu, 19 Oct 2017 13:47:03 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m a fan of Redux, but it&apos;s a power tool, not a &quot;use it all the time&quot; tool</title><link>https://coryhouse.dev/2017/10/23/tweet-922556663797829633/</link><guid isPermaLink="true">https://coryhouse.dev/2017/10/23/tweet-922556663797829633/</guid><description>I&apos;m a fan of Redux, but it&apos;s a power tool, not a &quot;use it all the time&quot; tool. Too many people are cutting paper with an ax.</description><pubDate>Mon, 23 Oct 2017 20:13:43 GMT</pubDate><category>Tweets</category></item><item><title>Spent the morning comparing React&apos;s syntax to Angular, Vue, and Ember&apos;s for...</title><link>https://coryhouse.dev/2017/10/25/tweet-923222627761745921/</link><guid isPermaLink="true">https://coryhouse.dev/2017/10/25/tweet-923222627761745921/</guid><description>Spent the morning comparing React&apos;s syntax to Angular, Vue, and Ember&apos;s for my upcoming &quot;React: The Big Picture&quot; course... #react</description><pubDate>Wed, 25 Oct 2017 16:20:01 GMT</pubDate><category>Tweets</category></item><item><title>Why blog</title><link>https://coryhouse.dev/2017/10/25/tweet-923277780716081153/</link><guid isPermaLink="true">https://coryhouse.dev/2017/10/25/tweet-923277780716081153/</guid><description>Why blog? Cunningham&apos;s Law: &quot;the best way to get the right answer on the internet is not to ask a question; it&apos;s to post the wrong answer.</description><pubDate>Wed, 25 Oct 2017 19:59:11 GMT</pubDate><category>Tweets</category></item><item><title>Much of writing testable code boils down to this: Keep logic and I/O separate</title><link>https://coryhouse.dev/2017/10/30/tweet-925079537125396481/</link><guid isPermaLink="true">https://coryhouse.dev/2017/10/30/tweet-925079537125396481/</guid><description>Much of writing testable code boils down to this: Keep logic and I/O separate. Then you can test logic in isolation without mocking. #tdd</description><pubDate>Mon, 30 Oct 2017 19:18:43 GMT</pubDate><category>Tweets</category></item><item><title>This is absolutely key</title><link>https://coryhouse.dev/2017/11/02/tweet-926083239621677056/</link><guid isPermaLink="true">https://coryhouse.dev/2017/11/02/tweet-926083239621677056/</guid><description>This is absolutely key. Want to write loosely coupled code? Do these three things. Full post by @_ericelliott: https://buff.ly/2yojAjt</description><pubDate>Thu, 02 Nov 2017 13:47:04 GMT</pubDate><category>Tweets</category></item><item><title>Just updated the &quot;Tech Speaker Starter Kit&quot; with some new resources...</title><link>https://coryhouse.dev/2017/11/03/tweet-926516518619435008/</link><guid isPermaLink="true">https://coryhouse.dev/2017/11/03/tweet-926516518619435008/</guid><description>Just updated the &quot;Tech Speaker Starter Kit&quot; with some new resources including a list of over *800* conferences: https://github.com/coryhouse/speake...</description><pubDate>Fri, 03 Nov 2017 18:28:46 GMT</pubDate><category>Tweets</category></item><item><title>Here&apos;s a handy pattern to easily build objects for #javascript tests</title><link>https://coryhouse.dev/2017/11/10/tweet-928816588060549120/</link><guid isPermaLink="true">https://coryhouse.dev/2017/11/10/tweet-928816588060549120/</guid><description>Here&apos;s a handy pattern to easily build objects for #javascript tests. Similar to the builder pattern, but less coding.</description><pubDate>Fri, 10 Nov 2017 02:48:25 GMT</pubDate><category>Tweets</category></item><item><title>Is there a single good reason to ever use a static class in #javascript...</title><link>https://coryhouse.dev/2017/11/10/tweet-928997435640307712/</link><guid isPermaLink="true">https://coryhouse.dev/2017/11/10/tweet-928997435640307712/</guid><description>Is there a single good reason to ever use a static class in #javascript instead of simply exporting the public functions? 🤔 I can&apos;t think of one.</description><pubDate>Fri, 10 Nov 2017 14:47:03 GMT</pubDate><category>Tweets</category></item><item><title>As a long-time OO developer, I&apos;ve finally embraced the functional paradigm...</title><link>https://coryhouse.dev/2017/11/13/tweet-930084588730441728/</link><guid isPermaLink="true">https://coryhouse.dev/2017/11/13/tweet-930084588730441728/</guid><description>As a long-time OO developer, I&apos;ve finally embraced the functional paradigm in #javascript. Epiphany: Most my objects are just data structures. *No...</description><pubDate>Mon, 13 Nov 2017 14:47:00 GMT</pubDate><category>Tweets</category></item><item><title>Tip: With async/await, you can run multiple async operations in parallel</title><link>https://coryhouse.dev/2017/11/13/tweet-930108010558640128/</link><guid isPermaLink="true">https://coryhouse.dev/2017/11/13/tweet-930108010558640128/</guid><description>Tip: With async/await, you can run multiple async operations in parallel. How? Put the await statements on the same line! Works like promise.all. h...</description><pubDate>Mon, 13 Nov 2017 16:20:04 GMT</pubDate><category>Tweets</category></item><item><title>React Pattern: Centralized PropTypes</title><link>https://coryhouse.dev/2017/11/14/react-pattern-centralized-proptypes/</link><guid isPermaLink="true">https://coryhouse.dev/2017/11/14/react-pattern-centralized-proptypes/</guid><description>Avoid repeating yourself by centralizing PropTypes There are three popular ways to handle types in React: PropTypes, TypeScript and Flow. This post is about Pro…</description><pubDate>Tue, 14 Nov 2017 13:42:50 GMT</pubDate><category>JavaScript</category><category>Uncategorized</category></item><item><title>Tip: Does your project work better with @code (VS Code) extensions</title><link>https://coryhouse.dev/2017/11/16/tweet-931195180220370944/</link><guid isPermaLink="true">https://coryhouse.dev/2017/11/16/tweet-931195180220370944/</guid><description>Tip: Does your project work better with @code (VS Code) extensions? List recommended extensions in .vscode/extensions.json, and VS Code will prompt...</description><pubDate>Thu, 16 Nov 2017 16:20:06 GMT</pubDate><category>Tweets</category></item><item><title>Extract your setState calls to pure functions</title><link>https://coryhouse.dev/2017/11/17/tweet-931530907747577856/</link><guid isPermaLink="true">https://coryhouse.dev/2017/11/17/tweet-931530907747577856/</guid><description>Extract your setState calls to pure functions. Test them in isolation. Reuse as desired. Handy pattern from @MicheleBertoli Slides: &quot;setState ftw&quot;:...</description><pubDate>Fri, 17 Nov 2017 14:34:10 GMT</pubDate><category>Tweets</category></item><item><title>Using the same JS lib on multiple apps</title><link>https://coryhouse.dev/2017/11/20/tweet-932610686076645377/</link><guid isPermaLink="true">https://coryhouse.dev/2017/11/20/tweet-932610686076645377/</guid><description>Using the same JS lib on multiple apps? 1. Extract it via Webpack 2. Reference the lib on a CDN Now your users only have to download the lib once. 👍</description><pubDate>Mon, 20 Nov 2017 14:04:49 GMT</pubDate><category>Tweets</category></item><item><title>It&apos;s live</title><link>https://coryhouse.dev/2017/11/22/tweet-933324055721148416/</link><guid isPermaLink="true">https://coryhouse.dev/2017/11/22/tweet-933324055721148416/</guid><description>It&apos;s live! 🎥 &quot;React: The Big Picture&quot; just published on @pluralsight! 🎉 Short course on React&apos;s benefits, tradeoffs, and downsides. ⚖️ https://ap...</description><pubDate>Wed, 22 Nov 2017 13:19:29 GMT</pubDate><category>Tweets</category></item><item><title>Coming very soon: Use cipm instead of npm on your CI server for 20x faster...</title><link>https://coryhouse.dev/2017/11/27/tweet-935289430063112195/</link><guid isPermaLink="true">https://coryhouse.dev/2017/11/27/tweet-935289430063112195/</guid><description>Coming very soon: Use cipm instead of npm on your CI server for 20x faster install than npm 4! 🎉 #Nodevember</description><pubDate>Mon, 27 Nov 2017 23:29:11 GMT</pubDate><category>Tweets</category></item><item><title>Perf tip: Stop using babel-preset-es2015</title><link>https://coryhouse.dev/2017/11/28/tweet-935551724911251461/</link><guid isPermaLink="true">https://coryhouse.dev/2017/11/28/tweet-935551724911251461/</guid><description>Perf tip: Stop using babel-preset-es2015. It&apos;s deprecated. Use babel-preset-env instead. The env preset only transpiles the features that your targ...</description><pubDate>Tue, 28 Nov 2017 16:51:27 GMT</pubDate><category>Tweets</category></item><item><title>Handy way to update npm packages: Use npx</title><link>https://coryhouse.dev/2017/11/29/tweet-935882821083844623/</link><guid isPermaLink="true">https://coryhouse.dev/2017/11/29/tweet-935882821083844623/</guid><description>Handy way to update npm packages: Use npx. Nicely formatted report. Hit space to select the packages you want to update. Slick. 😎 via @seldo #java...</description><pubDate>Wed, 29 Nov 2017 14:47:07 GMT</pubDate><category>Tweets</category></item><item><title>Designing Reusable React Components</title><link>https://coryhouse.dev/2017/12/01/designing-reusable-react-components/</link><guid isPermaLink="true">https://coryhouse.dev/2017/12/01/designing-reusable-react-components/</guid><description>What Legos Can Teach Us About Reuse in React Apps React is a component library. So React makes it easy to break your UI down into composable pieces. The questio…</description><pubDate>Fri, 01 Dec 2017 13:30:28 GMT</pubDate><category>JavaScript</category><category>UI</category></item><item><title>Woah, prettier does a wonderful job formatting markdown files too</title><link>https://coryhouse.dev/2017/12/01/tweet-936607629723557894/</link><guid isPermaLink="true">https://coryhouse.dev/2017/12/01/tweet-936607629723557894/</guid><description>Woah, prettier does a wonderful job formatting markdown files too! Numbered lists and tables look great. Really enjoying prettier: https://buff.ly/...</description><pubDate>Fri, 01 Dec 2017 14:47:14 GMT</pubDate><category>Tweets</category></item><item><title>Creating a new feature</title><link>https://coryhouse.dev/2017/12/07/tweet-938805364442718210/</link><guid isPermaLink="true">https://coryhouse.dev/2017/12/07/tweet-938805364442718210/</guid><description>Creating a new feature? Consider writing the docs first. Here&apos;s why. 1. It clarifies your vision before writing code. 2. If the doc lists many manu...</description><pubDate>Thu, 07 Dec 2017 16:20:15 GMT</pubDate><category>Tweets</category></item><item><title>Just rewrote a Redux app in plain React</title><link>https://coryhouse.dev/2017/12/11/tweet-940051120021319683/</link><guid isPermaLink="true">https://coryhouse.dev/2017/12/11/tweet-940051120021319683/</guid><description>Just rewrote a Redux app in plain React. Here&apos;s how: 1. Moved data from Redux store to most relevant component 2. Lifted state as needed More on li...</description><pubDate>Mon, 11 Dec 2017 02:50:26 GMT</pubDate><category>Tweets</category></item><item><title>Man, after using @prettiercode for a month, I&apos;d love to have all the time...</title><link>https://coryhouse.dev/2017/12/11/tweet-940254899094335489/</link><guid isPermaLink="true">https://coryhouse.dev/2017/12/11/tweet-940254899094335489/</guid><description>Man, after using @prettiercode for a month, I&apos;d love to have all the time back that I&apos;ve wasted over the years manually formatting code! Prettier i...</description><pubDate>Mon, 11 Dec 2017 16:20:11 GMT</pubDate><category>Tweets</category></item><item><title>Coding a simple prototype takes a little time, but saves a ton of time in...</title><link>https://coryhouse.dev/2017/12/12/tweet-940593763357024257/</link><guid isPermaLink="true">https://coryhouse.dev/2017/12/12/tweet-940593763357024257/</guid><description>Coding a simple prototype takes a little time, but saves a ton of time in discussion. It&apos;s easier to hit your target when your conversation revolve...</description><pubDate>Tue, 12 Dec 2017 14:46:43 GMT</pubDate><category>Tweets</category></item><item><title>Perhaps the most striking stat on the 2017 State of #JavaScript Survey: VS...</title><link>https://coryhouse.dev/2017/12/13/tweet-940799686826430464/</link><guid isPermaLink="true">https://coryhouse.dev/2017/12/13/tweet-940799686826430464/</guid><description>Perhaps the most striking stat on the 2017 State of #JavaScript Survey: VS Code (@code) is by far the most popular editor - and it&apos;s only 2.5 years...</description><pubDate>Wed, 13 Dec 2017 04:24:59 GMT</pubDate><category>Tweets</category></item><item><title>Speaker tip: Instead of asking &quot;Who doesn&apos;t understand x?&quot; ask &quot;Who...</title><link>https://coryhouse.dev/2017/12/17/tweet-942455076886663168/</link><guid isPermaLink="true">https://coryhouse.dev/2017/12/17/tweet-942455076886663168/</guid><description>Speaker tip: Instead of asking &quot;Who doesn&apos;t understand x?&quot; ask &quot;Who understands x?&quot; Why? 1. It avoids embarrassing people. 2. It enhances engagemen...</description><pubDate>Sun, 17 Dec 2017 18:02:54 GMT</pubDate><category>Tweets</category></item><item><title>React tip: You often don&apos;t need to declare a constructor in class components</title><link>https://coryhouse.dev/2017/12/19/tweet-943130554827984896/</link><guid isPermaLink="true">https://coryhouse.dev/2017/12/19/tweet-943130554827984896/</guid><description>React tip: You often don&apos;t need to declare a constructor in class components. You can use a class field instead. (stage 3) Transpiled via Babel: ht...</description><pubDate>Tue, 19 Dec 2017 14:47:01 GMT</pubDate><category>Tweets</category></item><item><title>Three ways to design a reusable React component: 1</title><link>https://coryhouse.dev/2017/12/23/tweet-944556947164028930/</link><guid isPermaLink="true">https://coryhouse.dev/2017/12/23/tweet-944556947164028930/</guid><description>Three ways to design a reusable React component: 1. Uncontrolled 2. Controlled 3. Controllable Option #3 is most flexible (and quick to implement t...</description><pubDate>Sat, 23 Dec 2017 13:14:59 GMT</pubDate><category>Tweets</category></item><item><title>Career tip: If your boss doesn&apos;t see it, you won&apos;t get credit for it</title><link>https://coryhouse.dev/2017/12/28/tweet-946388770554810368/</link><guid isPermaLink="true">https://coryhouse.dev/2017/12/28/tweet-946388770554810368/</guid><description>Career tip: If your boss doesn&apos;t see it, you won&apos;t get credit for it. Document your work. Present demos. Promote the good stuff. Don&apos;t expect your...</description><pubDate>Thu, 28 Dec 2017 14:34:00 GMT</pubDate><category>Tweets</category></item><item><title>Seriously, if you haven&apos;t tried automated testing with @Cypress_io, do it now</title><link>https://coryhouse.dev/2017/12/31/tweet-947513386081898496/</link><guid isPermaLink="true">https://coryhouse.dev/2017/12/31/tweet-947513386081898496/</guid><description>Seriously, if you haven&apos;t tried automated testing with @Cypress_io, do it now. Spent the morning adding integration tests to React Slingshot with C...</description><pubDate>Sun, 31 Dec 2017 17:02:49 GMT</pubDate><category>Tweets</category></item><item><title>Slick way to update an element in an array in an immutable manner *without...</title><link>https://coryhouse.dev/2018/01/06/tweet-949647965135822849/</link><guid isPermaLink="true">https://coryhouse.dev/2018/01/06/tweet-949647965135822849/</guid><description>Slick way to update an element in an array in an immutable manner *without changing the array&apos;s order*. Just use map and replace the relevant eleme...</description><pubDate>Sat, 06 Jan 2018 14:24:53 GMT</pubDate><category>Tweets</category></item><item><title>6 years ago: I was terrified of public speaking</title><link>https://coryhouse.dev/2018/01/11/tweet-951423305285865475/</link><guid isPermaLink="true">https://coryhouse.dev/2018/01/11/tweet-951423305285865475/</guid><description>6 years ago: I was terrified of public speaking. Today, I’m presenting my 120th session. This quote hit me hard. I’ve never felt more grateful. Or...</description><pubDate>Thu, 11 Jan 2018 11:59:27 GMT</pubDate><category>Tweets</category></item><item><title>&quot;I&apos;ve heard from several people that they&apos;ve consolidated their companies...</title><link>https://coryhouse.dev/2018/01/15/tweet-952981646868930561/</link><guid isPermaLink="true">https://coryhouse.dev/2018/01/15/tweet-952981646868930561/</guid><description>&quot;I&apos;ve heard from several people that they&apos;ve consolidated their companies tool dependencies into a single package and this worked really well for t...</description><pubDate>Mon, 15 Jan 2018 19:11:44 GMT</pubDate><category>Tweets</category></item><item><title>Watch out: You may unknowingly be addicted to complexity</title><link>https://coryhouse.dev/2018/01/18/tweet-954002214770610178/</link><guid isPermaLink="true">https://coryhouse.dev/2018/01/18/tweet-954002214770610178/</guid><description>Watch out: You may unknowingly be addicted to complexity. “Simplicity is a great virtue but it requires hard work to achieve it and education to ap...</description><pubDate>Thu, 18 Jan 2018 14:47:07 GMT</pubDate><category>Tweets</category></item><item><title>Woah, automatically convert your plain JavaScript React components to TypeScript</title><link>https://coryhouse.dev/2018/01/18/tweet-954105311207542784/</link><guid isPermaLink="true">https://coryhouse.dev/2018/01/18/tweet-954105311207542784/</guid><description>Woah, automatically convert your plain JavaScript React components to TypeScript. Reads PropTypes and converts! Slick. https://github.com/lyft/reac...</description><pubDate>Thu, 18 Jan 2018 21:36:47 GMT</pubDate><category>Tweets</category></item><item><title>A successful development team is like a bees nest</title><link>https://coryhouse.dev/2018/01/26/tweet-956920231104008192/</link><guid isPermaLink="true">https://coryhouse.dev/2018/01/26/tweet-956920231104008192/</guid><description>A successful development team is like a bees nest. Give them trust and autonomy to do their work, and they&apos;ll happily make you honey. But if you co...</description><pubDate>Fri, 26 Jan 2018 16:02:16 GMT</pubDate><category>Tweets</category></item><item><title>JavaScript tip: You can easily simulate named function parameters</title><link>https://coryhouse.dev/2018/01/28/tweet-957441615811039232/</link><guid isPermaLink="true">https://coryhouse.dev/2018/01/28/tweet-957441615811039232/</guid><description>JavaScript tip: You can easily simulate named function parameters. 1. Accept an object instead of separate arguments. 2. Use destructuring. Slick....</description><pubDate>Sun, 28 Jan 2018 02:34:04 GMT</pubDate><category>Tweets</category></item><item><title>Remote work benefit: Interacting via text fosters reading &amp; writing skills</title><link>https://coryhouse.dev/2018/02/02/tweet-959438725301374978/</link><guid isPermaLink="true">https://coryhouse.dev/2018/02/02/tweet-959438725301374978/</guid><description>Remote work benefit: Interacting via text fosters reading &amp; writing skills. 1. You can carefully read and consider your co-worker&apos;s input at yo...</description><pubDate>Fri, 02 Feb 2018 14:49:52 GMT</pubDate><category>Tweets</category></item><item><title>Common question: &quot;How do I build a big SPA?&quot; My take</title><link>https://coryhouse.dev/2018/02/02/tweet-959461427768627200/</link><guid isPermaLink="true">https://coryhouse.dev/2018/02/02/tweet-959461427768627200/</guid><description>Common question: &quot;How do I build a big SPA?&quot; My take? Don&apos;t. Build multiple small SPAs. Share common elements like navigation via npm. There&apos;s noth...</description><pubDate>Fri, 02 Feb 2018 16:20:04 GMT</pubDate><category>Tweets</category></item><item><title>ES2018 has been finalized</title><link>https://coryhouse.dev/2018/02/03/tweet-959823802082480129/</link><guid isPermaLink="true">https://coryhouse.dev/2018/02/03/tweet-959823802082480129/</guid><description>ES2018 has been finalized. Features: 1. Rest/spread properties 🎉 2. Asynchronous iteration 3. Promise.prototype.finally() 4. New regex features Mo...</description><pubDate>Sat, 03 Feb 2018 16:20:01 GMT</pubDate><category>Tweets</category></item><item><title>Impressed with the regex enhancements in ES2018</title><link>https://coryhouse.dev/2018/02/04/tweet-960153700206510082/</link><guid isPermaLink="true">https://coryhouse.dev/2018/02/04/tweet-960153700206510082/</guid><description>Impressed with the regex enhancements in ES2018. Named capture groups make regex so much easier to read and parse! 1. Declare a named capture in an...</description><pubDate>Sun, 04 Feb 2018 14:10:55 GMT</pubDate><category>Tweets</category></item><item><title>Motivation hack: Leave an incomplete task at the end of your work day</title><link>https://coryhouse.dev/2018/02/06/tweet-960886210381131776/</link><guid isPermaLink="true">https://coryhouse.dev/2018/02/06/tweet-960886210381131776/</guid><description>Motivation hack: Leave an incomplete task at the end of your work day. Why? 1. Partially complete tasks motivate you to get started the next day. 2...</description><pubDate>Tue, 06 Feb 2018 14:41:39 GMT</pubDate><category>Tweets</category></item><item><title>Git tip: Have a lot of old branches on your machine</title><link>https://coryhouse.dev/2018/02/09/tweet-961942463006027776/</link><guid isPermaLink="true">https://coryhouse.dev/2018/02/09/tweet-961942463006027776/</guid><description>Git tip: Have a lot of old branches on your machine? Here&apos;s a Bash script that removes local branches that are no longer remote: git fetch -p &amp;...</description><pubDate>Fri, 09 Feb 2018 12:38:49 GMT</pubDate><category>Tweets</category></item><item><title>🔥 Confirmed: 🔥 1</title><link>https://coryhouse.dev/2018/02/10/tweet-962347301456015360/</link><guid isPermaLink="true">https://coryhouse.dev/2018/02/10/tweet-962347301456015360/</guid><description>🔥 Confirmed: 🔥 1. npm install Node@8 (saves Node 8 as dependency in package.json) 2. Your app will run using Node 8 for *everyone* - even Yarn us...</description><pubDate>Sat, 10 Feb 2018 15:27:30 GMT</pubDate><category>Tweets</category></item><item><title>An epic read for #javascript app best practices/project guidelines</title><link>https://coryhouse.dev/2018/02/10/tweet-962360511999377409/</link><guid isPermaLink="true">https://coryhouse.dev/2018/02/10/tweet-962360511999377409/</guid><description>An epic read for #javascript app best practices/project guidelines. Tons of great tips in here: https://buff.ly/2H1WY9h</description><pubDate>Sat, 10 Feb 2018 16:20:00 GMT</pubDate><category>Tweets</category></item><item><title>Fascinating overview of Spotify&apos;s desktop app, built in JS</title><link>https://coryhouse.dev/2018/02/11/tweet-962515031568060418/</link><guid isPermaLink="true">https://coryhouse.dev/2018/02/11/tweet-962515031568060418/</guid><description>Fascinating overview of Spotify&apos;s desktop app, built in JS. I typically avoid iframes, but Spotify&apos;s iframe use is compelling. Why? 1. As an instal...</description><pubDate>Sun, 11 Feb 2018 02:34:00 GMT</pubDate><category>Tweets</category></item><item><title>Realization: Putting Redux in our company framework by default was a mistake</title><link>https://coryhouse.dev/2018/02/11/tweet-962754389533429760/</link><guid isPermaLink="true">https://coryhouse.dev/2018/02/11/tweet-962754389533429760/</guid><description>Realization: Putting Redux in our company framework by default was a mistake. Result: 1 People connect *every* component. 2 People embed Redux in &quot;...</description><pubDate>Sun, 11 Feb 2018 18:25:08 GMT</pubDate><category>Tweets</category></item><item><title>JS tip: console.log accepts multiple arguments</title><link>https://coryhouse.dev/2018/02/12/tweet-963061886416801793/</link><guid isPermaLink="true">https://coryhouse.dev/2018/02/12/tweet-963061886416801793/</guid><description>JS tip: console.log accepts multiple arguments. Each argument is conveniently output with a space in between. Can&apos;t believe I&apos;ve been concatenating...</description><pubDate>Mon, 12 Feb 2018 14:47:01 GMT</pubDate><category>Tweets</category></item><item><title>The number of options for automated testing in #javascript today is amazing</title><link>https://coryhouse.dev/2018/02/12/tweet-963085337688932352/</link><guid isPermaLink="true">https://coryhouse.dev/2018/02/12/tweet-963085337688932352/</guid><description>The number of options for automated testing in #javascript today is amazing. Here&apos;s the most epic post I&apos;ve seen for outlining all the options: htt...</description><pubDate>Mon, 12 Feb 2018 16:20:12 GMT</pubDate><category>Tweets</category></item><item><title>&quot;Comment the why, not the how.&quot; is the most succinct and useful maxim for...</title><link>https://coryhouse.dev/2018/02/13/tweet-963239807303503872/</link><guid isPermaLink="true">https://coryhouse.dev/2018/02/13/tweet-963239807303503872/</guid><description>&quot;Comment the why, not the how.&quot; is the most succinct and useful maxim for handling code comments that I&apos;ve found. If I feel the need to comment the...</description><pubDate>Tue, 13 Feb 2018 02:34:00 GMT</pubDate><category>Tweets</category></item><item><title>React tip: You can eliminate constructors for state and binding</title><link>https://coryhouse.dev/2018/02/13/tweet-963424276455088128/</link><guid isPermaLink="true">https://coryhouse.dev/2018/02/13/tweet-963424276455088128/</guid><description>React tip: You can eliminate constructors for state and binding. Use class fields instead (stage 3, transpiled via Babel). Making this change all o...</description><pubDate>Tue, 13 Feb 2018 14:47:01 GMT</pubDate><category>Tweets</category></item><item><title>Need something fixed/enhanced in an open source package that you use at work</title><link>https://coryhouse.dev/2018/02/17/tweet-964895222365851649/</link><guid isPermaLink="true">https://coryhouse.dev/2018/02/17/tweet-964895222365851649/</guid><description>Need something fixed/enhanced in an open source package that you use at work? Consider just doing the work. &quot;It&apos;s part of my job to deliver what I&apos;...</description><pubDate>Sat, 17 Feb 2018 16:12:02 GMT</pubDate><category>Tweets</category></item><item><title>&quot;99% of the time, when you think you need to mock a module, the real answer...</title><link>https://coryhouse.dev/2018/02/18/tweet-965051744513351682/</link><guid isPermaLink="true">https://coryhouse.dev/2018/02/18/tweet-965051744513351682/</guid><description>&quot;99% of the time, when you think you need to mock a module, the real answer is that you should decouple the part that uses the data from the part t...</description><pubDate>Sun, 18 Feb 2018 02:34:00 GMT</pubDate><category>Tweets</category></item><item><title>So true</title><link>https://coryhouse.dev/2018/02/18/tweet-965215120078131200/</link><guid isPermaLink="true">https://coryhouse.dev/2018/02/18/tweet-965215120078131200/</guid><description>So true. For today&apos;s developers, formal education is just the beginning. Long-term success requires self-guided reading, coding, and experimentatio...</description><pubDate>Sun, 18 Feb 2018 13:23:12 GMT</pubDate><category>Tweets</category></item><item><title>Excited for the enhancements coming to Babel 7: - 60% faster 🚤 -...</title><link>https://coryhouse.dev/2018/02/19/tweet-965598645461635072/</link><guid isPermaLink="true">https://coryhouse.dev/2018/02/19/tweet-965598645461635072/</guid><description>Excited for the enhancements coming to Babel 7: - 60% faster 🚤 - babel-polyfill now only polyfills what your env needs = smaller bundles - Scoped...</description><pubDate>Mon, 19 Feb 2018 14:47:11 GMT</pubDate><category>Tweets</category></item><item><title>Pattern I&apos;m increasingly seeing: Companies are forking create-react-app and...</title><link>https://coryhouse.dev/2018/02/20/tweet-966016709378433024/</link><guid isPermaLink="true">https://coryhouse.dev/2018/02/20/tweet-966016709378433024/</guid><description>Pattern I&apos;m increasingly seeing: Companies are forking create-react-app and adding their unique opinions into it. Here&apos;s why: - Avoid reinventing t...</description><pubDate>Tue, 20 Feb 2018 18:28:25 GMT</pubDate><category>Tweets</category></item><item><title>Highly relevant quote for anyone teaching or learning</title><link>https://coryhouse.dev/2018/02/25/tweet-967778146706698240/</link><guid isPermaLink="true">https://coryhouse.dev/2018/02/25/tweet-967778146706698240/</guid><description>Highly relevant quote for anyone teaching or learning. Merely reading and watching isn&apos;t enough. We must do. &quot;To learn and not to do is really not...</description><pubDate>Sun, 25 Feb 2018 15:07:45 GMT</pubDate><category>Tweets</category></item><item><title>promise.finally has moved to stage 4, so it&apos;s officially part of JavaScript</title><link>https://coryhouse.dev/2018/02/26/tweet-968135318640758784/</link><guid isPermaLink="true">https://coryhouse.dev/2018/02/26/tweet-968135318640758784/</guid><description>promise.finally has moved to stage 4, so it&apos;s officially part of JavaScript. Here&apos;s how it works: https://buff.ly/2Chg8Jf #javascript</description><pubDate>Mon, 26 Feb 2018 14:47:01 GMT</pubDate><category>Tweets</category></item><item><title>GitHub Tip: Create PULL_REQUEST_TEMPLATE.md in your project root</title><link>https://coryhouse.dev/2018/02/28/tweet-968852911009685504/</link><guid isPermaLink="true">https://coryhouse.dev/2018/02/28/tweet-968852911009685504/</guid><description>GitHub Tip: Create PULL_REQUEST_TEMPLATE.md in your project root. GitHub will automatically populate all pull requests with this content! I suggest...</description><pubDate>Wed, 28 Feb 2018 14:18:29 GMT</pubDate><category>Tweets</category></item><item><title>How to handle environment-specific settings in your JavaScript apps</title><link>https://coryhouse.dev/2018/03/01/environment-settings-in-javascript-apps/</link><guid isPermaLink="true">https://coryhouse.dev/2018/03/01/environment-settings-in-javascript-apps/</guid><description>8 ways to handle environment-specific app settings Today many web apps are built using React, Angular, Vue, Ember, etc. These modern client-side rendered apps o…</description><pubDate>Thu, 01 Mar 2018 13:53:34 GMT</pubDate><category>JavaScript</category><category>UI</category></item><item><title>How I read open source docs: 1</title><link>https://coryhouse.dev/2018/03/02/tweet-969625875061923841/</link><guid isPermaLink="true">https://coryhouse.dev/2018/03/02/tweet-969625875061923841/</guid><description>How I read open source docs: 1. Clone repo 2. Open http://README.md in VS Code 3. Display markdown preview on right. 4. Read right pane. Fix typos...</description><pubDate>Fri, 02 Mar 2018 17:29:58 GMT</pubDate><category>Tweets</category></item><item><title>Career tip: As tech moves faster, consider specializing</title><link>https://coryhouse.dev/2018/03/03/tweet-969958054987956225/</link><guid isPermaLink="true">https://coryhouse.dev/2018/03/03/tweet-969958054987956225/</guid><description>Career tip: As tech moves faster, consider specializing. 2000 - I was &quot;full stack&quot;, multiple langs. Generalist. 2010 - Still &quot;full stack&quot;, but focu...</description><pubDate>Sat, 03 Mar 2018 15:29:55 GMT</pubDate><category>Tweets</category></item><item><title>Ever use your Browser&apos;s console as a little scratchpad to try JavaScript</title><link>https://coryhouse.dev/2018/03/05/tweet-970672032617820160/</link><guid isPermaLink="true">https://coryhouse.dev/2018/03/05/tweet-970672032617820160/</guid><description>Ever use your Browser&apos;s console as a little scratchpad to try JavaScript? Now you can use VS Code as a REPL! Install the Quokka.js plugin and see t...</description><pubDate>Mon, 05 Mar 2018 14:47:01 GMT</pubDate><category>Tweets</category></item><item><title>GitHub tip: You can assign &quot;code owners&quot; to sections of a code base</title><link>https://coryhouse.dev/2018/03/06/tweet-971059927279169536/</link><guid isPermaLink="true">https://coryhouse.dev/2018/03/06/tweet-971059927279169536/</guid><description>GitHub tip: You can assign &quot;code owners&quot; to sections of a code base. Why? Code reviews are then assigned to the owner(s) automatically! 1. Create C...</description><pubDate>Tue, 06 Mar 2018 16:28:22 GMT</pubDate><category>Tweets</category></item><item><title>Sure, you know about console.log, but there are a lot of other handy tools...</title><link>https://coryhouse.dev/2018/03/10/tweet-972299512600555520/</link><guid isPermaLink="true">https://coryhouse.dev/2018/03/10/tweet-972299512600555520/</guid><description>Sure, you know about console.log, but there are a lot of other handy tools in the browser console: https://buff.ly/2FtBktn #javascript</description><pubDate>Sat, 10 Mar 2018 02:34:02 GMT</pubDate><category>Tweets</category></item><item><title>Realization: I’ve spent many hours reading books and blog posts about...</title><link>https://coryhouse.dev/2018/03/13/tweet-973622002794860544/</link><guid isPermaLink="true">https://coryhouse.dev/2018/03/13/tweet-973622002794860544/</guid><description>Realization: I’ve spent many hours reading books and blog posts about productivity. I must admit most of this reading was merely procrastination. I...</description><pubDate>Tue, 13 Mar 2018 18:09:09 GMT</pubDate><category>Tweets</category></item><item><title>Love the new split terminal window feature in VS Code</title><link>https://coryhouse.dev/2018/03/14/tweet-973856175690305542/</link><guid isPermaLink="true">https://coryhouse.dev/2018/03/14/tweet-973856175690305542/</guid><description>Love the new split terminal window feature in VS Code! @code Really handy for running your app and automated tests in side-by-side integrated termi...</description><pubDate>Wed, 14 Mar 2018 09:39:40 GMT</pubDate><category>Tweets</category></item><item><title>The &quot;full stack&quot; dev is a dying breed</title><link>https://coryhouse.dev/2018/03/16/tweet-974700015414382592/</link><guid isPermaLink="true">https://coryhouse.dev/2018/03/16/tweet-974700015414382592/</guid><description>The &quot;full stack&quot; dev is a dying breed. Just keeping up with JS &amp; React ecosystems is a full-time job! Redux, MobX, GraphQL/Apollo/Relay, Jest,...</description><pubDate>Fri, 16 Mar 2018 17:32:47 GMT</pubDate><category>Tweets</category></item><item><title>&quot;What have you learned in the past week that you’ll still care about in 5...</title><link>https://coryhouse.dev/2018/03/18/tweet-975369547795587073/</link><guid isPermaLink="true">https://coryhouse.dev/2018/03/18/tweet-975369547795587073/</guid><description>&quot;What have you learned in the past week that you’ll still care about in 5 years?&quot; - Shane Parrish Few tech skills were useful for me for over 5 yea...</description><pubDate>Sun, 18 Mar 2018 13:53:16 GMT</pubDate><category>Tweets</category></item><item><title>Many companies have: 1</title><link>https://coryhouse.dev/2018/03/18/tweet-975478132735135744/</link><guid isPermaLink="true">https://coryhouse.dev/2018/03/18/tweet-975478132735135744/</guid><description>Many companies have: 1. A corporate style guide 2. A separate UI component library that implements the style guide&apos;s rules Idea: The style guide an...</description><pubDate>Sun, 18 Mar 2018 21:04:45 GMT</pubDate><category>Tweets</category></item><item><title>Why specialize</title><link>https://coryhouse.dev/2018/03/19/tweet-975730389925982208/</link><guid isPermaLink="true">https://coryhouse.dev/2018/03/19/tweet-975730389925982208/</guid><description>Why specialize? Because the industry is changing faster than ever. Today, the half-life of an engineering degree is between 2.5 and 5 years. You mu...</description><pubDate>Mon, 19 Mar 2018 13:47:07 GMT</pubDate><category>Tweets</category></item><item><title>As a dev nearing 40, this StackOverflow stat concerns me: Only 7% of...</title><link>https://coryhouse.dev/2018/03/20/tweet-976145177688625154/</link><guid isPermaLink="true">https://coryhouse.dev/2018/03/20/tweet-976145177688625154/</guid><description>As a dev nearing 40, this StackOverflow stat concerns me: Only 7% of developers are over 44 years old. I still love solving problems with code. I&apos;d...</description><pubDate>Tue, 20 Mar 2018 17:15:20 GMT</pubDate><category>Tweets</category></item><item><title>Woah, @Netlify now supports AWS lambda functions</title><link>https://coryhouse.dev/2018/03/21/tweet-976474043963662336/</link><guid isPermaLink="true">https://coryhouse.dev/2018/03/21/tweet-976474043963662336/</guid><description>Woah, @Netlify now supports AWS lambda functions! 125,000 requests/mth for free. This integration with AWS is slick. https://buff.ly/2psWW2c</description><pubDate>Wed, 21 Mar 2018 15:02:08 GMT</pubDate><category>Tweets</category></item><item><title>Apple support is exceptional</title><link>https://coryhouse.dev/2018/03/21/tweet-976502459416956928/</link><guid isPermaLink="true">https://coryhouse.dev/2018/03/21/tweet-976502459416956928/</guid><description>Apple support is exceptional. 1 of my AirPods wasn’t as loud as the other. 1. I click “call me” on Apple site 2. They call 3. I explain the issue 4...</description><pubDate>Wed, 21 Mar 2018 16:55:03 GMT</pubDate><category>Tweets</category></item><item><title>React tip: Functional components transpile down to less code, which =...</title><link>https://coryhouse.dev/2018/03/27/tweet-978711974342164481/</link><guid isPermaLink="true">https://coryhouse.dev/2018/03/27/tweet-978711974342164481/</guid><description>React tip: Functional components transpile down to less code, which = smaller bundles. 🗜 Just updated my &quot;9 Reasons to use Functional Components&quot;...</description><pubDate>Tue, 27 Mar 2018 19:14:52 GMT</pubDate><category>Tweets</category></item><item><title>Google publishes a JavaScript style guide</title><link>https://coryhouse.dev/2018/03/30/tweet-979555086857883648/</link><guid isPermaLink="true">https://coryhouse.dev/2018/03/30/tweet-979555086857883648/</guid><description>Google publishes a JavaScript style guide. Here are some key lessons. #javascript Summary: -const or let, no var -semicolons required -prefer arrow...</description><pubDate>Fri, 30 Mar 2018 03:05:06 GMT</pubDate><category>Tweets</category></item><item><title>All too many meetings are scheduled because the scheduler is unwilling to...</title><link>https://coryhouse.dev/2018/04/02/tweet-980887219186622464/</link><guid isPermaLink="true">https://coryhouse.dev/2018/04/02/tweet-980887219186622464/</guid><description>All too many meetings are scheduled because the scheduler is unwilling to simply email a cogent and thoughtful proposal to effected parties. Before...</description><pubDate>Mon, 02 Apr 2018 19:18:31 GMT</pubDate><category>Tweets</category></item><item><title>Woah</title><link>https://coryhouse.dev/2018/04/03/tweet-981201871263158272/</link><guid isPermaLink="true">https://coryhouse.dev/2018/04/03/tweet-981201871263158272/</guid><description>Woah! This is super handy. Ever been confused trying to remember how to specify different version ranges for package.json references? Here&apos;s a semv...</description><pubDate>Tue, 03 Apr 2018 16:08:50 GMT</pubDate><category>Tweets</category></item><item><title>Ah</title><link>https://coryhouse.dev/2018/04/04/tweet-981558704708472832/</link><guid isPermaLink="true">https://coryhouse.dev/2018/04/04/tweet-981558704708472832/</guid><description>Ah! Just learned there is a name for this pattern. Ever created a file that just exports a bunch of things? That&apos;s a barrel. A barrel is a way to r...</description><pubDate>Wed, 04 Apr 2018 15:46:46 GMT</pubDate><category>Tweets</category></item><item><title>Question I&apos;ve heard recently: “What if we create a component library in...</title><link>https://coryhouse.dev/2018/04/06/tweet-982244076702515202/</link><guid isPermaLink="true">https://coryhouse.dev/2018/04/06/tweet-982244076702515202/</guid><description>Question I&apos;ve heard recently: “What if we create a component library in React/Vue/Angular/whatever and a new component tech becomes popular in a co...</description><pubDate>Fri, 06 Apr 2018 13:10:11 GMT</pubDate><category>Tweets</category></item><item><title>Yep, JavaScript Moves Fast. Build Your Component Library Anyway.</title><link>https://coryhouse.dev/2018/04/06/yep-javascript-moves-fast-build-your-component-library-anyway/</link><guid isPermaLink="true">https://coryhouse.dev/2018/04/06/yep-javascript-moves-fast-build-your-component-library-anyway/</guid><description>Here’s a question I’ve heard a few times recently: “What if we create a component library in React/Vue/Angular/whatever and a new component technology replaces …</description><pubDate>Fri, 06 Apr 2018 12:46:57 GMT</pubDate><category>JavaScript</category><category>UI</category><category>Web Components</category></item><item><title>Today I&apos;m creating plop templates for our team&apos;s React framework</title><link>https://coryhouse.dev/2018/04/09/tweet-983362771575361536/</link><guid isPermaLink="true">https://coryhouse.dev/2018/04/09/tweet-983362771575361536/</guid><description>Today I&apos;m creating plop templates for our team&apos;s React framework. This will allow us to easily generate React components, reducers, actions, tests,...</description><pubDate>Mon, 09 Apr 2018 15:15:29 GMT</pubDate><category>Tweets</category></item><item><title>Systems &gt; goals 1</title><link>https://coryhouse.dev/2018/04/11/tweet-983880830723469312/</link><guid isPermaLink="true">https://coryhouse.dev/2018/04/11/tweet-983880830723469312/</guid><description>Systems &gt; goals 1. Less stressful 2. Produces more consistent results 3. Avoids feeling like a failure when an arbitrary goal isn’t reached. 4....</description><pubDate>Wed, 11 Apr 2018 01:34:04 GMT</pubDate><category>Tweets</category></item><item><title>Study finds remote workers are more productive and stay with the company longer</title><link>https://coryhouse.dev/2018/04/12/tweet-984258767100489728/</link><guid isPermaLink="true">https://coryhouse.dev/2018/04/12/tweet-984258767100489728/</guid><description>Study finds remote workers are more productive and stay with the company longer. Working remote part time is an excellent compromise too. It provid...</description><pubDate>Thu, 12 Apr 2018 02:35:51 GMT</pubDate><category>Tweets</category></item><item><title>Solid examples of some common mistakes with async/await: How to escape...</title><link>https://coryhouse.dev/2018/04/13/tweet-984605597319430145/</link><guid isPermaLink="true">https://coryhouse.dev/2018/04/13/tweet-984605597319430145/</guid><description>Solid examples of some common mistakes with async/await: How to escape async/await hell https://buff.ly/2GXcGpy #javascript</description><pubDate>Fri, 13 Apr 2018 01:34:02 GMT</pubDate><category>Tweets</category></item><item><title>Coding gets much easier over time</title><link>https://coryhouse.dev/2018/04/13/tweet-984897769361100801/</link><guid isPermaLink="true">https://coryhouse.dev/2018/04/13/tweet-984897769361100801/</guid><description>Coding gets much easier over time. 1. You get better at breaking complex problems down into simple problems. 2. You get better at conveying your in...</description><pubDate>Fri, 13 Apr 2018 20:55:01 GMT</pubDate><category>Tweets</category></item><item><title>Do you read books and blogs that are full of superb life advice...and then...</title><link>https://coryhouse.dev/2018/04/15/tweet-985541106615058432/</link><guid isPermaLink="true">https://coryhouse.dev/2018/04/15/tweet-985541106615058432/</guid><description>Do you read books and blogs that are full of superb life advice...and then fail to act? Me too. A lot. Don’t do that. It’s intellectual procrastina...</description><pubDate>Sun, 15 Apr 2018 15:31:24 GMT</pubDate><category>Tweets</category></item><item><title>Making my slides for &quot;Rapid UI development with Mock APIs&quot; at @sddconf London</title><link>https://coryhouse.dev/2018/04/15/tweet-985598152190423041/</link><guid isPermaLink="true">https://coryhouse.dev/2018/04/15/tweet-985598152190423041/</guid><description>Making my slides for &quot;Rapid UI development with Mock APIs&quot; at @sddconf London. This seems an appropriate start...</description><pubDate>Sun, 15 Apr 2018 19:18:05 GMT</pubDate><category>Tweets</category></item><item><title>It&apos;s concerning how many internal projects have no docs</title><link>https://coryhouse.dev/2018/04/16/tweet-985878142760947712/</link><guid isPermaLink="true">https://coryhouse.dev/2018/04/16/tweet-985878142760947712/</guid><description>It&apos;s concerning how many internal projects have no docs. A readme is critical for closed source too. What&apos;s this for? How does it work? How do I ge...</description><pubDate>Mon, 16 Apr 2018 13:50:40 GMT</pubDate><category>Tweets</category></item><item><title>So how&apos;s everyone handling mock APIs</title><link>https://coryhouse.dev/2018/04/18/tweet-986429233756098571/</link><guid isPermaLink="true">https://coryhouse.dev/2018/04/18/tweet-986429233756098571/</guid><description>So how&apos;s everyone handling mock APIs? Any favorite services, libraries, or techniques to share? I&apos;m still using json-server with json-schema-faker....</description><pubDate>Wed, 18 Apr 2018 02:20:30 GMT</pubDate><category>Tweets</category></item><item><title>Tired of writing React propTypes by hand</title><link>https://coryhouse.dev/2018/04/19/tweet-986783867515408385/</link><guid isPermaLink="true">https://coryhouse.dev/2018/04/19/tweet-986783867515408385/</guid><description>Tired of writing React propTypes by hand? Just paste the JSON from your API into http://transform.now.sh and it&apos;ll spit out a propType declaration...</description><pubDate>Thu, 19 Apr 2018 01:49:42 GMT</pubDate><category>Tweets</category></item><item><title>Realization: Resumes have little correlation with me saying yes to a...</title><link>https://coryhouse.dev/2018/04/19/tweet-986998496699076608/</link><guid isPermaLink="true">https://coryhouse.dev/2018/04/19/tweet-986998496699076608/</guid><description>Realization: Resumes have little correlation with me saying yes to a potential hire. Instead, I chat about coding like baseball. We should both be...</description><pubDate>Thu, 19 Apr 2018 16:02:33 GMT</pubDate><category>Tweets</category></item><item><title>Tip: When creating a new React component, start by requiring all props</title><link>https://coryhouse.dev/2018/04/20/tweet-987349452871602176/</link><guid isPermaLink="true">https://coryhouse.dev/2018/04/20/tweet-987349452871602176/</guid><description>Tip: When creating a new React component, start by requiring all props. Why? 1 Handling the null case requires extra code 2 It&apos;s easy to forget to...</description><pubDate>Fri, 20 Apr 2018 15:17:08 GMT</pubDate><category>Tweets</category></item><item><title>Yes, CSS is hard</title><link>https://coryhouse.dev/2018/04/22/tweet-987866785138520064/</link><guid isPermaLink="true">https://coryhouse.dev/2018/04/22/tweet-987866785138520064/</guid><description>Yes, CSS is hard. But you&apos;ve gotta love the instant feedback loop in the browser - made even better with autocomplete support in dev tools. This co...</description><pubDate>Sun, 22 Apr 2018 01:32:49 GMT</pubDate><category>Tweets</category></item><item><title>I often see confusion around the need/impact of treating state as immutable...</title><link>https://coryhouse.dev/2018/04/23/tweet-988437367693377536/</link><guid isPermaLink="true">https://coryhouse.dev/2018/04/23/tweet-988437367693377536/</guid><description>I often see confusion around the need/impact of treating state as immutable in React. Here&apos;s a little sandbox I created to show the impacts of muta...</description><pubDate>Mon, 23 Apr 2018 15:20:07 GMT</pubDate><category>Tweets</category></item><item><title>I prefer plain JS over ImmutableJS</title><link>https://coryhouse.dev/2018/04/24/tweet-988591860242436097/</link><guid isPermaLink="true">https://coryhouse.dev/2018/04/24/tweet-988591860242436097/</guid><description>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...</description><pubDate>Tue, 24 Apr 2018 01:34:01 GMT</pubDate><category>Tweets</category></item><item><title>&quot;Avoid centralized config</title><link>https://coryhouse.dev/2018/04/24/tweet-988776326491525121/</link><guid isPermaLink="true">https://coryhouse.dev/2018/04/24/tweet-988776326491525121/</guid><description>&quot;Avoid centralized config. It&apos;s hard to delete centralized config, since it&apos;s unclear what you&apos;ll break.&quot; - Malte Ubl Examples: - Single CSS file -...</description><pubDate>Tue, 24 Apr 2018 13:47:01 GMT</pubDate><category>Tweets</category></item><item><title>Oooo</title><link>https://coryhouse.dev/2018/04/27/tweet-989855994867015680/</link><guid isPermaLink="true">https://coryhouse.dev/2018/04/27/tweet-989855994867015680/</guid><description>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...</description><pubDate>Fri, 27 Apr 2018 13:17:14 GMT</pubDate><category>Tweets</category></item><item><title>Excellent post on handling space in CSS</title><link>https://coryhouse.dev/2018/05/01/tweet-991151253492305920/</link><guid isPermaLink="true">https://coryhouse.dev/2018/05/01/tweet-991151253492305920/</guid><description>Excellent post on handling space in CSS. Taking this simple advice for handling spacing makes your styles so much easier to understand and maintain...</description><pubDate>Tue, 01 May 2018 03:04:08 GMT</pubDate><category>Tweets</category></item><item><title>&quot;Patterns for Reusable JavaScript Components&quot; is now up on YouTube</title><link>https://coryhouse.dev/2018/05/06/tweet-993163240212455424/</link><guid isPermaLink="true">https://coryhouse.dev/2018/05/06/tweet-993163240212455424/</guid><description>&quot;Patterns for Reusable JavaScript Components&quot; is now up on YouTube! 📹 This talk explores lessons I learned from building a reusable component libr...</description><pubDate>Sun, 06 May 2018 16:19:03 GMT</pubDate><category>Tweets</category></item><item><title>Writing dumb code is actually hard</title><link>https://coryhouse.dev/2018/05/07/tweet-993480832462610432/</link><guid isPermaLink="true">https://coryhouse.dev/2018/05/07/tweet-993480832462610432/</guid><description>Writing dumb code is actually hard. And it pays exponential dividends to do so. Spot on. Quick read: &quot;Why Senior Devs Write Dumb Code and How to Sp...</description><pubDate>Mon, 07 May 2018 13:21:03 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m writing a new conf talk: &quot;Going Pro&quot;</title><link>https://coryhouse.dev/2018/05/07/tweet-993559882019344384/</link><guid isPermaLink="true">https://coryhouse.dev/2018/05/07/tweet-993559882019344384/</guid><description>I&apos;m writing a new conf talk: &quot;Going Pro&quot;. Themes: Amateurs write clever code. Pros write clear code. Amateurs forget. Pros automate. Amateurs are r...</description><pubDate>Mon, 07 May 2018 18:35:09 GMT</pubDate><category>Tweets</category></item><item><title>When I started coding: &quot;This isn&apos;t working</title><link>https://coryhouse.dev/2018/05/10/tweet-994630150716346368/</link><guid isPermaLink="true">https://coryhouse.dev/2018/05/10/tweet-994630150716346368/</guid><description>When I started coding: &quot;This isn&apos;t working. It must be a bug in the library&quot;. Today, after years of experience: &quot;This isn&apos;t working. It&apos;s almost ce...</description><pubDate>Thu, 10 May 2018 17:28:01 GMT</pubDate><category>Tweets</category></item><item><title>Four super helpful #JavaScript array functions: map - give me a new array...</title><link>https://coryhouse.dev/2018/05/12/tweet-995329884766523393/</link><guid isPermaLink="true">https://coryhouse.dev/2018/05/12/tweet-995329884766523393/</guid><description>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...</description><pubDate>Sat, 12 May 2018 15:48:31 GMT</pubDate><category>Tweets</category></item><item><title>Tired of converting React functional components to classes by hand</title><link>https://coryhouse.dev/2018/05/23/tweet-999383490448764933/</link><guid isPermaLink="true">https://coryhouse.dev/2018/05/23/tweet-999383490448764933/</guid><description>Tired of converting React functional components to classes by hand? Me too. Just found a handy VS Code plugin: https://marketplace.visualstudio.com...</description><pubDate>Wed, 23 May 2018 20:16:06 GMT</pubDate><category>Tweets</category></item><item><title>Over my career, it&apos;s surprising how rarely I&apos;ve used recursion</title><link>https://coryhouse.dev/2018/05/28/tweet-1001221787789725697/</link><guid isPermaLink="true">https://coryhouse.dev/2018/05/28/tweet-1001221787789725697/</guid><description>Over my career, it&apos;s surprising how rarely I&apos;ve used recursion. School made it sound common. But I rarely write or see recursive algorithms in line...</description><pubDate>Mon, 28 May 2018 22:00:50 GMT</pubDate><category>Tweets</category></item><item><title>Most teams add dependencies without asking &quot;Can we afford this?&quot;</title><link>https://coryhouse.dev/2018/06/01/tweet-1002523640246784001/</link><guid isPermaLink="true">https://coryhouse.dev/2018/06/01/tweet-1002523640246784001/</guid><description>Most teams add dependencies without asking &quot;Can we afford this?&quot;. Instead, set a performance budget. How small? This post argues that you should li...</description><pubDate>Fri, 01 Jun 2018 12:13:56 GMT</pubDate><category>Tweets</category></item><item><title>The biggest barrier to automated testing isn&apos;t learning how to write tests</title><link>https://coryhouse.dev/2018/06/05/tweet-1004019792804753410/</link><guid isPermaLink="true">https://coryhouse.dev/2018/06/05/tweet-1004019792804753410/</guid><description>The biggest barrier to automated testing isn&apos;t learning how to write tests. The biggest barrier is understanding how to write testable code. #tdd</description><pubDate>Tue, 05 Jun 2018 15:19:07 GMT</pubDate><category>Tweets</category></item><item><title>If a week ago you told me my GitHub repo will be hosted by Microsoft in an...</title><link>https://coryhouse.dev/2018/06/06/tweet-1004358839511052290/</link><guid isPermaLink="true">https://coryhouse.dev/2018/06/06/tweet-1004358839511052290/</guid><description>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...</description><pubDate>Wed, 06 Jun 2018 13:46:22 GMT</pubDate><category>Tweets</category></item><item><title>Developers must strive to stay current so we know when our expertise,...</title><link>https://coryhouse.dev/2018/06/07/tweet-1004548844837920769/</link><guid isPermaLink="true">https://coryhouse.dev/2018/06/07/tweet-1004548844837920769/</guid><description>Developers must strive to stay current so we know when our expertise, insights, and “best practices” have become outdated. “The illiterates of the...</description><pubDate>Thu, 07 Jun 2018 02:21:22 GMT</pubDate><category>Tweets</category></item><item><title>If you&apos;re a speaker, watch this 6 minute TED Talk about nothing</title><link>https://coryhouse.dev/2018/06/08/tweet-1004954274718076928/</link><guid isPermaLink="true">https://coryhouse.dev/2018/06/08/tweet-1004954274718076928/</guid><description>If you&apos;re a speaker, watch this 6 minute TED Talk about nothing. Yep, it&apos;s about nothing. But if you carefully consider all the techniques in his d...</description><pubDate>Fri, 08 Jun 2018 05:12:24 GMT</pubDate><category>Tweets</category></item><item><title>I often see applications that are needlessly bloated and complex</title><link>https://coryhouse.dev/2018/06/09/tweet-1005446163322064898/</link><guid isPermaLink="true">https://coryhouse.dev/2018/06/09/tweet-1005446163322064898/</guid><description>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...</description><pubDate>Sat, 09 Jun 2018 13:47:00 GMT</pubDate><category>Tweets</category></item><item><title>One of my favorite things about side projects: When I&apos;m stuck, I can walk...</title><link>https://coryhouse.dev/2018/06/17/tweet-1008189521752743936/</link><guid isPermaLink="true">https://coryhouse.dev/2018/06/17/tweet-1008189521752743936/</guid><description>One of my favorite things about side projects: When I&apos;m stuck, I can walk away from the keyboard for the day and goof off until an idea pops in my...</description><pubDate>Sun, 17 Jun 2018 03:28:07 GMT</pubDate><category>Tweets</category></item><item><title>I enjoy learning concepts from others that believe I already understand</title><link>https://coryhouse.dev/2018/06/18/tweet-1008707658650738688/</link><guid isPermaLink="true">https://coryhouse.dev/2018/06/18/tweet-1008707658650738688/</guid><description>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...</description><pubDate>Mon, 18 Jun 2018 13:47:01 GMT</pubDate><category>Tweets</category></item><item><title>Sure, toying with new tech is fun</title><link>https://coryhouse.dev/2018/06/21/tweet-1009616168871657475/</link><guid isPermaLink="true">https://coryhouse.dev/2018/06/21/tweet-1009616168871657475/</guid><description>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...</description><pubDate>Thu, 21 Jun 2018 01:57:07 GMT</pubDate><category>Tweets</category></item><item><title>Why learn the proper names for language features</title><link>https://coryhouse.dev/2018/06/23/tweet-1010550079252516864/</link><guid isPermaLink="true">https://coryhouse.dev/2018/06/23/tweet-1010550079252516864/</guid><description>Why learn the proper names for language features? 1. It enables efficient conversations 2. It conveys professionalism in interviews 3. Most importa...</description><pubDate>Sat, 23 Jun 2018 15:48:08 GMT</pubDate><category>Tweets</category></item><item><title>Idea: - Think about your day in 15 minute blocks</title><link>https://coryhouse.dev/2018/06/25/tweet-1011357602406641669/</link><guid isPermaLink="true">https://coryhouse.dev/2018/06/25/tweet-1011357602406641669/</guid><description>Idea: - Think about your day in 15 minute blocks. - You get 32 blocks a day for each major life area: sleep, life, work. - Don&apos;t steal from sleep a...</description><pubDate>Mon, 25 Jun 2018 21:16:57 GMT</pubDate><category>Tweets</category></item><item><title>With cross-cutting concerns, I like to begin with copy/paste</title><link>https://coryhouse.dev/2018/06/29/tweet-1012688655884963841/</link><guid isPermaLink="true">https://coryhouse.dev/2018/06/29/tweet-1012688655884963841/</guid><description>With cross-cutting concerns, I like to begin with copy/paste. I accept the duplication at first. Once I&apos;ve copy pasted a few times and exercised th...</description><pubDate>Fri, 29 Jun 2018 13:26:05 GMT</pubDate><category>Tweets</category></item><item><title>Hey React devs, here&apos;s a repo that shows the same React app written with 4...</title><link>https://coryhouse.dev/2018/07/02/tweet-1013794897336459265/</link><guid isPermaLink="true">https://coryhouse.dev/2018/07/02/tweet-1013794897336459265/</guid><description>Hey React devs, here&apos;s a repo that shows the same React app written with 4 different approaches: 1. Plain React 2. React with Redux and thunks 3. R...</description><pubDate>Mon, 02 Jul 2018 14:41:53 GMT</pubDate><category>Tweets</category></item><item><title>On desktop, a user waits around 9 seconds before giving up</title><link>https://coryhouse.dev/2018/07/12/tweet-1017427461586538496/</link><guid isPermaLink="true">https://coryhouse.dev/2018/07/12/tweet-1017427461586538496/</guid><description>On desktop, a user waits around 9 seconds before giving up. On mobile, a user waits only around 3 seconds before giving up. So mobile performance i...</description><pubDate>Thu, 12 Jul 2018 15:16:24 GMT</pubDate><category>Tweets</category></item><item><title>Thanks for attending “Goodbye REST, Hello GraphQL”</title><link>https://coryhouse.dev/2018/07/12/tweet-1017487030127923201/</link><guid isPermaLink="true">https://coryhouse.dev/2018/07/12/tweet-1017487030127923201/</guid><description>Thanks for attending “Goodbye REST, Hello GraphQL”! Appreciated all the great questions! All (250!) slides and demos: https://github.com/coryhouse/...</description><pubDate>Thu, 12 Jul 2018 19:13:06 GMT</pubDate><category>Tweets</category></item><item><title>Specialize</title><link>https://coryhouse.dev/2018/07/15/tweet-1018562834031169536/</link><guid isPermaLink="true">https://coryhouse.dev/2018/07/15/tweet-1018562834031169536/</guid><description>Specialize. If you can’t quickly say what your specialty is, no one else can either. &quot;A woodpecker can tap twenty times on a thousand trees and get...</description><pubDate>Sun, 15 Jul 2018 18:27:58 GMT</pubDate><category>Tweets</category></item><item><title>Solid speaker tip: Be clear about the transformation you&apos;d like to make in...</title><link>https://coryhouse.dev/2018/07/17/tweet-1019199012908552192/</link><guid isPermaLink="true">https://coryhouse.dev/2018/07/17/tweet-1019199012908552192/</guid><description>Solid speaker tip: Be clear about the transformation you&apos;d like to make in your audience. I take this a step further. I announce the desired transf...</description><pubDate>Tue, 17 Jul 2018 12:35:55 GMT</pubDate><category>Tweets</category></item><item><title>Woah, just learned that in Node, values in package.json are automatically...</title><link>https://coryhouse.dev/2018/07/17/tweet-1019281933593989121/</link><guid isPermaLink="true">https://coryhouse.dev/2018/07/17/tweet-1019281933593989121/</guid><description>Woah, just learned that in Node, values in package.json are automatically accessible like this: process.env.npm_package_keyYouWantHere For example,...</description><pubDate>Tue, 17 Jul 2018 18:05:24 GMT</pubDate><category>Tweets</category></item><item><title>Coding gets less stressful over time</title><link>https://coryhouse.dev/2018/07/18/tweet-1019549658450821120/</link><guid isPermaLink="true">https://coryhouse.dev/2018/07/18/tweet-1019549658450821120/</guid><description>Coding gets less stressful over time. When I started coding and got an error: - I worried I was a bad coder. - I worried I would never find the ans...</description><pubDate>Wed, 18 Jul 2018 11:49:15 GMT</pubDate><category>Tweets</category></item><item><title>Confession: I speak at conferences because I benefit immensely: 1</title><link>https://coryhouse.dev/2018/07/19/tweet-1019933007757660160/</link><guid isPermaLink="true">https://coryhouse.dev/2018/07/19/tweet-1019933007757660160/</guid><description>Confession: I speak at conferences because I benefit immensely: 1. It forces me to learn 2. It improves my confidence 3. I make new friends 4. I ge...</description><pubDate>Thu, 19 Jul 2018 13:12:33 GMT</pubDate><category>Tweets</category></item><item><title>Never rely on your co-workers or QA staff to find bugs in your code</title><link>https://coryhouse.dev/2018/07/20/tweet-1020304068328247296/</link><guid isPermaLink="true">https://coryhouse.dev/2018/07/20/tweet-1020304068328247296/</guid><description>Never rely on your co-workers or QA staff to find bugs in your code. Write and test your code as though it&apos;s going to production without another se...</description><pubDate>Fri, 20 Jul 2018 13:47:00 GMT</pubDate><category>Tweets</category></item><item><title>Sure, the definition of success is personal</title><link>https://coryhouse.dev/2018/07/22/tweet-1020869113693048834/</link><guid isPermaLink="true">https://coryhouse.dev/2018/07/22/tweet-1020869113693048834/</guid><description>Sure, the definition of success is personal. But the definition of failure is clear: Complaining about things you can control instead of acting. Ex...</description><pubDate>Sun, 22 Jul 2018 03:12:18 GMT</pubDate><category>Tweets</category></item><item><title>Just tried hosting GraphQL on Amazon&apos;s AppSync</title><link>https://coryhouse.dev/2018/07/25/tweet-1022204088551960576/</link><guid isPermaLink="true">https://coryhouse.dev/2018/07/25/tweet-1022204088551960576/</guid><description>Just tried hosting GraphQL on Amazon&apos;s AppSync. Impressed how simple they&apos;ve made it to host a GraphQL server. 👍 They have starter apps for many p...</description><pubDate>Wed, 25 Jul 2018 19:37:01 GMT</pubDate><category>Tweets</category></item><item><title>TIL: You can easily grab all HTML form data like this: var data = new...</title><link>https://coryhouse.dev/2018/07/26/tweet-1022465931954606080/</link><guid isPermaLink="true">https://coryhouse.dev/2018/07/26/tweet-1022465931954606080/</guid><description>TIL: You can easily grab all HTML form data like this: var data = new FormData(document.querySelector(&apos;form&apos;)); This gives you key/value pairs that...</description><pubDate>Thu, 26 Jul 2018 12:57:29 GMT</pubDate><category>Tweets</category></item><item><title>Coding angry: Mostly fruitless</title><link>https://coryhouse.dev/2018/07/27/tweet-1022894123924242432/</link><guid isPermaLink="true">https://coryhouse.dev/2018/07/27/tweet-1022894123924242432/</guid><description>Coding angry: Mostly fruitless. Exercising angry: Highly fruitful. Frustrated? Walk away from the keyboard. Burn your frustration down while waitin...</description><pubDate>Fri, 27 Jul 2018 17:18:58 GMT</pubDate><category>Tweets</category></item><item><title>Speaking healed my poor self-image by changing how I assumed other people saw me</title><link>https://coryhouse.dev/2018/07/30/tweet-1023770060807200768/</link><guid isPermaLink="true">https://coryhouse.dev/2018/07/30/tweet-1023770060807200768/</guid><description>Speaking healed my poor self-image by changing how I assumed other people saw me. By &quot;leading&quot; for an hour, speaking helped convince me that people...</description><pubDate>Mon, 30 Jul 2018 03:19:37 GMT</pubDate><category>Tweets</category></item><item><title>React tip: Extract your lifecycle method logic to well named methods</title><link>https://coryhouse.dev/2018/08/02/tweet-1024990749627166721/</link><guid isPermaLink="true">https://coryhouse.dev/2018/08/02/tweet-1024990749627166721/</guid><description>React tip: Extract your lifecycle method logic to well named methods. Why? Because the lifecycle method&apos;s name only tells you when it runs. Good me...</description><pubDate>Thu, 02 Aug 2018 12:10:12 GMT</pubDate><category>Tweets</category></item><item><title>When I started coding my apps slowly became a house of cards</title><link>https://coryhouse.dev/2018/08/02/tweet-1025015109142364171/</link><guid isPermaLink="true">https://coryhouse.dev/2018/08/02/tweet-1025015109142364171/</guid><description>When I started coding my apps slowly became a house of cards. I couldn’t fully understand my own code. Too much complexity had to be loaded in my h...</description><pubDate>Thu, 02 Aug 2018 13:47:00 GMT</pubDate><category>Tweets</category></item><item><title>Workflow tip: Topical browser windows</title><link>https://coryhouse.dev/2018/08/05/tweet-1026068574262251520/</link><guid isPermaLink="true">https://coryhouse.dev/2018/08/05/tweet-1026068574262251520/</guid><description>Workflow tip: Topical browser windows. (Open a new browser window for each new topic). 1. This aids focus - no unrelated tabs 2. It&apos;s easier to swi...</description><pubDate>Sun, 05 Aug 2018 11:33:06 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m late to the party, but I just learned CSS grid in about 30 minutes via...</title><link>https://coryhouse.dev/2018/08/13/tweet-1028982796801462272/</link><guid isPermaLink="true">https://coryhouse.dev/2018/08/13/tweet-1028982796801462272/</guid><description>I&apos;m late to the party, but I just learned CSS grid in about 30 minutes via this slick, simple game: Grid Garden REPL&apos;s like this are highly effecti...</description><pubDate>Mon, 13 Aug 2018 12:33:10 GMT</pubDate><category>Tweets</category></item><item><title>My @ThatConference keynote is now up on YouTube: &quot;The 7 Pillar Developer: A...</title><link>https://coryhouse.dev/2018/08/13/tweet-1029075612470861824/</link><guid isPermaLink="true">https://coryhouse.dev/2018/08/13/tweet-1029075612470861824/</guid><description>My @ThatConference keynote is now up on YouTube: &quot;The 7 Pillar Developer: A Holistic Approach to Building an Exceptional Career&quot;. This one wasn&apos;t e...</description><pubDate>Mon, 13 Aug 2018 18:41:59 GMT</pubDate><category>Tweets</category></item><item><title>Jest 23.5 now supports .each statements: lay out multiple scenarios in a...</title><link>https://coryhouse.dev/2018/08/15/tweet-1029721142901334017/</link><guid isPermaLink="true">https://coryhouse.dev/2018/08/15/tweet-1029721142901334017/</guid><description>Jest 23.5 now supports .each statements: lay out multiple scenarios in a tabular format! Much more concise and readable than copy/pasting tests for...</description><pubDate>Wed, 15 Aug 2018 13:27:06 GMT</pubDate><category>Tweets</category></item><item><title>Recruiter: &quot;We hire the best people in the world...who are willing to work...</title><link>https://coryhouse.dev/2018/08/15/tweet-1029813144682684416/</link><guid isPermaLink="true">https://coryhouse.dev/2018/08/15/tweet-1029813144682684416/</guid><description>Recruiter: &quot;We hire the best people in the world...who are willing to work on-site in San Francisco.&quot;</description><pubDate>Wed, 15 Aug 2018 19:32:41 GMT</pubDate><category>Tweets</category></item><item><title>Learn one thing at a time</title><link>https://coryhouse.dev/2018/08/18/tweet-1030803279125590018/</link><guid isPermaLink="true">https://coryhouse.dev/2018/08/18/tweet-1030803279125590018/</guid><description>Learn one thing at a time. Example: People often try to learn React before learning modern JS. This leads to confusion, slows progress, and makes i...</description><pubDate>Sat, 18 Aug 2018 13:07:07 GMT</pubDate><category>Tweets</category></item><item><title>I ❤️ Git</title><link>https://coryhouse.dev/2018/08/19/tweet-1031190760278970368/</link><guid isPermaLink="true">https://coryhouse.dev/2018/08/19/tweet-1031190760278970368/</guid><description>I ❤️ Git. But honestly, it intimidated me for years. I thought I needed to understand all its powerful features to be productive. I found that&apos;s no...</description><pubDate>Sun, 19 Aug 2018 14:46:50 GMT</pubDate><category>Tweets</category></item><item><title>Confession: Technology moves so fast these days that when someone recommends...</title><link>https://coryhouse.dev/2018/08/21/tweet-1031737481975222272/</link><guid isPermaLink="true">https://coryhouse.dev/2018/08/21/tweet-1031737481975222272/</guid><description>Confession: Technology moves so fast these days that when someone recommends something I haven&apos;t heard of, I typically ignore it. When the 2nd or 3...</description><pubDate>Tue, 21 Aug 2018 02:59:19 GMT</pubDate><category>Tweets</category></item><item><title>So, think your eyes are fine</title><link>https://coryhouse.dev/2018/08/31/tweet-1035327686007316480/</link><guid isPermaLink="true">https://coryhouse.dev/2018/08/31/tweet-1035327686007316480/</guid><description>So, think your eyes are fine? So did I. Went to the eye doc for the first time ever...and now I have these. Text is now wildly crisp. I can finally...</description><pubDate>Fri, 31 Aug 2018 00:45:30 GMT</pubDate><category>Tweets</category></item><item><title>Realization: I&apos;m more productive on side projects because I step away when...</title><link>https://coryhouse.dev/2018/09/01/tweet-1035909671008251905/</link><guid isPermaLink="true">https://coryhouse.dev/2018/09/01/tweet-1035909671008251905/</guid><description>Realization: I&apos;m more productive on side projects because I step away when I&apos;m tired/bored/stuck. I come back when I have clarity and feel fresh. W...</description><pubDate>Sat, 01 Sep 2018 15:18:06 GMT</pubDate><category>Tweets</category></item><item><title>Two types of people: 1</title><link>https://coryhouse.dev/2018/09/07/tweet-1038188440335147008/</link><guid isPermaLink="true">https://coryhouse.dev/2018/09/07/tweet-1038188440335147008/</guid><description>Two types of people: 1. “I’ve gonna wait until I feel like it before I do it.” 2. “I’ve gotta do it so that I feel like it.” Mindset #2 is a life c...</description><pubDate>Fri, 07 Sep 2018 22:13:07 GMT</pubDate><category>Tweets</category></item><item><title>There’s always somebody Richer Faster Smarter Stronger More popular Better...</title><link>https://coryhouse.dev/2018/09/08/tweet-1038440619079868416/</link><guid isPermaLink="true">https://coryhouse.dev/2018/09/08/tweet-1038440619079868416/</guid><description>There’s always somebody Richer Faster Smarter Stronger More popular Better looking More powerful Who cares. Run your own race. For your own reasons.</description><pubDate>Sat, 08 Sep 2018 14:55:11 GMT</pubDate><category>Tweets</category></item><item><title>Commitments that radically increased my quality of life: 1</title><link>https://coryhouse.dev/2018/09/12/tweet-1039875218251149313/</link><guid isPermaLink="true">https://coryhouse.dev/2018/09/12/tweet-1039875218251149313/</guid><description>Commitments that radically increased my quality of life: 1. Work out daily. 2. No alarm. Sleep until I wake naturally. 3. Breakfast and dinner with...</description><pubDate>Wed, 12 Sep 2018 13:55:46 GMT</pubDate><category>Tweets</category></item><item><title>Why I ❤️front end dev: 1</title><link>https://coryhouse.dev/2018/09/12/tweet-1039925816329687041/</link><guid isPermaLink="true">https://coryhouse.dev/2018/09/12/tweet-1039925816329687041/</guid><description>Why I ❤️front end dev: 1. Rapid feedback loop 2. Visual results 3. Vibrant open source ecosystem 4. Freedom to choose my tools (nearly all free) 5....</description><pubDate>Wed, 12 Sep 2018 17:16:50 GMT</pubDate><category>Tweets</category></item><item><title>Really enjoying my new outdoor office</title><link>https://coryhouse.dev/2018/09/14/tweet-1040633206431772677/</link><guid isPermaLink="true">https://coryhouse.dev/2018/09/14/tweet-1040633206431772677/</guid><description>Really enjoying my new outdoor office! Bought comfy patio furniture and a Steelcase Skate table. Now I can work on the deck! The table rolls up ove...</description><pubDate>Fri, 14 Sep 2018 16:07:45 GMT</pubDate><category>Tweets</category></item><item><title>Okay Twitter, I&apos;m teaching my 10 year old son to code today and I need help</title><link>https://coryhouse.dev/2018/09/15/tweet-1041039361716969474/</link><guid isPermaLink="true">https://coryhouse.dev/2018/09/15/tweet-1041039361716969474/</guid><description>Okay Twitter, I&apos;m teaching my 10 year old son to code today and I need help. In the Chrome console, he accidentally assigned a variable to an undef...</description><pubDate>Sat, 15 Sep 2018 19:01:40 GMT</pubDate><category>Tweets</category></item><item><title>Tip: If you don&apos;t need to return anything while iterating over a JS array,...</title><link>https://coryhouse.dev/2018/09/21/tweet-1043201256704102401/</link><guid isPermaLink="true">https://coryhouse.dev/2018/09/21/tweet-1043201256704102401/</guid><description>Tip: If you don&apos;t need to return anything while iterating over a JS array, use forEach instead of map. #javascript</description><pubDate>Fri, 21 Sep 2018 18:12:15 GMT</pubDate><category>Tweets</category></item><item><title>I keep noticing examples of how movement *creates* motivation: Start walking...</title><link>https://coryhouse.dev/2018/09/25/tweet-1044723833188618240/</link><guid isPermaLink="true">https://coryhouse.dev/2018/09/25/tweet-1044723833188618240/</guid><description>I keep noticing examples of how movement *creates* motivation: Start walking on the treadmill and I tend to keep walking. Start lifting weights and...</description><pubDate>Tue, 25 Sep 2018 23:02:26 GMT</pubDate><category>Tweets</category></item><item><title>Odd habit: I often code in Git diff view</title><link>https://coryhouse.dev/2018/09/29/tweet-1045826101900201984/</link><guid isPermaLink="true">https://coryhouse.dev/2018/09/29/tweet-1045826101900201984/</guid><description>Odd habit: I often code in Git diff view. I find it&apos;s quicker to navigate the code since I can clearly see the sections of the file that I&apos;ve alrea...</description><pubDate>Sat, 29 Sep 2018 00:02:27 GMT</pubDate><category>Tweets</category></item><item><title>One of the most powerful things you can do for your motivation: Find work...</title><link>https://coryhouse.dev/2018/09/30/tweet-1046530973234601985/</link><guid isPermaLink="true">https://coryhouse.dev/2018/09/30/tweet-1046530973234601985/</guid><description>One of the most powerful things you can do for your motivation: Find work that doesn’t feel like work.</description><pubDate>Sun, 30 Sep 2018 22:43:22 GMT</pubDate><category>Tweets</category></item><item><title>An oddly common career mistake: Becoming the go-to person for something we...</title><link>https://coryhouse.dev/2018/10/01/tweet-1046758381833400321/</link><guid isPermaLink="true">https://coryhouse.dev/2018/10/01/tweet-1046758381833400321/</guid><description>An oddly common career mistake: Becoming the go-to person for something we don&apos;t enjoy. One solution: Strategic public ignorance. We should deliber...</description><pubDate>Mon, 01 Oct 2018 13:47:00 GMT</pubDate><category>Tweets</category></item><item><title>Just switched some tests from Enzyme to react-testing-library: ✅ Encourages...</title><link>https://coryhouse.dev/2018/10/02/tweet-1047150875502960641/</link><guid isPermaLink="true">https://coryhouse.dev/2018/10/02/tweet-1047150875502960641/</guid><description>Just switched some tests from Enzyme to react-testing-library: ✅ Encourages writing accessible apps ✅ Selectors typically rely on visible text ✅ Sm...</description><pubDate>Tue, 02 Oct 2018 15:46:38 GMT</pubDate><category>Tweets</category></item><item><title>The most striking benefit of dev in React/Angular/Vue vs jQuery: Components...</title><link>https://coryhouse.dev/2018/10/03/tweet-1047298692091404288/</link><guid isPermaLink="true">https://coryhouse.dev/2018/10/03/tweet-1047298692091404288/</guid><description>The most striking benefit of dev in React/Angular/Vue vs jQuery: Components free our minds. We can create portions of the UI in complete isolation,...</description><pubDate>Wed, 03 Oct 2018 01:34:00 GMT</pubDate><category>Tweets</category></item><item><title>Procrastination is often a sign we don&apos;t have clarity on how to move forward</title><link>https://coryhouse.dev/2018/10/04/tweet-1047661079583764480/</link><guid isPermaLink="true">https://coryhouse.dev/2018/10/04/tweet-1047661079583764480/</guid><description>Procrastination is often a sign we don&apos;t have clarity on how to move forward. But as developers, our work is malleable, so we can start anyway. Com...</description><pubDate>Thu, 04 Oct 2018 01:34:00 GMT</pubDate><category>Tweets</category></item><item><title>It’s live</title><link>https://coryhouse.dev/2018/10/06/tweet-1048560060333535233/</link><guid isPermaLink="true">https://coryhouse.dev/2018/10/06/tweet-1048560060333535233/</guid><description>It’s live! “Goodbye REST APIs. Hello GraphQL!” is now published on InfoQ! 🎉 https://www.infoq.com/presentations/rest-graphql</description><pubDate>Sat, 06 Oct 2018 13:06:14 GMT</pubDate><category>Tweets</category></item><item><title>Optimism is the most important quality you can develop for success and happiness</title><link>https://coryhouse.dev/2018/10/15/tweet-1051831813423943680/</link><guid isPermaLink="true">https://coryhouse.dev/2018/10/15/tweet-1051831813423943680/</guid><description>Optimism is the most important quality you can develop for success and happiness. Optimists have 3 behaviors: 1. Look for the good 2. Seek the valu...</description><pubDate>Mon, 15 Oct 2018 13:47:01 GMT</pubDate><category>Tweets</category></item><item><title>When I was young, I dreamt of things I wanted to buy</title><link>https://coryhouse.dev/2018/10/18/tweet-1052926000911343616/</link><guid isPermaLink="true">https://coryhouse.dev/2018/10/18/tweet-1052926000911343616/</guid><description>When I was young, I dreamt of things I wanted to buy. Today, I dream of things I want to create, skills I want to learn, and places I’d like to exp...</description><pubDate>Thu, 18 Oct 2018 14:14:55 GMT</pubDate><category>Tweets</category></item><item><title>Idea: 1</title><link>https://coryhouse.dev/2018/10/18/tweet-1053045732259835905/</link><guid isPermaLink="true">https://coryhouse.dev/2018/10/18/tweet-1053045732259835905/</guid><description>Idea: 1. Create a single React storybook for an entire company. 2. Build components there before integrating with an app. 3. Share these components...</description><pubDate>Thu, 18 Oct 2018 22:10:41 GMT</pubDate><category>Tweets</category></item><item><title>Promise.all combined with modern JS features like destructuring, object...</title><link>https://coryhouse.dev/2018/10/25/tweet-1055482442574901248/</link><guid isPermaLink="true">https://coryhouse.dev/2018/10/25/tweet-1055482442574901248/</guid><description>Promise.all combined with modern JS features like destructuring, object shorthand, and concise arrow functions is 🔥. Here I&apos;m making three API cal...</description><pubDate>Thu, 25 Oct 2018 15:33:18 GMT</pubDate><category>Tweets</category></item><item><title>At conferences, I frequently talk to attendees who blow me away with their...</title><link>https://coryhouse.dev/2018/10/30/tweet-1057241108739248129/</link><guid isPermaLink="true">https://coryhouse.dev/2018/10/30/tweet-1057241108739248129/</guid><description>At conferences, I frequently talk to attendees who blow me away with their knowledge and skills. There are countless brilliant people out there who...</description><pubDate>Tue, 30 Oct 2018 12:01:37 GMT</pubDate><category>Tweets</category></item><item><title>It takes me 2+ hours of recording and editing to create a tight 5 min video</title><link>https://coryhouse.dev/2018/10/31/tweet-1057747055609872399/</link><guid isPermaLink="true">https://coryhouse.dev/2018/10/31/tweet-1057747055609872399/</guid><description>It takes me 2+ hours of recording and editing to create a tight 5 min video. -I cut pauses -I speed up my typing -I edit it so that I talk &amp; ty...</description><pubDate>Wed, 31 Oct 2018 21:32:04 GMT</pubDate><category>Tweets</category></item><item><title>Woot</title><link>https://coryhouse.dev/2018/11/02/tweet-1058381128434892800/</link><guid isPermaLink="true">https://coryhouse.dev/2018/11/02/tweet-1058381128434892800/</guid><description>Woot! Just wrapped up recording my 10th @pluralsight course! 🎉 “Securing React Apps with Auth0”! Thanks to everyone for their input along the way!...</description><pubDate>Fri, 02 Nov 2018 15:31:39 GMT</pubDate><category>Tweets</category></item><item><title>Exercise is seriously magical</title><link>https://coryhouse.dev/2018/11/03/tweet-1058674230387265538/</link><guid isPermaLink="true">https://coryhouse.dev/2018/11/03/tweet-1058674230387265538/</guid><description>Exercise is seriously magical. You can wake up feeling lethargic and feel totally transformed 15 minutes into a hard workout. Alert. Optimistic. Re...</description><pubDate>Sat, 03 Nov 2018 10:56:20 GMT</pubDate><category>Tweets</category></item><item><title>Time is money</title><link>https://coryhouse.dev/2018/11/06/tweet-1059814432887443460/</link><guid isPermaLink="true">https://coryhouse.dev/2018/11/06/tweet-1059814432887443460/</guid><description>Time is money. So I buy the fastest machine I can afford. Waiting for a beach ball / spinner literally costs money in the form of lost focus, frict...</description><pubDate>Tue, 06 Nov 2018 14:27:05 GMT</pubDate><category>Tweets</category></item><item><title>Everyone’s life is filled with gravitational pulls that hold you in place:...</title><link>https://coryhouse.dev/2018/11/10/tweet-1061299121280204800/</link><guid isPermaLink="true">https://coryhouse.dev/2018/11/10/tweet-1061299121280204800/</guid><description>Everyone’s life is filled with gravitational pulls that hold you in place: Job Location Lifestyle Friends Family Self-image Tricky thing about majo...</description><pubDate>Sat, 10 Nov 2018 16:46:43 GMT</pubDate><category>Tweets</category></item><item><title>The 2018 State of JS Survey results are published</title><link>https://coryhouse.dev/2018/11/20/tweet-1064884611493314560/</link><guid isPermaLink="true">https://coryhouse.dev/2018/11/20/tweet-1064884611493314560/</guid><description>The 2018 State of JS Survey results are published! 🎉 Highlights: - React dominates, but Vue popularity has grown. - GraphQL has highest interest,...</description><pubDate>Tue, 20 Nov 2018 14:14:10 GMT</pubDate><category>Tweets</category></item><item><title>Just drove a @Tesla Model 3</title><link>https://coryhouse.dev/2018/11/21/tweet-1065036102254411776/</link><guid isPermaLink="true">https://coryhouse.dev/2018/11/21/tweet-1065036102254411776/</guid><description>Just drove a @Tesla Model 3. I am in love. So smooth. So fast. So quiet. So solid. Autopilot works like magic. I have tasted the future, and it is...</description><pubDate>Wed, 21 Nov 2018 00:16:08 GMT</pubDate><category>Tweets</category></item><item><title>Spent yesterday building a React app using Hooks</title><link>https://coryhouse.dev/2018/11/30/tweet-1068515261530148864/</link><guid isPermaLink="true">https://coryhouse.dev/2018/11/30/tweet-1068515261530148864/</guid><description>Spent yesterday building a React app using Hooks. What a joy. Even as a long time React dev, composing lifecycle methods remains tricky. useEffect’...</description><pubDate>Fri, 30 Nov 2018 14:41:05 GMT</pubDate><category>Tweets</category></item><item><title>🎉 It’s live</title><link>https://coryhouse.dev/2018/12/01/tweet-1068866639490441217/</link><guid isPermaLink="true">https://coryhouse.dev/2018/12/01/tweet-1068866639490441217/</guid><description>🎉 It’s live! 🎉 “Securing React Apps with Auth0” just published on @pluralsight! This course shows how to handle authorization and authentication...</description><pubDate>Sat, 01 Dec 2018 13:57:20 GMT</pubDate><category>Tweets</category></item><item><title>Just converted a React component to use Hooks</title><link>https://coryhouse.dev/2018/12/01/tweet-1068973174468091904/</link><guid isPermaLink="true">https://coryhouse.dev/2018/12/01/tweet-1068973174468091904/</guid><description>Just converted a React component to use Hooks. Here&apos;s the diff: https://github.com/coryhouse/pluralsight-redux-app-used-to-build-script/pull/18/fil...</description><pubDate>Sat, 01 Dec 2018 21:00:40 GMT</pubDate><category>Tweets</category></item><item><title>Developers: When asked to disable copy/paste, just say no</title><link>https://coryhouse.dev/2018/12/06/tweet-1070520339984248832/</link><guid isPermaLink="true">https://coryhouse.dev/2018/12/06/tweet-1070520339984248832/</guid><description>Developers: When asked to disable copy/paste, just say no. People who store info digitally should be able to copy/paste, without risking a typo. Di...</description><pubDate>Thu, 06 Dec 2018 03:28:33 GMT</pubDate><category>Tweets</category></item><item><title>Common mistake in React apps: Storing values in state that could be derived...</title><link>https://coryhouse.dev/2018/12/14/tweet-1073387709274689537/</link><guid isPermaLink="true">https://coryhouse.dev/2018/12/14/tweet-1073387709274689537/</guid><description>Common mistake in React apps: Storing values in state that could be derived from existing state. Doing so leads to manually trying to keep state va...</description><pubDate>Fri, 14 Dec 2018 01:22:27 GMT</pubDate><category>Tweets</category></item><item><title>Woah</title><link>https://coryhouse.dev/2018/12/17/tweet-1074766431991017473/</link><guid isPermaLink="true">https://coryhouse.dev/2018/12/17/tweet-1074766431991017473/</guid><description>Woah! Just found the PurgeCssPlugin for Webpack. It eliminates unused CSS! I didn&apos;t know this was easily possible with plain CSS, but it just elimi...</description><pubDate>Mon, 17 Dec 2018 20:41:00 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;ve wasted countless hours through the years on slow feedback loops</title><link>https://coryhouse.dev/2018/12/18/tweet-1075118855310229504/</link><guid isPermaLink="true">https://coryhouse.dev/2018/12/18/tweet-1075118855310229504/</guid><description>I&apos;ve wasted countless hours through the years on slow feedback loops. Over time, I learned: If the feedback loop is slow, job #1 is to ask: Is ther...</description><pubDate>Tue, 18 Dec 2018 20:01:24 GMT</pubDate><category>Tweets</category></item><item><title>Refactoring before commit is critical</title><link>https://coryhouse.dev/2018/12/20/tweet-1075819852248567808/</link><guid isPermaLink="true">https://coryhouse.dev/2018/12/20/tweet-1075819852248567808/</guid><description>Refactoring before commit is critical. After code hits prod, it&apos;s both harder and riskier to refactor. The code is no longer fresh in your mind, an...</description><pubDate>Thu, 20 Dec 2018 18:26:55 GMT</pubDate><category>Tweets</category></item><item><title>1</title><link>https://coryhouse.dev/2018/12/24/tweet-1077027663066423296/</link><guid isPermaLink="true">https://coryhouse.dev/2018/12/24/tweet-1077027663066423296/</guid><description>1. Avoid copy/pasting the same code in many spots. 2. Avoid creating abstractions before there are multiple use cases. Both these seemingly contrad...</description><pubDate>Mon, 24 Dec 2018 02:26:19 GMT</pubDate><category>Tweets</category></item><item><title>In 2018, I greatly reduced my bad habit of doing things merely to impress others</title><link>https://coryhouse.dev/2018/12/27/tweet-1078288653976326144/</link><guid isPermaLink="true">https://coryhouse.dev/2018/12/27/tweet-1078288653976326144/</guid><description>In 2018, I greatly reduced my bad habit of doing things merely to impress others. The book that helped me focus on what matters most: &quot;Ego Is the E...</description><pubDate>Thu, 27 Dec 2018 13:57:03 GMT</pubDate><category>Tweets</category></item><item><title>Woah</title><link>https://coryhouse.dev/2018/12/28/tweet-1078634947831914496/</link><guid isPermaLink="true">https://coryhouse.dev/2018/12/28/tweet-1078634947831914496/</guid><description>Woah. “97% of the code in today’s web apps is from npm. Only 3% is the code that you wrote.”- @seldo</description><pubDate>Fri, 28 Dec 2018 12:53:06 GMT</pubDate><category>Tweets</category></item><item><title>My 3 favorite ways to navigate in VS Code: @code 1</title><link>https://coryhouse.dev/2018/12/28/tweet-1078707725247434758/</link><guid isPermaLink="true">https://coryhouse.dev/2018/12/28/tweet-1078707725247434758/</guid><description>My 3 favorite ways to navigate in VS Code: @code 1. CMD+click on import path or function to navigate there 2. CMD+P to open by filename 3. CMD+SHIF...</description><pubDate>Fri, 28 Dec 2018 17:42:17 GMT</pubDate><category>Tweets</category></item><item><title>Npm perf tip: Use npm ci instead of npm install for 1</title><link>https://coryhouse.dev/2018/12/29/tweet-1079132148915937280/</link><guid isPermaLink="true">https://coryhouse.dev/2018/12/29/tweet-1079132148915937280/</guid><description>Npm perf tip: Use npm ci instead of npm install for 1. Your CI server 2. Anytime you want to delete node_modules, then npm install. Why? - It’s up...</description><pubDate>Sat, 29 Dec 2018 21:48:48 GMT</pubDate><category>Tweets</category></item><item><title>Tip: You can compare any two files using VS Code&apos;s slick native diff tool: 1</title><link>https://coryhouse.dev/2019/01/02/tweet-1080547409707577350/</link><guid isPermaLink="true">https://coryhouse.dev/2019/01/02/tweet-1080547409707577350/</guid><description>Tip: You can compare any two files using VS Code&apos;s slick native diff tool: 1. Open command palette (CMD+Shift+P) 2. Enter: &quot;File: Compare active fi...</description><pubDate>Wed, 02 Jan 2019 19:32:32 GMT</pubDate><category>Tweets</category></item><item><title>A function can be too long or too short</title><link>https://coryhouse.dev/2019/01/06/tweet-1081902906465497091/</link><guid isPermaLink="true">https://coryhouse.dev/2019/01/06/tweet-1081902906465497091/</guid><description>A function can be too long or too short. Too long: Doesn&apos;t fit in your head. Does many unrelated things. Too short: The abstraction costs more than...</description><pubDate>Sun, 06 Jan 2019 13:18:48 GMT</pubDate><category>Tweets</category></item><item><title>Despite my long history in C#, I’m still not using TypeScript</title><link>https://coryhouse.dev/2019/01/08/tweet-1082458332693176320/</link><guid isPermaLink="true">https://coryhouse.dev/2019/01/08/tweet-1082458332693176320/</guid><description>Despite my long history in C#, I’m still not using TypeScript. Why? I’ve found I don’t spend much time on type-related issues in JS. ¯\_(ツ)_/¯ “Jav...</description><pubDate>Tue, 08 Jan 2019 02:05:52 GMT</pubDate><category>Tweets</category></item><item><title>I ❤️ building against mock data</title><link>https://coryhouse.dev/2019/01/09/tweet-1082826621147590656/</link><guid isPermaLink="true">https://coryhouse.dev/2019/01/09/tweet-1082826621147590656/</guid><description>I ❤️ building against mock data. Just built a complete app against mock data. We rapidly iterated on the data structures while building the UI. The...</description><pubDate>Wed, 09 Jan 2019 02:29:19 GMT</pubDate><category>Tweets</category></item><item><title>Woah, here&apos;s a slick way to learn/experiment/teach JavaScript: RunJS</title><link>https://coryhouse.dev/2019/01/11/tweet-1083734632716226561/</link><guid isPermaLink="true">https://coryhouse.dev/2019/01/11/tweet-1083734632716226561/</guid><description>Woah, here&apos;s a slick way to learn/experiment/teach JavaScript: RunJS. - Compiles via Babel - TypeScript support - Reference npm packages - Runs you...</description><pubDate>Fri, 11 Jan 2019 14:37:25 GMT</pubDate><category>Tweets</category></item><item><title>A http://README.md is my favorite form of documentation</title><link>https://coryhouse.dev/2019/01/11/tweet-1083755029448871936/</link><guid isPermaLink="true">https://coryhouse.dev/2019/01/11/tweet-1083755029448871936/</guid><description>A http://README.md is my favorite form of documentation. ✅ No navigation overhead ✅ Easy to search via find ✅ Easy to download for offline access ✅...</description><pubDate>Fri, 11 Jan 2019 15:58:28 GMT</pubDate><category>Tweets</category></item><item><title>To start a habit, plan when and where</title><link>https://coryhouse.dev/2019/01/12/tweet-1084116788907044864/</link><guid isPermaLink="true">https://coryhouse.dev/2019/01/12/tweet-1084116788907044864/</guid><description>To start a habit, plan when and where. Then you’re more likely to do it. Instead of, “I want to write more”, make a plan. “I’ll write 5-7 every wee...</description><pubDate>Sat, 12 Jan 2019 15:55:59 GMT</pubDate><category>Tweets</category></item><item><title>I don’t understand the grumpy old programmer stereotype</title><link>https://coryhouse.dev/2019/01/15/tweet-1084965136929091584/</link><guid isPermaLink="true">https://coryhouse.dev/2019/01/15/tweet-1084965136929091584/</guid><description>I don’t understand the grumpy old programmer stereotype. Times have gotten so much better. I spent years just waiting for IE6 to die! Now browsers...</description><pubDate>Tue, 15 Jan 2019 00:07:00 GMT</pubDate><category>Tweets</category></item><item><title>Okay, I confess</title><link>https://coryhouse.dev/2019/01/18/tweet-1086327740645527552/</link><guid isPermaLink="true">https://coryhouse.dev/2019/01/18/tweet-1086327740645527552/</guid><description>Okay, I confess. I&apos;ve spent the last few days writing TypeScript...and I&apos;m enjoying it! What swayed me to try TS again: 1 Babel compiles TS 2 creat...</description><pubDate>Fri, 18 Jan 2019 18:21:31 GMT</pubDate><category>Tweets</category></item><item><title>Your outcomes are a lagging measure of your habits</title><link>https://coryhouse.dev/2019/01/23/tweet-1087918425459081217/</link><guid isPermaLink="true">https://coryhouse.dev/2019/01/23/tweet-1087918425459081217/</guid><description>Your outcomes are a lagging measure of your habits. Your net worth is a lagging measure of your financial habits. Your weight is a lagging measure...</description><pubDate>Wed, 23 Jan 2019 03:42:19 GMT</pubDate><category>Tweets</category></item><item><title>JS Tip: You can declare a default value when destructuring</title><link>https://coryhouse.dev/2019/01/24/tweet-1088413032185765888/</link><guid isPermaLink="true">https://coryhouse.dev/2019/01/24/tweet-1088413032185765888/</guid><description>JS Tip: You can declare a default value when destructuring. Example: const { id = 7 } = {} console.log(id) // 7 This protects from setting &quot;id&quot; abo...</description><pubDate>Thu, 24 Jan 2019 12:27:43 GMT</pubDate><category>Tweets</category></item><item><title>Hot take: Optional chaining encourages writing brittle code</title><link>https://coryhouse.dev/2019/01/24/tweet-1088419498846244864/</link><guid isPermaLink="true">https://coryhouse.dev/2019/01/24/tweet-1088419498846244864/</guid><description>Hot take: Optional chaining encourages writing brittle code. Example (currently a stage 1 JS feature): const data = myObj?.firstProp?.secondProp?.a...</description><pubDate>Thu, 24 Jan 2019 12:53:25 GMT</pubDate><category>Tweets</category></item><item><title>I feel wildly lucky to have found a career I enjoy so much</title><link>https://coryhouse.dev/2019/01/25/tweet-1088930789063053312/</link><guid isPermaLink="true">https://coryhouse.dev/2019/01/25/tweet-1088930789063053312/</guid><description>I feel wildly lucky to have found a career I enjoy so much. Even after 2 decades, writing software continues to be a fascinating occupation. Each p...</description><pubDate>Fri, 25 Jan 2019 22:45:06 GMT</pubDate><category>Tweets</category></item><item><title>When I see complex code that I don&apos;t understand, I fight a knee jerk...</title><link>https://coryhouse.dev/2019/01/28/tweet-1089956814811205633/</link><guid isPermaLink="true">https://coryhouse.dev/2019/01/28/tweet-1089956814811205633/</guid><description>When I see complex code that I don&apos;t understand, I fight a knee jerk reaction: &quot;That seems needlessly complicated&quot;... It&apos;s hard to discern between...</description><pubDate>Mon, 28 Jan 2019 18:42:09 GMT</pubDate><category>Tweets</category></item><item><title>A helpful code review mindset: &quot;Will we understand why this line exists...</title><link>https://coryhouse.dev/2019/01/31/tweet-1091019410758950912/</link><guid isPermaLink="true">https://coryhouse.dev/2019/01/31/tweet-1091019410758950912/</guid><description>A helpful code review mindset: &quot;Will we understand why this line exists later?&quot; If the answer is no, options to clarify intent: 1. Introduce a well...</description><pubDate>Thu, 31 Jan 2019 17:04:32 GMT</pubDate><category>Tweets</category></item><item><title>Software development: When your curiosity about why something doesn&apos;t work...</title><link>https://coryhouse.dev/2019/02/01/tweet-1091384796276768774/</link><guid isPermaLink="true">https://coryhouse.dev/2019/02/01/tweet-1091384796276768774/</guid><description>Software development: When your curiosity about why something doesn&apos;t work exceeds your desire to give up.</description><pubDate>Fri, 01 Feb 2019 17:16:27 GMT</pubDate><category>Tweets</category></item><item><title>A Slack chat from today: &quot;We&apos;re trying to reach feature parody&quot;</title><link>https://coryhouse.dev/2019/02/13/tweet-1095537250174144512/</link><guid isPermaLink="true">https://coryhouse.dev/2019/02/13/tweet-1095537250174144512/</guid><description>A Slack chat from today: &quot;We&apos;re trying to reach feature parody&quot;. &quot;You mean parity.&quot; 🤓 &quot;Yeah, whatever. Anyway, once it’s all switched we’ll defeca...</description><pubDate>Wed, 13 Feb 2019 04:16:49 GMT</pubDate><category>Tweets</category></item><item><title>To simulate enums in JS, you can use an object</title><link>https://coryhouse.dev/2019/02/13/tweet-1095718479666270208/</link><guid isPermaLink="true">https://coryhouse.dev/2019/02/13/tweet-1095718479666270208/</guid><description>To simulate enums in JS, you can use an object. But I often prefer to use consts. To me, consts read better, are easier to use, and I don&apos;t have to...</description><pubDate>Wed, 13 Feb 2019 16:16:57 GMT</pubDate><category>Tweets</category></item><item><title>There are so many benefits to transitioning to GraphQL</title><link>https://coryhouse.dev/2019/02/15/tweet-1096447672230268929/</link><guid isPermaLink="true">https://coryhouse.dev/2019/02/15/tweet-1096447672230268929/</guid><description>There are so many benefits to transitioning to GraphQL. Here&apos;s a few benefits Netflix is enjoying. Smaller payloads Faster responses Simpler backen...</description><pubDate>Fri, 15 Feb 2019 16:34:30 GMT</pubDate><category>Tweets</category></item><item><title>If you&apos;re doing GraphQL, here&apos;s an excellent, concise list of best...</title><link>https://coryhouse.dev/2019/02/15/tweet-1096512696160321536/</link><guid isPermaLink="true">https://coryhouse.dev/2019/02/15/tweet-1096512696160321536/</guid><description>If you&apos;re doing GraphQL, here&apos;s an excellent, concise list of best practices: https://principledgraphql.com/</description><pubDate>Fri, 15 Feb 2019 20:52:53 GMT</pubDate><category>Tweets</category></item><item><title>Limiting work in progress is important</title><link>https://coryhouse.dev/2019/02/19/tweet-1097948494239883265/</link><guid isPermaLink="true">https://coryhouse.dev/2019/02/19/tweet-1097948494239883265/</guid><description>Limiting work in progress is important. But I’ve found the ideal number of items in progress is greater than 1. Concurrent tasks mean you can switc...</description><pubDate>Tue, 19 Feb 2019 19:58:14 GMT</pubDate><category>Tweets</category></item><item><title>Superb CSS post</title><link>https://coryhouse.dev/2019/02/28/tweet-1101224210616274944/</link><guid isPermaLink="true">https://coryhouse.dev/2019/02/28/tweet-1101224210616274944/</guid><description>Superb CSS post. &quot;Stop thinking about separation of concerns. Instead, think dependency *direction*.&quot; CSS and HTML must correspond. So ask what&apos;s m...</description><pubDate>Thu, 28 Feb 2019 20:54:46 GMT</pubDate><category>Tweets</category></item><item><title>Recording complete</title><link>https://coryhouse.dev/2019/03/01/tweet-1101502383627165696/</link><guid isPermaLink="true">https://coryhouse.dev/2019/03/01/tweet-1101502383627165696/</guid><description>Recording complete! 🎉 I&apos;ve completely updated &quot;Building Apps with React and Redux&quot; on Pluralsight! I made a long list of enhancements along the wa...</description><pubDate>Fri, 01 Mar 2019 15:20:07 GMT</pubDate><category>Tweets</category></item><item><title>Just got confirmation that the major update to “Building Apps with React and...</title><link>https://coryhouse.dev/2019/03/12/tweet-1105598461175578625/</link><guid isPermaLink="true">https://coryhouse.dev/2019/03/12/tweet-1105598461175578625/</guid><description>Just got confirmation that the major update to “Building Apps with React and Redux” on @pluralsight goes live tonight at 1030. 🎉 I’ve upgraded all...</description><pubDate>Tue, 12 Mar 2019 22:36:28 GMT</pubDate><category>Tweets</category></item><item><title>My huge update to &quot;Building Apps with React and Redux&quot; on @pluralsight is live</title><link>https://coryhouse.dev/2019/03/13/tweet-1105820768548458496/</link><guid isPermaLink="true">https://coryhouse.dev/2019/03/13/tweet-1105820768548458496/</guid><description>My huge update to &quot;Building Apps with React and Redux&quot; on @pluralsight is live. 🎉 This includes a long list of enhancements to cover new tech and...</description><pubDate>Wed, 13 Mar 2019 13:19:51 GMT</pubDate><category>Tweets</category></item><item><title>Just built a powerful React form implementation with 3 ingredients: 1</title><link>https://coryhouse.dev/2019/03/15/tweet-1106385187678490624/</link><guid isPermaLink="true">https://coryhouse.dev/2019/03/15/tweet-1106385187678490624/</guid><description>Just built a powerful React form implementation with 3 ingredients: 1. Reusable form inputs = enforce consistency 2. Hooks = share logic across reu...</description><pubDate>Fri, 15 Mar 2019 02:42:39 GMT</pubDate><category>Tweets</category></item><item><title>Working with dates in JavaScript</title><link>https://coryhouse.dev/2019/03/16/tweet-1106914772228952066/</link><guid isPermaLink="true">https://coryhouse.dev/2019/03/16/tweet-1106914772228952066/</guid><description>Working with dates in JavaScript? Moment is popular, but it has a few significant downsides. This post compares a variety of alternatives, with cod...</description><pubDate>Sat, 16 Mar 2019 13:47:01 GMT</pubDate><category>Tweets</category></item><item><title>Little JavaScript trick I find useful: When declaring a named import, enter...</title><link>https://coryhouse.dev/2019/03/19/tweet-1108093804459032578/</link><guid isPermaLink="true">https://coryhouse.dev/2019/03/19/tweet-1108093804459032578/</guid><description>Little JavaScript trick I find useful: When declaring a named import, enter the right-hand side first. Then, you get autocompletion support from yo...</description><pubDate>Tue, 19 Mar 2019 19:52:05 GMT</pubDate><category>Tweets</category></item><item><title>React tip: Context can enhance performance too</title><link>https://coryhouse.dev/2019/03/20/tweet-1108457241873707010/</link><guid isPermaLink="true">https://coryhouse.dev/2019/03/20/tweet-1108457241873707010/</guid><description>React tip: Context can enhance performance too. Example: Have a component that needs some data, but some of its parents don&apos;t need that data? Consi...</description><pubDate>Wed, 20 Mar 2019 19:56:15 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m concerned by open source projects using only Yarn in their examples</title><link>https://coryhouse.dev/2019/03/22/tweet-1109177783689859074/</link><guid isPermaLink="true">https://coryhouse.dev/2019/03/22/tweet-1109177783689859074/</guid><description>I&apos;m concerned by open source projects using only Yarn in their examples. Please use npm for your docs. - npm is the default - Yarn only docs create...</description><pubDate>Fri, 22 Mar 2019 19:39:25 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m ashamed to say I used to assume consumption was a sign of wealth</title><link>https://coryhouse.dev/2019/03/24/tweet-1109873577287970819/</link><guid isPermaLink="true">https://coryhouse.dev/2019/03/24/tweet-1109873577287970819/</guid><description>I&apos;m ashamed to say I used to assume consumption was a sign of wealth. Fancy car? Must be rich. Now I realize conspicuous consumption says very litt...</description><pubDate>Sun, 24 Mar 2019 17:44:15 GMT</pubDate><category>Tweets</category></item><item><title>When creating reusable components, it&apos;s useful to have a checklist of states...</title><link>https://coryhouse.dev/2019/03/26/tweet-1110657232885243906/</link><guid isPermaLink="true">https://coryhouse.dev/2019/03/26/tweet-1110657232885243906/</guid><description>When creating reusable components, it&apos;s useful to have a checklist of states to consider. It&apos;s easy to forget some of these: - Loading - Loading ti...</description><pubDate>Tue, 26 Mar 2019 21:38:13 GMT</pubDate><category>Tweets</category></item><item><title>TIL about console.dir</title><link>https://coryhouse.dev/2019/03/28/tweet-1111250248612147200/</link><guid isPermaLink="true">https://coryhouse.dev/2019/03/28/tweet-1111250248612147200/</guid><description>TIL about console.dir. It writes all the properties of a JavaScript object to the console. Closures are even labeled! See highlighted text in the a...</description><pubDate>Thu, 28 Mar 2019 12:54:39 GMT</pubDate><category>Tweets</category></item><item><title>Woah, this is elegant JavaScript</title><link>https://coryhouse.dev/2019/03/29/tweet-1111710454362054656/</link><guid isPermaLink="true">https://coryhouse.dev/2019/03/29/tweet-1111710454362054656/</guid><description>Woah, this is elegant JavaScript. Need to conditionally add a property to an object? Here&apos;s a slick approach. The right-hand side is only applied i...</description><pubDate>Fri, 29 Mar 2019 19:23:21 GMT</pubDate><category>Tweets</category></item><item><title>Just finished “The Simple Path to Wealth”</title><link>https://coryhouse.dev/2019/03/31/tweet-1112388058157064192/</link><guid isPermaLink="true">https://coryhouse.dev/2019/03/31/tweet-1112388058157064192/</guid><description>Just finished “The Simple Path to Wealth”. Superb. 1. Live WAY below your means 2. Invest savings in low cost index funds (VTSAX) 3. When your inve...</description><pubDate>Sun, 31 Mar 2019 16:15:54 GMT</pubDate><category>Tweets</category></item><item><title>When a team regularly responds to code reviews with “Looks good to me”, I...</title><link>https://coryhouse.dev/2019/04/02/tweet-1113192633785040903/</link><guid isPermaLink="true">https://coryhouse.dev/2019/04/02/tweet-1113192633785040903/</guid><description>When a team regularly responds to code reviews with “Looks good to me”, I get concerned. A code review with no questions, comments, issues, or sugg...</description><pubDate>Tue, 02 Apr 2019 21:33:00 GMT</pubDate><category>Tweets</category></item><item><title>Unpopular opinion: The team lead should approve all code reviews</title><link>https://coryhouse.dev/2019/04/02/tweet-1113216035958796299/</link><guid isPermaLink="true">https://coryhouse.dev/2019/04/02/tweet-1113216035958796299/</guid><description>Unpopular opinion: The team lead should approve all code reviews. Without a clear person with skin in the game, code quality tends to atrophy. Why?...</description><pubDate>Tue, 02 Apr 2019 23:06:00 GMT</pubDate><category>Tweets</category></item><item><title>Just used react-window to handle a table of 1000 records</title><link>https://coryhouse.dev/2019/04/04/tweet-1113900410799050756/</link><guid isPermaLink="true">https://coryhouse.dev/2019/04/04/tweet-1113900410799050756/</guid><description>Just used react-window to handle a table of 1000 records. Loads nearly instantly, feels natural when scrolling, and re-renders a subset of rows imm...</description><pubDate>Thu, 04 Apr 2019 20:25:27 GMT</pubDate><category>Tweets</category></item><item><title>Habit that has radically improved my life over the last 5 years: Listening...</title><link>https://coryhouse.dev/2019/04/06/tweet-1114599633781653504/</link><guid isPermaLink="true">https://coryhouse.dev/2019/04/06/tweet-1114599633781653504/</guid><description>Habit that has radically improved my life over the last 5 years: Listening to audiobooks instead of the radio. In just the last year, I’ve “read” 2...</description><pubDate>Sat, 06 Apr 2019 18:43:55 GMT</pubDate><category>Tweets</category></item><item><title>I have days where I say “I don’t have time for the gym.” Yet I spend an hour...</title><link>https://coryhouse.dev/2019/04/07/tweet-1114890141506723841/</link><guid isPermaLink="true">https://coryhouse.dev/2019/04/07/tweet-1114890141506723841/</guid><description>I have days where I say “I don’t have time for the gym.” Yet I spend an hour on Twitter that day. That’s not a lack of time. That’s a failure of pr...</description><pubDate>Sun, 07 Apr 2019 13:58:18 GMT</pubDate><category>Tweets</category></item><item><title>Ooo, I like this pattern from @kentcdodds for minimizing boilerplate in...</title><link>https://coryhouse.dev/2019/04/08/tweet-1115265843917725696/</link><guid isPermaLink="true">https://coryhouse.dev/2019/04/08/tweet-1115265843917725696/</guid><description>Ooo, I like this pattern from @kentcdodds for minimizing boilerplate in React tests. Note how the helpers in the renderLoginForm function make the...</description><pubDate>Mon, 08 Apr 2019 14:51:12 GMT</pubDate><category>Tweets</category></item><item><title>What I love about working remote: You can work where you feel most inspired</title><link>https://coryhouse.dev/2019/04/09/tweet-1115633711792439299/</link><guid isPermaLink="true">https://coryhouse.dev/2019/04/09/tweet-1115633711792439299/</guid><description>What I love about working remote: You can work where you feel most inspired. Got up early and biked to the lake. 70 degrees and sunny. 😍</description><pubDate>Tue, 09 Apr 2019 15:12:59 GMT</pubDate><category>Tweets</category></item><item><title>Things I think about during a code review: Is the intent clear</title><link>https://coryhouse.dev/2019/04/10/tweet-1115959687332159490/</link><guid isPermaLink="true">https://coryhouse.dev/2019/04/10/tweet-1115959687332159490/</guid><description>Things I think about during a code review: Is the intent clear? Is there needless duplication? Could existing code have solved this? Is this an ato...</description><pubDate>Wed, 10 Apr 2019 12:48:17 GMT</pubDate><category>Tweets</category></item><item><title>Just spent months building a high performance UI in React</title><link>https://coryhouse.dev/2019/04/16/tweet-1118276438673821697/</link><guid isPermaLink="true">https://coryhouse.dev/2019/04/16/tweet-1118276438673821697/</guid><description>Just spent months building a high performance UI in React. Instantly responsive against a mock API. Even with Chrome performance at 4x slowdown and...</description><pubDate>Tue, 16 Apr 2019 22:14:14 GMT</pubDate><category>Tweets</category></item><item><title>&quot;Premature optimization is the root of all evil&quot; - Donald Knuth Why</title><link>https://coryhouse.dev/2019/04/19/tweet-1119286138705985536/</link><guid isPermaLink="true">https://coryhouse.dev/2019/04/19/tweet-1119286138705985536/</guid><description>&quot;Premature optimization is the root of all evil&quot; - Donald Knuth Why? Because perf optimizations typically require more code, more complexity, and t...</description><pubDate>Fri, 19 Apr 2019 17:06:25 GMT</pubDate><category>Tweets</category></item><item><title>Sad to hear of Joe Armstrong&apos;s passing.😔 My fav quote of his: &quot;The problem...</title><link>https://coryhouse.dev/2019/04/20/tweet-1119615272925712384/</link><guid isPermaLink="true">https://coryhouse.dev/2019/04/20/tweet-1119615272925712384/</guid><description>Sad to hear of Joe Armstrong&apos;s passing.😔 My fav quote of his: &quot;The problem with object-oriented languages is they’ve got all this implicit environ...</description><pubDate>Sat, 20 Apr 2019 14:54:17 GMT</pubDate><category>Tweets</category></item><item><title>GraphQL isn’t suddenly popular because it can do things REST can’t do</title><link>https://coryhouse.dev/2019/05/04/tweet-1124709284619718656/</link><guid isPermaLink="true">https://coryhouse.dev/2019/05/04/tweet-1124709284619718656/</guid><description>GraphQL isn’t suddenly popular because it can do things REST can’t do. REST isn’t a spec. So “REST” can theoretically do anything. GraphQL is popul...</description><pubDate>Sat, 04 May 2019 16:16:04 GMT</pubDate><category>Tweets</category></item><item><title>Recipe for going nowhere for a decade: 1</title><link>https://coryhouse.dev/2019/05/07/tweet-1125586022144913409/</link><guid isPermaLink="true">https://coryhouse.dev/2019/05/07/tweet-1125586022144913409/</guid><description>Recipe for going nowhere for a decade: 1. Don’t travel 2. Don’t read 3. Spend all free time on entertainment 4. Do the same job 5. Eat the same stu...</description><pubDate>Tue, 07 May 2019 02:19:54 GMT</pubDate><category>Tweets</category></item><item><title>A benefit to having an expert on the team: They&apos;ve already made *many* mistakes</title><link>https://coryhouse.dev/2019/05/09/tweet-1126512343280521216/</link><guid isPermaLink="true">https://coryhouse.dev/2019/05/09/tweet-1126512343280521216/</guid><description>A benefit to having an expert on the team: They&apos;ve already made *many* mistakes. So an expert can often say &quot;I&apos;d avoid x because... But I&apos;ve found...</description><pubDate>Thu, 09 May 2019 15:40:46 GMT</pubDate><category>Tweets</category></item><item><title>Redux and context are like pain medicine</title><link>https://coryhouse.dev/2019/05/15/tweet-1128681957402058753/</link><guid isPermaLink="true">https://coryhouse.dev/2019/05/15/tweet-1128681957402058753/</guid><description>Redux and context are like pain medicine. They reduce the pain of managing state and actions used by many components. But global data has downsides...</description><pubDate>Wed, 15 May 2019 15:22:03 GMT</pubDate><category>Tweets</category></item><item><title>To foster automated testing: 1 Setup test framework 2 Write a few tests 3...</title><link>https://coryhouse.dev/2019/05/17/tweet-1129356564442304512/</link><guid isPermaLink="true">https://coryhouse.dev/2019/05/17/tweet-1129356564442304512/</guid><description>To foster automated testing: 1 Setup test framework 2 Write a few tests 3 Setup a CI server to run the tests on every pull request. 4 Integrate pul...</description><pubDate>Fri, 17 May 2019 12:02:42 GMT</pubDate><category>Tweets</category></item><item><title>Here&apos;s a simple practice for maintainable code</title><link>https://coryhouse.dev/2019/05/17/tweet-1129406577558151169/</link><guid isPermaLink="true">https://coryhouse.dev/2019/05/17/tweet-1129406577558151169/</guid><description>Here&apos;s a simple practice for maintainable code. Separate these three activities: 1. Get data 2. Reformat data 3. Display data Code that separates t...</description><pubDate>Fri, 17 May 2019 15:21:26 GMT</pubDate><category>Tweets</category></item><item><title>Voluntary discomfort avoids involuntary discomfort</title><link>https://coryhouse.dev/2019/05/20/tweet-1130467203990601728/</link><guid isPermaLink="true">https://coryhouse.dev/2019/05/20/tweet-1130467203990601728/</guid><description>Voluntary discomfort avoids involuntary discomfort. Exercise and eating healthy avoids health problems Learning new skills avoids being stuck in yo...</description><pubDate>Mon, 20 May 2019 13:35:59 GMT</pubDate><category>Tweets</category></item><item><title>Question: For those writing automated integration tests/end-to-end tests,...</title><link>https://coryhouse.dev/2019/05/23/tweet-1131590792714301440/</link><guid isPermaLink="true">https://coryhouse.dev/2019/05/23/tweet-1131590792714301440/</guid><description>Question: For those writing automated integration tests/end-to-end tests, how do you handle data? Options: 1. Call a real DB 2. Call a mock API 3....</description><pubDate>Thu, 23 May 2019 16:00:43 GMT</pubDate><category>Tweets</category></item><item><title>Avoid trading long-term happiness for short-term pleasure</title><link>https://coryhouse.dev/2019/06/08/tweet-1137359880208232448/</link><guid isPermaLink="true">https://coryhouse.dev/2019/06/08/tweet-1137359880208232448/</guid><description>Avoid trading long-term happiness for short-term pleasure. This mindset avoids binging, cheating, overspending, and other destructive hedonism.</description><pubDate>Sat, 08 Jun 2019 14:05:01 GMT</pubDate><category>Tweets</category></item><item><title>Common thinking: &quot;I need to add code to justify my job&quot;</title><link>https://coryhouse.dev/2019/06/09/tweet-1137693973110284290/</link><guid isPermaLink="true">https://coryhouse.dev/2019/06/09/tweet-1137693973110284290/</guid><description>Common thinking: &quot;I need to add code to justify my job&quot;. Yet some devs remove more code than they add. 👍 &quot;In my 3 years at Facebook, I added 391,9...</description><pubDate>Sun, 09 Jun 2019 12:12:35 GMT</pubDate><category>Tweets</category></item><item><title>The 3 conditions that sociologists consider crucial to making close friends: 1</title><link>https://coryhouse.dev/2019/06/13/tweet-1139179146704277504/</link><guid isPermaLink="true">https://coryhouse.dev/2019/06/13/tweet-1139179146704277504/</guid><description>The 3 conditions that sociologists consider crucial to making close friends: 1. Proximity 2. Repeated, unplanned interactions 3. A setting that enc...</description><pubDate>Thu, 13 Jun 2019 14:34:08 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;ve seen microfrontends work well with these rules: 1</title><link>https://coryhouse.dev/2019/06/14/tweet-1139494356174417920/</link><guid isPermaLink="true">https://coryhouse.dev/2019/06/14/tweet-1139494356174417920/</guid><description>I&apos;ve seen microfrontends work well with these rules: 1. Consistent tech. All microfrontends use the same JS lib (e.g. React) 2. Each team shares *d...</description><pubDate>Fri, 14 Jun 2019 11:26:39 GMT</pubDate><category>Tweets</category></item><item><title>When a tweet ends with “don’t @ me”, I hear this: “Listen to me</title><link>https://coryhouse.dev/2019/06/17/tweet-1140649365259857921/</link><guid isPermaLink="true">https://coryhouse.dev/2019/06/17/tweet-1140649365259857921/</guid><description>When a tweet ends with “don’t @ me”, I hear this: “Listen to me. But I’m not willing to listen to you.” Am I misreading? Is there a more charitable...</description><pubDate>Mon, 17 Jun 2019 15:56:15 GMT</pubDate><category>Tweets</category></item><item><title>Speaker tip: &quot;Don&apos;t memorize your talk</title><link>https://coryhouse.dev/2019/06/19/tweet-1141299695626702848/</link><guid isPermaLink="true">https://coryhouse.dev/2019/06/19/tweet-1141299695626702848/</guid><description>Speaker tip: &quot;Don&apos;t memorize your talk. Memorize your stories.&quot; - Seth Godin This works. I&apos;ve presented 30 min to full day talks without slides or...</description><pubDate>Wed, 19 Jun 2019 11:00:26 GMT</pubDate><category>Tweets</category></item><item><title>When someone new joins the team, I try to avoid verbal training</title><link>https://coryhouse.dev/2019/06/21/tweet-1142153344179429378/</link><guid isPermaLink="true">https://coryhouse.dev/2019/06/21/tweet-1142153344179429378/</guid><description>When someone new joins the team, I try to avoid verbal training. I believe processes should be documented. So I link to the relevant doc. If one do...</description><pubDate>Fri, 21 Jun 2019 19:32:32 GMT</pubDate><category>Tweets</category></item><item><title>Two concerning trends I&apos;m seeing in modern React apps: 1</title><link>https://coryhouse.dev/2019/06/24/tweet-1143127525746515975/</link><guid isPermaLink="true">https://coryhouse.dev/2019/06/24/tweet-1143127525746515975/</guid><description>Two concerning trends I&apos;m seeing in modern React apps: 1. Creating custom hooks when the Hook is only useful for one component. 2. Declaring a cont...</description><pubDate>Mon, 24 Jun 2019 12:03:35 GMT</pubDate><category>Tweets</category></item><item><title>Why I love modern UI development: ✅ Work solely on my local machine ✅ No...</title><link>https://coryhouse.dev/2019/06/27/tweet-1144345431276761088/</link><guid isPermaLink="true">https://coryhouse.dev/2019/06/27/tweet-1144345431276761088/</guid><description>Why I love modern UI development: ✅ Work solely on my local machine ✅ No internet required ✅ Call a local mock API that I control ✅ Build each comp...</description><pubDate>Thu, 27 Jun 2019 20:43:06 GMT</pubDate><category>Tweets</category></item><item><title>Working in a sloppy codebase under a tight deadline: “I will have to...</title><link>https://coryhouse.dev/2019/06/28/tweet-1144647007627284481/</link><guid isPermaLink="true">https://coryhouse.dev/2019/06/28/tweet-1144647007627284481/</guid><description>Working in a sloppy codebase under a tight deadline: “I will have to remember ‘I am here today to cross the swamp, not to fight all the alligators....</description><pubDate>Fri, 28 Jun 2019 16:41:27 GMT</pubDate><category>Tweets</category></item><item><title>3 books that had a huge influence on my career: 1</title><link>https://coryhouse.dev/2019/06/29/tweet-1144975463019962368/</link><guid isPermaLink="true">https://coryhouse.dev/2019/06/29/tweet-1144975463019962368/</guid><description>3 books that had a huge influence on my career: 1. The 4-Hour Work Week (Maximize hourly impact) 2. Ego is the Enemy (Be humble, open, driven by co...</description><pubDate>Sat, 29 Jun 2019 14:26:37 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m a huge fan of @kentcdodds testing-library</title><link>https://coryhouse.dev/2019/07/02/tweet-1145905959988076544/</link><guid isPermaLink="true">https://coryhouse.dev/2019/07/02/tweet-1145905959988076544/</guid><description>I&apos;m a huge fan of @kentcdodds testing-library. Just wrote a solid test suite for a reusable React Alert in well under and hour. Love how the API en...</description><pubDate>Tue, 02 Jul 2019 04:04:05 GMT</pubDate><category>Tweets</category></item><item><title>Programmer tests should: Minimize programmer waiting</title><link>https://coryhouse.dev/2019/07/05/tweet-1146946168943009794/</link><guid isPermaLink="true">https://coryhouse.dev/2019/07/05/tweet-1146946168943009794/</guid><description>Programmer tests should: Minimize programmer waiting. Run reliably. Predict deployability. Respond to behavior changes. Not respond to structure ch...</description><pubDate>Fri, 05 Jul 2019 00:57:30 GMT</pubDate><category>Tweets</category></item><item><title>For most my career, I ran 2-3 monitors</title><link>https://coryhouse.dev/2019/07/07/tweet-1147891246851067904/</link><guid isPermaLink="true">https://coryhouse.dev/2019/07/07/tweet-1147891246851067904/</guid><description>For most my career, I ran 2-3 monitors. 4 years ago, I switched to a single monitor. The result? I&apos;ve found I actually prefer it. ¯\_(ツ)_/¯ I just...</description><pubDate>Sun, 07 Jul 2019 15:32:54 GMT</pubDate><category>Tweets</category></item><item><title>The fastest approach I&apos;ve found for wrapping existing markup in a new tag: 1</title><link>https://coryhouse.dev/2019/07/15/tweet-1150759765150224384/</link><guid isPermaLink="true">https://coryhouse.dev/2019/07/15/tweet-1150759765150224384/</guid><description>The fastest approach I&apos;ve found for wrapping existing markup in a new tag: 1. Type tag before the element I want to wrap 2. The editor auto creates...</description><pubDate>Mon, 15 Jul 2019 13:31:22 GMT</pubDate><category>Tweets</category></item><item><title>Great example of the benefits of async/await</title><link>https://coryhouse.dev/2019/07/20/tweet-1152649081577099264/</link><guid isPermaLink="true">https://coryhouse.dev/2019/07/20/tweet-1152649081577099264/</guid><description>Great example of the benefits of async/await. Love how it eliminated the nesting in the chained promises version. Much easier to read. 👍 #javascript</description><pubDate>Sat, 20 Jul 2019 18:38:50 GMT</pubDate><category>Tweets</category></item><item><title>TIL With async/await, you must await a promise for try/catch to catch the error</title><link>https://coryhouse.dev/2019/07/24/tweet-1153986761065996288/</link><guid isPermaLink="true">https://coryhouse.dev/2019/07/24/tweet-1153986761065996288/</guid><description>TIL With async/await, you must await a promise for try/catch to catch the error. If you return the promise without using await, the rejected promis...</description><pubDate>Wed, 24 Jul 2019 11:14:18 GMT</pubDate><category>Tweets</category></item><item><title>When most people say they want to be a millionaire, what they really mean is...</title><link>https://coryhouse.dev/2019/07/26/tweet-1154813143509602306/</link><guid isPermaLink="true">https://coryhouse.dev/2019/07/26/tweet-1154813143509602306/</guid><description>When most people say they want to be a millionaire, what they really mean is “I want to spend a million dollars,” which is literally the opposite o...</description><pubDate>Fri, 26 Jul 2019 17:58:03 GMT</pubDate><category>Tweets</category></item><item><title>Habit: At the gym, I walk up to the guys who I have a physique I’d like to...</title><link>https://coryhouse.dev/2019/07/29/tweet-1155964011264933891/</link><guid isPermaLink="true">https://coryhouse.dev/2019/07/29/tweet-1155964011264933891/</guid><description>Habit: At the gym, I walk up to the guys who I have a physique I’d like to emulate. I ask them about their routine and diet. I do the same with dev...</description><pubDate>Mon, 29 Jul 2019 22:11:11 GMT</pubDate><category>Tweets</category></item><item><title>Just learned about GitHub&apos;s handy suggestion feature</title><link>https://coryhouse.dev/2019/07/30/tweet-1156207768283635712/</link><guid isPermaLink="true">https://coryhouse.dev/2019/07/30/tweet-1156207768283635712/</guid><description>Just learned about GitHub&apos;s handy suggestion feature. This makes it easy to create suggestions in PRs that people can accept with a single click. S...</description><pubDate>Tue, 30 Jul 2019 14:19:47 GMT</pubDate><category>Tweets</category></item><item><title>Attitude checklist - When I&apos;m feeling lethargic or moody</title><link>https://coryhouse.dev/2019/07/31/tweet-1156391376201887744/</link><guid isPermaLink="true">https://coryhouse.dev/2019/07/31/tweet-1156391376201887744/</guid><description>Attitude checklist - When I&apos;m feeling lethargic or moody. I find it&apos;s typically one of these 5. ✅ Do I need to eat? ✅ Have I drank enough water? ✅...</description><pubDate>Wed, 31 Jul 2019 02:29:23 GMT</pubDate><category>Tweets</category></item><item><title>My preferred workflow when fixing a bug: 1</title><link>https://coryhouse.dev/2019/07/31/tweet-1156585057529864194/</link><guid isPermaLink="true">https://coryhouse.dev/2019/07/31/tweet-1156585057529864194/</guid><description>My preferred workflow when fixing a bug: 1. Can I write an isolated, automated test for this bug? If not, refactor so I can. 2. Write failing test...</description><pubDate>Wed, 31 Jul 2019 15:19:00 GMT</pubDate><category>Tweets</category></item><item><title>I’m frugal with liabilities: -car -clothes -cable TV Liabilities depreciate...</title><link>https://coryhouse.dev/2019/08/02/tweet-1157326988778098691/</link><guid isPermaLink="true">https://coryhouse.dev/2019/08/02/tweet-1157326988778098691/</guid><description>I’m frugal with liabilities: -car -clothes -cable TV Liabilities depreciate and distract. I happily spend money on assets: -books -experiences -gym...</description><pubDate>Fri, 02 Aug 2019 16:27:10 GMT</pubDate><category>Tweets</category></item><item><title>Starting these activities can radically improve quality of life, even if...</title><link>https://coryhouse.dev/2019/08/03/tweet-1157652563698827264/</link><guid isPermaLink="true">https://coryhouse.dev/2019/08/03/tweet-1157652563698827264/</guid><description>Starting these activities can radically improve quality of life, even if you’re not good at it at first: Reading Speaking Writing Saving Exercise E...</description><pubDate>Sat, 03 Aug 2019 14:00:53 GMT</pubDate><category>Tweets</category></item><item><title>In React, I rarely have perf issues</title><link>https://coryhouse.dev/2019/08/03/tweet-1157737034380992514/</link><guid isPermaLink="true">https://coryhouse.dev/2019/08/03/tweet-1157737034380992514/</guid><description>In React, I rarely have perf issues. But I recently used context to resolve a perf issue: I used context to avoid passing props to a component that...</description><pubDate>Sat, 03 Aug 2019 19:36:33 GMT</pubDate><category>Tweets</category></item><item><title>The combination of @Cypress_io and Cypress @TestingLib has made testing such...</title><link>https://coryhouse.dev/2019/08/07/tweet-1159120692798992384/</link><guid isPermaLink="true">https://coryhouse.dev/2019/08/07/tweet-1159120692798992384/</guid><description>The combination of @Cypress_io and Cypress @TestingLib has made testing such a wonderful experience. 😍 Look at this test. It reads so clearly. No...</description><pubDate>Wed, 07 Aug 2019 15:14:43 GMT</pubDate><category>Tweets</category></item><item><title>Loving the new React devtools</title><link>https://coryhouse.dev/2019/08/16/tweet-1162433109763268608/</link><guid isPermaLink="true">https://coryhouse.dev/2019/08/16/tweet-1162433109763268608/</guid><description>Loving the new React devtools. The &quot;rendered by&quot; section is going to be handy for navigating big apps. And I can change live data when using Hooks....</description><pubDate>Fri, 16 Aug 2019 18:37:04 GMT</pubDate><category>Tweets</category></item><item><title>One of the most valuable concepts I learned in school: Opportunity cost -...</title><link>https://coryhouse.dev/2019/08/19/tweet-1163420791557500929/</link><guid isPermaLink="true">https://coryhouse.dev/2019/08/19/tweet-1163420791557500929/</guid><description>One of the most valuable concepts I learned in school: Opportunity cost - The loss of potential gain from other options when an option is chosen. T...</description><pubDate>Mon, 19 Aug 2019 12:01:46 GMT</pubDate><category>Tweets</category></item><item><title>In #JavaScript, I find it&apos;s typically preferable to create a file with plain...</title><link>https://coryhouse.dev/2019/08/20/tweet-1163839282156638213/</link><guid isPermaLink="true">https://coryhouse.dev/2019/08/20/tweet-1163839282156638213/</guid><description>In #JavaScript, I find it&apos;s typically preferable to create a file with plain functions than to declare a class. Here&apos;s a diff that outlines the adv...</description><pubDate>Tue, 20 Aug 2019 15:44:42 GMT</pubDate><category>Tweets</category></item><item><title>Components have many potential states (error, no data, etc)</title><link>https://coryhouse.dev/2019/08/22/tweet-1164593135114227712/</link><guid isPermaLink="true">https://coryhouse.dev/2019/08/22/tweet-1164593135114227712/</guid><description>Components have many potential states (error, no data, etc). The easier it is to see every potential state, the more likely we are to account for e...</description><pubDate>Thu, 22 Aug 2019 17:40:15 GMT</pubDate><category>Tweets</category></item><item><title>Writing &quot;Logic-less&quot; JSX can improve readability</title><link>https://coryhouse.dev/2019/08/23/tweet-1164881030395904000/</link><guid isPermaLink="true">https://coryhouse.dev/2019/08/23/tweet-1164881030395904000/</guid><description>Writing &quot;Logic-less&quot; JSX can improve readability. How do you write &quot;logic-less&quot; JSX? Simple: Send JSX the exact data structures it needs. The diffe...</description><pubDate>Fri, 23 Aug 2019 12:44:14 GMT</pubDate><category>Tweets</category></item><item><title>Software mistakes that are expensive to fix: - Hiring the wrong people -...</title><link>https://coryhouse.dev/2019/08/23/tweet-1164992544788406275/</link><guid isPermaLink="true">https://coryhouse.dev/2019/08/23/tweet-1164992544788406275/</guid><description>Software mistakes that are expensive to fix: - Hiring the wrong people - Choosing the wrong tech - Building the wrong thing - Not writing any autom...</description><pubDate>Fri, 23 Aug 2019 20:07:21 GMT</pubDate><category>Tweets</category></item><item><title>Just added a feature to a huge 10+ year old app written in C#, ASP NET...</title><link>https://coryhouse.dev/2019/08/27/tweet-1166428485172310017/</link><guid isPermaLink="true">https://coryhouse.dev/2019/08/27/tweet-1166428485172310017/</guid><description>Just added a feature to a huge 10+ year old app written in C#, ASP NET Webforms, and jQuery. For each change, I had to wait 7 min for the build to...</description><pubDate>Tue, 27 Aug 2019 19:13:16 GMT</pubDate><category>Tweets</category></item><item><title>Component-oriented development is increasingly gratifying over time: I start...</title><link>https://coryhouse.dev/2019/08/29/tweet-1167210473458212864/</link><guid isPermaLink="true">https://coryhouse.dev/2019/08/29/tweet-1167210473458212864/</guid><description>Component-oriented development is increasingly gratifying over time: I start off building basic components (inputs, buttons, etc). As I move forwar...</description><pubDate>Thu, 29 Aug 2019 23:00:37 GMT</pubDate><category>Tweets</category></item><item><title>Yet another reason to ❤️ async/await: If you mark a JavaScript function as...</title><link>https://coryhouse.dev/2019/08/30/tweet-1167422666145484800/</link><guid isPermaLink="true">https://coryhouse.dev/2019/08/30/tweet-1167422666145484800/</guid><description>Yet another reason to ❤️ async/await: If you mark a JavaScript function as async, anything it returns is automatically wrapped in a promise. This m...</description><pubDate>Fri, 30 Aug 2019 13:03:47 GMT</pubDate><category>Tweets</category></item><item><title>Looking back, the moment my life turned around for the better: I finally...</title><link>https://coryhouse.dev/2019/08/30/tweet-1167558828361228288/</link><guid isPermaLink="true">https://coryhouse.dev/2019/08/30/tweet-1167558828361228288/</guid><description>Looking back, the moment my life turned around for the better: I finally stopped doing the things I assumed others expected me to do...And I starte...</description><pubDate>Fri, 30 Aug 2019 22:04:51 GMT</pubDate><category>Tweets</category></item><item><title>&quot;Everyone has the same 24 hours&quot; is a lie</title><link>https://coryhouse.dev/2019/09/02/tweet-1168542658731679744/</link><guid isPermaLink="true">https://coryhouse.dev/2019/09/02/tweet-1168542658731679744/</guid><description>&quot;Everyone has the same 24 hours&quot; is a lie. Some people use money to buy time: - Fly or Uber instead of driving - Autopay all bills - Buy a fast com...</description><pubDate>Mon, 02 Sep 2019 15:14:14 GMT</pubDate><category>Tweets</category></item><item><title>Big news</title><link>https://coryhouse.dev/2019/09/06/tweet-1169987448409120768/</link><guid isPermaLink="true">https://coryhouse.dev/2019/09/06/tweet-1169987448409120768/</guid><description>Big news! Today I&apos;m fulfilling a lifelong dream: I&apos;ve quit my job to focus on consulting and training! 🎉 1. I&apos;m helping teams transition to React:...</description><pubDate>Fri, 06 Sep 2019 14:55:19 GMT</pubDate><category>Tweets</category></item><item><title>Now that I&apos;m independent, I feel liberated</title><link>https://coryhouse.dev/2019/09/12/tweet-1172112269158887424/</link><guid isPermaLink="true">https://coryhouse.dev/2019/09/12/tweet-1172112269158887424/</guid><description>Now that I&apos;m independent, I feel liberated. Why? Because I finally conquered my fear. Fear of failure. Fear of freedom. Fear of being my own boss....</description><pubDate>Thu, 12 Sep 2019 11:38:36 GMT</pubDate><category>Tweets</category></item><item><title>My approach for learning new tech: 1</title><link>https://coryhouse.dev/2019/09/14/tweet-1172910951009521666/</link><guid isPermaLink="true">https://coryhouse.dev/2019/09/14/tweet-1172910951009521666/</guid><description>My approach for learning new tech: 1. Create a repo to centralize my learning &amp; resources 2. Read/watch a comprehensive resource to understand...</description><pubDate>Sat, 14 Sep 2019 16:32:17 GMT</pubDate><category>Tweets</category></item><item><title>For me, happiness requires balancing: 1</title><link>https://coryhouse.dev/2019/09/14/tweet-1172983610623873025/</link><guid isPermaLink="true">https://coryhouse.dev/2019/09/14/tweet-1172983610623873025/</guid><description>For me, happiness requires balancing: 1. Doing things I want to do because it makes me happy 2. Doing things I don&apos;t want to do, out of love for ot...</description><pubDate>Sat, 14 Sep 2019 21:21:00 GMT</pubDate><category>Tweets</category></item><item><title>TIL the CSS attribute selector is surprisingly powerful</title><link>https://coryhouse.dev/2019/09/17/tweet-1174005309871919104/</link><guid isPermaLink="true">https://coryhouse.dev/2019/09/17/tweet-1174005309871919104/</guid><description>TIL the CSS attribute selector is surprisingly powerful. You can style elements based on their attributes, and even target attributes that start wi...</description><pubDate>Tue, 17 Sep 2019 17:00:52 GMT</pubDate><category>Tweets</category></item><item><title>Common thread I&apos;ve found in the bios of extremely driven men: Their...</title><link>https://coryhouse.dev/2019/09/18/tweet-1174456482504593413/</link><guid isPermaLink="true">https://coryhouse.dev/2019/09/18/tweet-1174456482504593413/</guid><description>Common thread I&apos;ve found in the bios of extremely driven men: Their marriages fall apart. Elon Musk Jeff Bezos Tiger Woods Arnold Schwarzenegger As...</description><pubDate>Wed, 18 Sep 2019 22:53:40 GMT</pubDate><category>Tweets</category></item><item><title>The internet became more enjoyable when I realized: I don&apos;t have to respond</title><link>https://coryhouse.dev/2019/09/19/tweet-1174485533260767233/</link><guid isPermaLink="true">https://coryhouse.dev/2019/09/19/tweet-1174485533260767233/</guid><description>The internet became more enjoyable when I realized: I don&apos;t have to respond. Bad take? I can ignore it. Incorrect info? It&apos;s not my job to edit the...</description><pubDate>Thu, 19 Sep 2019 00:49:06 GMT</pubDate><category>Tweets</category></item><item><title>Ever annoyed by the long list of local Git branches that are no longer relevant</title><link>https://coryhouse.dev/2019/09/21/tweet-1175242485913784320/</link><guid isPermaLink="true">https://coryhouse.dev/2019/09/21/tweet-1175242485913784320/</guid><description>Ever annoyed by the long list of local Git branches that are no longer relevant? Solution: git remote prune origin That removes all local branches...</description><pubDate>Sat, 21 Sep 2019 02:56:58 GMT</pubDate><category>Tweets</category></item><item><title>Merging pull requests too quickly risks hurting quality</title><link>https://coryhouse.dev/2019/09/23/tweet-1176282308741148672/</link><guid isPermaLink="true">https://coryhouse.dev/2019/09/23/tweet-1176282308741148672/</guid><description>Merging pull requests too quickly risks hurting quality. Merging pull requests too slowly frustrates the developer, interrupts flow, slows integrat...</description><pubDate>Mon, 23 Sep 2019 23:48:51 GMT</pubDate><category>Tweets</category></item><item><title>TIL you can declare a local file as an npm dependency</title><link>https://coryhouse.dev/2019/09/25/tweet-1176888431030525952/</link><guid isPermaLink="true">https://coryhouse.dev/2019/09/25/tweet-1176888431030525952/</guid><description>TIL you can declare a local file as an npm dependency. Useful for sharing code in monorepos! You don&apos;t have to actually publish the package to npm....</description><pubDate>Wed, 25 Sep 2019 15:57:22 GMT</pubDate><category>Tweets</category></item><item><title>Developer productivity is directly related to feedback speed</title><link>https://coryhouse.dev/2019/09/27/tweet-1177537457241370624/</link><guid isPermaLink="true">https://coryhouse.dev/2019/09/27/tweet-1177537457241370624/</guid><description>Developer productivity is directly related to feedback speed. Techniques to speed feedback loops: Mock APIs (fake APIs can be as fast as desired) V...</description><pubDate>Fri, 27 Sep 2019 10:56:22 GMT</pubDate><category>Tweets</category></item><item><title>TIL: If you accidentally use a promise.then (instead of await) in an async...</title><link>https://coryhouse.dev/2019/09/29/tweet-1178283283433627651/</link><guid isPermaLink="true">https://coryhouse.dev/2019/09/29/tweet-1178283283433627651/</guid><description>TIL: If you accidentally use a promise.then (instead of await) in an async function, the catch block won&apos;t get called on error! The code on the lef...</description><pubDate>Sun, 29 Sep 2019 12:20:00 GMT</pubDate><category>Tweets</category></item><item><title>Two reasons I ❤️ modern UI dev: 1</title><link>https://coryhouse.dev/2019/10/06/tweet-1180841911562702850/</link><guid isPermaLink="true">https://coryhouse.dev/2019/10/06/tweet-1180841911562702850/</guid><description>Two reasons I ❤️ modern UI dev: 1. Rapid visual feedback. Hit save, and see the result. Instantly.🔥 2. High autonomy. I don’t worry about my envir...</description><pubDate>Sun, 06 Oct 2019 13:47:05 GMT</pubDate><category>Tweets</category></item><item><title>Lousy variable name: data It says nothing about what&apos;s inside</title><link>https://coryhouse.dev/2019/10/10/tweet-1182094125438525440/</link><guid isPermaLink="true">https://coryhouse.dev/2019/10/10/tweet-1182094125438525440/</guid><description>Lousy variable name: data It says nothing about what&apos;s inside. It&apos;s surprising how often I see this in code. It&apos;s especially problematic in dynamic...</description><pubDate>Thu, 10 Oct 2019 00:42:56 GMT</pubDate><category>Tweets</category></item><item><title>Tip: Annoyed by how libraries like Axios place the response under .data</title><link>https://coryhouse.dev/2019/10/10/tweet-1182360990979166208/</link><guid isPermaLink="true">https://coryhouse.dev/2019/10/10/tweet-1182360990979166208/</guid><description>Tip: Annoyed by how libraries like Axios place the response under .data? Destructuring with renaming to the rescue: const { data: user } = await ax...</description><pubDate>Thu, 10 Oct 2019 18:23:22 GMT</pubDate><category>Tweets</category></item><item><title>3 keys to easily reusable React components: ✅Declare detailed propTypes (or...</title><link>https://coryhouse.dev/2019/10/16/tweet-1184431509421342720/</link><guid isPermaLink="true">https://coryhouse.dev/2019/10/16/tweet-1184431509421342720/</guid><description>3 keys to easily reusable React components: ✅Declare detailed propTypes (or use TypeScript) ✅Add comments above each propType to document and enhan...</description><pubDate>Wed, 16 Oct 2019 11:30:52 GMT</pubDate><category>Tweets</category></item><item><title>I’ve been working heavily in React for 5 years now</title><link>https://coryhouse.dev/2019/10/18/tweet-1185222395210153984/</link><guid isPermaLink="true">https://coryhouse.dev/2019/10/18/tweet-1185222395210153984/</guid><description>I’ve been working heavily in React for 5 years now. Here’s a 50+ lessons I’ve learned along the way: http://bit.ly/5yrs-react #reactjs From “Lesson...</description><pubDate>Fri, 18 Oct 2019 15:53:34 GMT</pubDate><category>Tweets</category></item><item><title>Mac tip: Use Safari when on battery</title><link>https://coryhouse.dev/2019/10/20/tweet-1185871297294880768/</link><guid isPermaLink="true">https://coryhouse.dev/2019/10/20/tweet-1185871297294880768/</guid><description>Mac tip: Use Safari when on battery. Why? It&apos;s *much* more efficient. If I run Chrome on my 2019 32GB i9 MacBook Pro, I only get around 3 hours bat...</description><pubDate>Sun, 20 Oct 2019 10:52:04 GMT</pubDate><category>Tweets</category></item><item><title>One of the most satisfying experiences when writing automated tests: 1</title><link>https://coryhouse.dev/2019/10/24/tweet-1187158431565778946/</link><guid isPermaLink="true">https://coryhouse.dev/2019/10/24/tweet-1187158431565778946/</guid><description>One of the most satisfying experiences when writing automated tests: 1. I write a test that I expect to pass 2. It fails, so I assume the test is w...</description><pubDate>Thu, 24 Oct 2019 00:06:41 GMT</pubDate><category>Tweets</category></item><item><title>Want more screen real estate and less noise in @code</title><link>https://coryhouse.dev/2019/10/24/tweet-1187364884532649984/</link><guid isPermaLink="true">https://coryhouse.dev/2019/10/24/tweet-1187364884532649984/</guid><description>Want more screen real estate and less noise in @code? Try Zen Mode. It only shows code. View -&gt; Appearance -&gt; Zen mode (Or CMD+K Z). I tweake...</description><pubDate>Thu, 24 Oct 2019 13:47:03 GMT</pubDate><category>Tweets</category></item><item><title>An option to consider: Stuck</title><link>https://coryhouse.dev/2019/10/26/tweet-1188179825770532864/</link><guid isPermaLink="true">https://coryhouse.dev/2019/10/26/tweet-1188179825770532864/</guid><description>An option to consider: Stuck? Leave early and finish later. In my old job, I often felt pressure to keep trying until the end of the day, even when...</description><pubDate>Sat, 26 Oct 2019 19:45:20 GMT</pubDate><category>Tweets</category></item><item><title>If you navigate away quickly before a setState call completes, React warns...</title><link>https://coryhouse.dev/2019/10/27/tweet-1188543966398091264/</link><guid isPermaLink="true">https://coryhouse.dev/2019/10/27/tweet-1188543966398091264/</guid><description>If you navigate away quickly before a setState call completes, React warns in the console. A big Cypress testing benefit: It navigates so quickly t...</description><pubDate>Sun, 27 Oct 2019 19:52:18 GMT</pubDate><category>Tweets</category></item><item><title>Tip: JavaScript&apos;s spread syntax is also handy for creating a copy of an...</title><link>https://coryhouse.dev/2019/10/30/tweet-1189374780526465024/</link><guid isPermaLink="true">https://coryhouse.dev/2019/10/30/tweet-1189374780526465024/</guid><description>Tip: JavaScript&apos;s spread syntax is also handy for creating a copy of an object with a property omitted: const { address, ...userWithoutAddress } =...</description><pubDate>Wed, 30 Oct 2019 02:53:39 GMT</pubDate><category>Tweets</category></item><item><title>Emerging job title: UI Architect Concerns: State management Reusable...</title><link>https://coryhouse.dev/2019/10/31/tweet-1189719108562096130/</link><guid isPermaLink="true">https://coryhouse.dev/2019/10/31/tweet-1189719108562096130/</guid><description>Emerging job title: UI Architect Concerns: State management Reusable components, scripts, styles Dev environment (transpiling/bundling/linting...)...</description><pubDate>Thu, 31 Oct 2019 01:41:54 GMT</pubDate><category>Tweets</category></item><item><title>You can conditionally add JavaScript array elements in a single expression</title><link>https://coryhouse.dev/2019/11/02/tweet-1190597282112196608/</link><guid isPermaLink="true">https://coryhouse.dev/2019/11/02/tweet-1190597282112196608/</guid><description>You can conditionally add JavaScript array elements in a single expression. How? Use spread: const arr = [ ...(includeA ? [&apos;a&apos;] : []), &apos;b&apos;, ]; This...</description><pubDate>Sat, 02 Nov 2019 11:51:26 GMT</pubDate><category>Tweets</category></item><item><title>A risky dev team mindset: &quot;We&apos;re too busy to do code reviews.&quot; Without...</title><link>https://coryhouse.dev/2019/11/06/tweet-1191905599241490447/</link><guid isPermaLink="true">https://coryhouse.dev/2019/11/06/tweet-1191905599241490447/</guid><description>A risky dev team mindset: &quot;We&apos;re too busy to do code reviews.&quot; Without reviews, consistently, velocity, and quality fall. Skipping code reviews mak...</description><pubDate>Wed, 06 Nov 2019 02:30:14 GMT</pubDate><category>Tweets</category></item><item><title>Felt so lucky today</title><link>https://coryhouse.dev/2019/11/07/tweet-1192277708539138048/</link><guid isPermaLink="true">https://coryhouse.dev/2019/11/07/tweet-1192277708539138048/</guid><description>Felt so lucky today. Loving independence. Training another big team in React this week. Many training engagements coming up. Enjoying doing dev for...</description><pubDate>Thu, 07 Nov 2019 03:08:51 GMT</pubDate><category>Tweets</category></item><item><title>I feared public speaking</title><link>https://coryhouse.dev/2019/11/08/tweet-1192824973850742784/</link><guid isPermaLink="true">https://coryhouse.dev/2019/11/08/tweet-1192824973850742784/</guid><description>I feared public speaking. I feared independence. The decision to chase my fears instead of hide was one of the best decisions of my life. The world...</description><pubDate>Fri, 08 Nov 2019 15:23:30 GMT</pubDate><category>Tweets</category></item><item><title>Choosing the “hard” way requires discipline</title><link>https://coryhouse.dev/2019/11/11/tweet-1193722613706756096/</link><guid isPermaLink="true">https://coryhouse.dev/2019/11/11/tweet-1193722613706756096/</guid><description>Choosing the “hard” way requires discipline. Walk or bike instead of drive Buy in cash instead of getting a loan Create instead of consume Choosing...</description><pubDate>Mon, 11 Nov 2019 02:50:24 GMT</pubDate><category>Tweets</category></item><item><title>Currently updating imports in a large project from the &quot;named import&quot; style:...</title><link>https://coryhouse.dev/2019/11/16/tweet-1195753315067297792/</link><guid isPermaLink="true">https://coryhouse.dev/2019/11/16/tweet-1195753315067297792/</guid><description>Currently updating imports in a large project from the &quot;named import&quot; style: import { SelectInput } from &quot;reusable&quot;; to a direct import: import Sel...</description><pubDate>Sat, 16 Nov 2019 17:19:40 GMT</pubDate><category>Tweets</category></item><item><title>Welp, after literally 10 seconds using the new MacBook Pro 16&quot; I was sold</title><link>https://coryhouse.dev/2019/11/18/tweet-1196497688046514181/</link><guid isPermaLink="true">https://coryhouse.dev/2019/11/18/tweet-1196497688046514181/</guid><description>Welp, after literally 10 seconds using the new MacBook Pro 16&quot; I was sold. The 2015 keyboard is back! 🎉 Shut up and take my money! The new larger,...</description><pubDate>Mon, 18 Nov 2019 18:37:33 GMT</pubDate><category>Tweets</category></item><item><title>Have an issue, but can&apos;t tell what line is causing the bug</title><link>https://coryhouse.dev/2019/11/20/tweet-1197166758924341250/</link><guid isPermaLink="true">https://coryhouse.dev/2019/11/20/tweet-1197166758924341250/</guid><description>Have an issue, but can&apos;t tell what line is causing the bug? Bisect. Here&apos;s how: 1. Comment out half the code. Still there? 2. Continue commenting o...</description><pubDate>Wed, 20 Nov 2019 14:56:12 GMT</pubDate><category>Tweets</category></item><item><title>I believe the world would be better if TVs weren&apos;t in public spaces like...</title><link>https://coryhouse.dev/2019/11/22/tweet-1197900248397553664/</link><guid isPermaLink="true">https://coryhouse.dev/2019/11/22/tweet-1197900248397553664/</guid><description>I believe the world would be better if TVs weren&apos;t in public spaces like restaurants, stores, airports, and gyms. TVs create needless noise and dis...</description><pubDate>Fri, 22 Nov 2019 15:30:49 GMT</pubDate><category>Tweets</category></item><item><title>In poorly built software, velocity slows over time</title><link>https://coryhouse.dev/2019/11/23/tweet-1198374849443442689/</link><guid isPermaLink="true">https://coryhouse.dev/2019/11/23/tweet-1198374849443442689/</guid><description>In poorly built software, velocity slows over time. Poorly designed monolithic functions, components, and APIs fight reuse. In well-built software,...</description><pubDate>Sat, 23 Nov 2019 22:56:43 GMT</pubDate><category>Tweets</category></item><item><title>TIL you can prefetch lazy loaded React components.🔥 create-react-app honors...</title><link>https://coryhouse.dev/2019/11/29/tweet-1200554167644966912/</link><guid isPermaLink="true">https://coryhouse.dev/2019/11/29/tweet-1200554167644966912/</guid><description>TIL you can prefetch lazy loaded React components.🔥 create-react-app honors Webpack directives: https://webpack.js.org/guides/code-splitting/#pref...</description><pubDate>Fri, 29 Nov 2019 23:16:33 GMT</pubDate><category>Tweets</category></item><item><title>Using a timebox for a tricky issue is a great way to avoid wasting hours...</title><link>https://coryhouse.dev/2019/12/08/tweet-1203816609862815746/</link><guid isPermaLink="true">https://coryhouse.dev/2019/12/08/tweet-1203816609862815746/</guid><description>Using a timebox for a tricky issue is a great way to avoid wasting hours churning. I was stumped on Friday. I gave myself an hour, but remained stu...</description><pubDate>Sun, 08 Dec 2019 23:20:20 GMT</pubDate><category>Tweets</category></item><item><title>Common saying: &quot;Buy experiences, not stuff&quot;</title><link>https://coryhouse.dev/2019/12/11/tweet-1204729168770064384/</link><guid isPermaLink="true">https://coryhouse.dev/2019/12/11/tweet-1204729168770064384/</guid><description>Common saying: &quot;Buy experiences, not stuff&quot;. But stuff is an experience too. Nice bed = experience restfulness Nice car = experience luxury, speed,...</description><pubDate>Wed, 11 Dec 2019 11:46:31 GMT</pubDate><category>Tweets</category></item><item><title>What a 2019</title><link>https://coryhouse.dev/2019/12/11/tweet-1204783970786959363/</link><guid isPermaLink="true">https://coryhouse.dev/2019/12/11/tweet-1204783970786959363/</guid><description>What a 2019! In September, I quit my job to pursue my dream of being independent. I&apos;m focused on React training, consulting, and development: http:...</description><pubDate>Wed, 11 Dec 2019 15:24:17 GMT</pubDate><category>Tweets</category></item><item><title>This is a superb, visually stunning blog post on React Hooks</title><link>https://coryhouse.dev/2019/12/12/tweet-1204952515705556992/</link><guid isPermaLink="true">https://coryhouse.dev/2019/12/12/tweet-1204952515705556992/</guid><description>This is a superb, visually stunning blog post on React Hooks. Even if you understand React Hooks, this is worth reading. https://buff.ly/2lhV8eb Gr...</description><pubDate>Thu, 12 Dec 2019 02:34:01 GMT</pubDate><category>Tweets</category></item><item><title>My entire career, I&apos;ve only used automated integration testing when the app...</title><link>https://coryhouse.dev/2019/12/13/tweet-1205481912866881541/</link><guid isPermaLink="true">https://coryhouse.dev/2019/12/13/tweet-1205481912866881541/</guid><description>My entire career, I&apos;ve only used automated integration testing when the app was too big to manually test. But Cypress has changed that. It&apos;s so eas...</description><pubDate>Fri, 13 Dec 2019 13:37:39 GMT</pubDate><category>Tweets</category></item><item><title>Upward spiral: Sleep well -&gt; exercise -&gt; eat well -&gt; focus at work...</title><link>https://coryhouse.dev/2019/12/14/tweet-1205860527190237185/</link><guid isPermaLink="true">https://coryhouse.dev/2019/12/14/tweet-1205860527190237185/</guid><description>Upward spiral: Sleep well -&gt; exercise -&gt; eat well -&gt; focus at work -&gt; optimistic attitude When people say “How you do anything is how y...</description><pubDate>Sat, 14 Dec 2019 14:42:08 GMT</pubDate><category>Tweets</category></item><item><title>This advice improved my writing: Prefer active voice</title><link>https://coryhouse.dev/2019/12/17/tweet-1206914963333365760/</link><guid isPermaLink="true">https://coryhouse.dev/2019/12/17/tweet-1206914963333365760/</guid><description>This advice improved my writing: Prefer active voice. Active voice is typically easier to understand and less wordy. Example 1: Avoid: &quot;Count the n...</description><pubDate>Tue, 17 Dec 2019 12:32:05 GMT</pubDate><category>Tweets</category></item><item><title>“We need mandatory daily stand up meetings”</title><link>https://coryhouse.dev/2019/12/18/tweet-1207321537709297665/</link><guid isPermaLink="true">https://coryhouse.dev/2019/12/18/tweet-1207321537709297665/</guid><description>“We need mandatory daily stand up meetings”. No we don’t. We just need to talk regularly. #agiledogma</description><pubDate>Wed, 18 Dec 2019 15:27:40 GMT</pubDate><category>Tweets</category></item><item><title>Two forms of working for &quot;free&quot;: 1</title><link>https://coryhouse.dev/2019/12/26/tweet-1210257113580224512/</link><guid isPermaLink="true">https://coryhouse.dev/2019/12/26/tweet-1210257113580224512/</guid><description>Two forms of working for &quot;free&quot;: 1. Working over 40 hours/week in a salaried job 2. Working on the side to grow your skills/business I did #1 early...</description><pubDate>Thu, 26 Dec 2019 17:52:36 GMT</pubDate><category>Tweets</category></item><item><title>&quot;We need a mandatory weekly retrospective to be agile.&quot; No we don&apos;t</title><link>https://coryhouse.dev/2019/12/29/tweet-1211311847225352192/</link><guid isPermaLink="true">https://coryhouse.dev/2019/12/29/tweet-1211311847225352192/</guid><description>&quot;We need a mandatory weekly retrospective to be agile.&quot; No we don&apos;t. We just need to regularly discuss what&apos;s working, and what isn&apos;t. We don&apos;t nee...</description><pubDate>Sun, 29 Dec 2019 15:43:44 GMT</pubDate><category>Tweets</category></item><item><title>React integration testing tip: On your CI server, run your automated...</title><link>https://coryhouse.dev/2020/01/02/tweet-1212731918321627137/</link><guid isPermaLink="true">https://coryhouse.dev/2020/01/02/tweet-1212731918321627137/</guid><description>React integration testing tip: On your CI server, run your automated integration tests against your React *production* build. Why? React is MUCH fa...</description><pubDate>Thu, 02 Jan 2020 13:46:35 GMT</pubDate><category>Tweets</category></item><item><title>Just radically reduced our CI build time</title><link>https://coryhouse.dev/2020/01/03/tweet-1213093680501993472/</link><guid isPermaLink="true">https://coryhouse.dev/2020/01/03/tweet-1213093680501993472/</guid><description>Just radically reduced our CI build time! Before: 12.5 minutes ☹️ After: 3 minutes! 🔥 Tips: - Run integration tests against the prod React build (...</description><pubDate>Fri, 03 Jan 2020 13:44:06 GMT</pubDate><category>Tweets</category></item><item><title>🎉 It&apos;s live</title><link>https://coryhouse.dev/2020/01/03/tweet-1213230181701345281/</link><guid isPermaLink="true">https://coryhouse.dev/2020/01/03/tweet-1213230181701345281/</guid><description>🎉 It&apos;s live! 🎉 &quot;Clean Coding Principles in C#&quot; just published on @pluralsight. This course is full of concrete examples. I show &quot;dirty&quot; C# snippe...</description><pubDate>Fri, 03 Jan 2020 22:46:30 GMT</pubDate><category>Tweets</category></item><item><title>An underrated way to learn and stay current: Read the docs</title><link>https://coryhouse.dev/2020/01/04/tweet-1213476522998272008/</link><guid isPermaLink="true">https://coryhouse.dev/2020/01/04/tweet-1213476522998272008/</guid><description>An underrated way to learn and stay current: Read the docs. I&apos;ve worked in React since it was open sourced and often re-read the docs. - I find new...</description><pubDate>Sat, 04 Jan 2020 15:05:23 GMT</pubDate><category>Tweets</category></item><item><title>Solid writeup for anyone managing a JavaScript monorepo</title><link>https://coryhouse.dev/2020/01/05/tweet-1213636017024045057/</link><guid isPermaLink="true">https://coryhouse.dev/2020/01/05/tweet-1213636017024045057/</guid><description>Solid writeup for anyone managing a JavaScript monorepo. Covers npm, Yarn, Yarn Workspaces, and Lerna, and their potential interactions. Summary: -...</description><pubDate>Sun, 05 Jan 2020 01:39:09 GMT</pubDate><category>Tweets</category></item><item><title>Default mode: The activity you naturally reach for during free time</title><link>https://coryhouse.dev/2020/01/05/tweet-1213864022950461443/</link><guid isPermaLink="true">https://coryhouse.dev/2020/01/05/tweet-1213864022950461443/</guid><description>Default mode: The activity you naturally reach for during free time. Bad default = bad results: Eating -&gt; Overweight Shopping -&gt; Bankrupt Ent...</description><pubDate>Sun, 05 Jan 2020 16:45:10 GMT</pubDate><category>Tweets</category></item><item><title>Simple rule to keep React apps simple: Declare state as low as possible</title><link>https://coryhouse.dev/2020/01/07/tweet-1214521737007771649/</link><guid isPermaLink="true">https://coryhouse.dev/2020/01/07/tweet-1214521737007771649/</guid><description>Simple rule to keep React apps simple: Declare state as low as possible. If only one component needs the data, declare the state there. Keeping sta...</description><pubDate>Tue, 07 Jan 2020 12:18:41 GMT</pubDate><category>Tweets</category></item><item><title>Why work remote</title><link>https://coryhouse.dev/2020/01/15/tweet-1217471836507734018/</link><guid isPermaLink="true">https://coryhouse.dev/2020/01/15/tweet-1217471836507734018/</guid><description>Why work remote? Focus Choose a schedule that works best for you Weave work around life Work where you’re most comfortable and inspired Take meetin...</description><pubDate>Wed, 15 Jan 2020 15:41:20 GMT</pubDate><category>Tweets</category></item><item><title>App without tests: 1</title><link>https://coryhouse.dev/2020/01/17/tweet-1218015752797720576/</link><guid isPermaLink="true">https://coryhouse.dev/2020/01/17/tweet-1218015752797720576/</guid><description>App without tests: 1. Developer thinks he’s done 2. Developer merges code 3. Days later, we find regressions. 👎 App with tests: 1. Developer think...</description><pubDate>Fri, 17 Jan 2020 03:42:39 GMT</pubDate><category>Tweets</category></item><item><title>React features I avoid at first, then only refactor to when necessary:...</title><link>https://coryhouse.dev/2020/01/17/tweet-1218198658333790209/</link><guid isPermaLink="true">https://coryhouse.dev/2020/01/17/tweet-1218198658333790209/</guid><description>React features I avoid at first, then only refactor to when necessary: useReducer: Use when useState is insufficient (complex state) useMemo/memo:...</description><pubDate>Fri, 17 Jan 2020 15:49:27 GMT</pubDate><category>Tweets</category></item><item><title>React tip: With boolean props, prefer a false default</title><link>https://coryhouse.dev/2020/01/17/tweet-1218238430104227841/</link><guid isPermaLink="true">https://coryhouse.dev/2020/01/17/tweet-1218238430104227841/</guid><description>React tip: With boolean props, prefer a false default. Example of hiding a legend, defaulted to visible: &lt;Fieldset showLegend={false} /&gt; 👎 &amp;...</description><pubDate>Fri, 17 Jan 2020 18:27:30 GMT</pubDate><category>Tweets</category></item><item><title>You don’t need a library to create a UI that uses a state machine</title><link>https://coryhouse.dev/2020/01/18/tweet-1218550286240878594/</link><guid isPermaLink="true">https://coryhouse.dev/2020/01/18/tweet-1218550286240878594/</guid><description>You don’t need a library to create a UI that uses a state machine. Recipe: 1. Create a list of potential statuses (loading, saving, submitted, erro...</description><pubDate>Sat, 18 Jan 2020 15:06:42 GMT</pubDate><category>Tweets</category></item><item><title>I avoid nested destructuring, especially when declaring defaults</title><link>https://coryhouse.dev/2020/01/22/tweet-1219839683200454662/</link><guid isPermaLink="true">https://coryhouse.dev/2020/01/22/tweet-1219839683200454662/</guid><description>I avoid nested destructuring, especially when declaring defaults. It requires the reader to carefully group curly braces. Can you confidently and q...</description><pubDate>Wed, 22 Jan 2020 04:30:18 GMT</pubDate><category>Tweets</category></item><item><title>Common testing mistake: Describing behavior without context</title><link>https://coryhouse.dev/2020/01/22/tweet-1219963656089341952/</link><guid isPermaLink="true">https://coryhouse.dev/2020/01/22/tweet-1219963656089341952/</guid><description>Common testing mistake: Describing behavior without context. Poor name: 👎 should show &apos;Edit&apos; button Better name: 👍 should show &apos;Edit&apos; button when...</description><pubDate>Wed, 22 Jan 2020 12:42:56 GMT</pubDate><category>Tweets</category></item><item><title>Wow, now that I understand state machines, I can&apos;t help but see them</title><link>https://coryhouse.dev/2020/01/24/tweet-1220500208884375552/</link><guid isPermaLink="true">https://coryhouse.dev/2020/01/24/tweet-1220500208884375552/</guid><description>Wow, now that I understand state machines, I can&apos;t help but see them. I&apos;m looking at code from last week and going: &quot;Ah! These 7 state variables ca...</description><pubDate>Fri, 24 Jan 2020 00:15:00 GMT</pubDate><category>Tweets</category></item><item><title>I put a React component in its own file when: ✅It&apos;s reusable by itself ✅It&apos;s...</title><link>https://coryhouse.dev/2020/01/24/tweet-1220671289926594561/</link><guid isPermaLink="true">https://coryhouse.dev/2020/01/24/tweet-1220671289926594561/</guid><description>I put a React component in its own file when: ✅It&apos;s reusable by itself ✅It&apos;s big, so it&apos;s helpful to be in its own file. Less scrolling. Easier to...</description><pubDate>Fri, 24 Jan 2020 11:34:49 GMT</pubDate><category>Tweets</category></item><item><title>I ♥️ remote work</title><link>https://coryhouse.dev/2020/01/24/tweet-1220691605549658114/</link><guid isPermaLink="true">https://coryhouse.dev/2020/01/24/tweet-1220691605549658114/</guid><description>I ♥️ remote work. Oddly, woke up at 4am today. No biggie. Started work. Turns out it&apos;s a snow day ☃️, so kids are out of school. I&apos;m using the time...</description><pubDate>Fri, 24 Jan 2020 12:55:32 GMT</pubDate><category>Tweets</category></item><item><title>So far, I ♥️ being independent</title><link>https://coryhouse.dev/2020/01/26/tweet-1221483585846349825/</link><guid isPermaLink="true">https://coryhouse.dev/2020/01/26/tweet-1221483585846349825/</guid><description>So far, I ♥️ being independent. 1. Don&apos;t need to keep Slack open 2. No commute 3. Don&apos;t need permission to take vacation or work odd hours 4. Quiet...</description><pubDate>Sun, 26 Jan 2020 17:22:35 GMT</pubDate><category>Tweets</category></item><item><title>As a consultant, I&apos;m seeing an epidemic: Companies are wasting millions by...</title><link>https://coryhouse.dev/2020/01/29/tweet-1222670531029274625/</link><guid isPermaLink="true">https://coryhouse.dev/2020/01/29/tweet-1222670531029274625/</guid><description>As a consultant, I&apos;m seeing an epidemic: Companies are wasting millions by giving developers slow laptops. Today I said &quot;npm install x&quot;. My laptop:...</description><pubDate>Wed, 29 Jan 2020 23:59:05 GMT</pubDate><category>Tweets</category></item><item><title>Common thread among people I respect: An abundance mindset</title><link>https://coryhouse.dev/2020/01/30/tweet-1222692164381171712/</link><guid isPermaLink="true">https://coryhouse.dev/2020/01/30/tweet-1222692164381171712/</guid><description>Common thread among people I respect: An abundance mindset. They don’t tear down others to build themselves up. They celebrate the success of other...</description><pubDate>Thu, 30 Jan 2020 01:25:03 GMT</pubDate><category>Tweets</category></item><item><title>Common mistake I see in React apps: Putting state in the wrong spot</title><link>https://coryhouse.dev/2020/01/31/tweet-1223071907463016448/</link><guid isPermaLink="true">https://coryhouse.dev/2020/01/31/tweet-1223071907463016448/</guid><description>Common mistake I see in React apps: Putting state in the wrong spot. Simple strategy: 1. Put state in the component that needs it. 2. Do child comp...</description><pubDate>Fri, 31 Jan 2020 02:34:00 GMT</pubDate><category>Tweets</category></item><item><title>It&apos;s sad how many people I see making good money, creating their own prison</title><link>https://coryhouse.dev/2020/02/02/tweet-1223999645464002570/</link><guid isPermaLink="true">https://coryhouse.dev/2020/02/02/tweet-1223999645464002570/</guid><description>It&apos;s sad how many people I see making good money, creating their own prison. Many people are implicitly saying this: &quot;I&apos;d rather live a lifestyle I...</description><pubDate>Sun, 02 Feb 2020 16:00:30 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m working in the cleanest code base I&apos;ve ever worked with</title><link>https://coryhouse.dev/2020/02/04/tweet-1224835020197593090/</link><guid isPermaLink="true">https://coryhouse.dev/2020/02/04/tweet-1224835020197593090/</guid><description>I&apos;m working in the cleanest code base I&apos;ve ever worked with. It also has more automated tests than any app I&apos;ve ever worked with. I believe the two...</description><pubDate>Tue, 04 Feb 2020 23:19:59 GMT</pubDate><category>Tweets</category></item><item><title>How I write code: 1</title><link>https://coryhouse.dev/2020/02/06/tweet-1225417313178071040/</link><guid isPermaLink="true">https://coryhouse.dev/2020/02/06/tweet-1225417313178071040/</guid><description>How I write code: 1. Write small, focused, well-named, pure functions. 2. Compose related functions in well-named modules. Result: ✔️ Easy to under...</description><pubDate>Thu, 06 Feb 2020 13:53:49 GMT</pubDate><category>Tweets</category></item><item><title>Woot</title><link>https://coryhouse.dev/2020/02/07/tweet-1225595715281399808/</link><guid isPermaLink="true">https://coryhouse.dev/2020/02/07/tweet-1225595715281399808/</guid><description>Woot! This is big: @Cypress_io now supports testing Firefox and Edge! 🎉 Really excited to see cross browser support finally arrive in my favorite...</description><pubDate>Fri, 07 Feb 2020 01:42:43 GMT</pubDate><category>Tweets</category></item><item><title>Rules keep me safe</title><link>https://coryhouse.dev/2020/02/12/tweet-1227438721152299012/</link><guid isPermaLink="true">https://coryhouse.dev/2020/02/12/tweet-1227438721152299012/</guid><description>Rules keep me safe. Rules help me avoid overdoing it. Rules keep me from ruining my health, relationships, finances, and happiness. Examples: I&apos;m n...</description><pubDate>Wed, 12 Feb 2020 03:46:10 GMT</pubDate><category>Tweets</category></item><item><title>I ♥️ pure functions</title><link>https://coryhouse.dev/2020/02/13/tweet-1227782946888830977/</link><guid isPermaLink="true">https://coryhouse.dev/2020/02/13/tweet-1227782946888830977/</guid><description>I ♥️ pure functions. ✅Simple data as input ✅No side-effects ✅No external dependencies ✅Simple data out ✅Easy to compose ✅Easy to test</description><pubDate>Thu, 13 Feb 2020 02:34:00 GMT</pubDate><category>Tweets</category></item><item><title>Unpopular opinion: ESLint rules should be strict</title><link>https://coryhouse.dev/2020/02/13/tweet-1227923614542041088/</link><guid isPermaLink="true">https://coryhouse.dev/2020/02/13/tweet-1227923614542041088/</guid><description>Unpopular opinion: ESLint rules should be strict. We expect books to have consistent formatting/patterns. I believe code should be held to the same...</description><pubDate>Thu, 13 Feb 2020 11:52:58 GMT</pubDate><category>Tweets</category></item><item><title>To save money, look for “diminishing returns” (the point where the better...</title><link>https://coryhouse.dev/2020/02/23/tweet-1231574932225740802/</link><guid isPermaLink="true">https://coryhouse.dev/2020/02/23/tweet-1231574932225740802/</guid><description>To save money, look for “diminishing returns” (the point where the better item isn’t worth the extra cost). Examples: 2015 Dell laptop vs 2020 MacB...</description><pubDate>Sun, 23 Feb 2020 13:42:00 GMT</pubDate><category>Tweets</category></item><item><title>To save money💰 Buy used Avoid buying the “best”</title><link>https://coryhouse.dev/2020/02/24/tweet-1231940753967984640/</link><guid isPermaLink="true">https://coryhouse.dev/2020/02/24/tweet-1231940753967984640/</guid><description>To save money💰 Buy used Avoid buying the “best”. Look for diminishing returns (point where extra cost isn’t worth it) Upgrade less often (avoid sw...</description><pubDate>Mon, 24 Feb 2020 13:55:38 GMT</pubDate><category>Tweets</category></item><item><title>Realization: Independence increased my productivity</title><link>https://coryhouse.dev/2020/02/29/tweet-1233884549496614913/</link><guid isPermaLink="true">https://coryhouse.dev/2020/02/29/tweet-1233884549496614913/</guid><description>Realization: Independence increased my productivity. - No commute - Fast internet - No recurring meetings - I choose my tools - My machine is much...</description><pubDate>Sat, 29 Feb 2020 22:39:35 GMT</pubDate><category>Tweets</category></item><item><title>Unpopular opinion: I like switch statements</title><link>https://coryhouse.dev/2020/03/02/tweet-1234554694116265985/</link><guid isPermaLink="true">https://coryhouse.dev/2020/03/02/tweet-1234554694116265985/</guid><description>Unpopular opinion: I like switch statements. 1. Switch clearly conveys &quot;One of these cases applies&quot; at a glance. 2. Switch&apos;s default case encourage...</description><pubDate>Mon, 02 Mar 2020 19:02:30 GMT</pubDate><category>Tweets</category></item><item><title>3 reasons to use TypeScript instead of React PropTypes: When checks run: PT:...</title><link>https://coryhouse.dev/2020/03/07/tweet-1236272660264431616/</link><guid isPermaLink="true">https://coryhouse.dev/2020/03/07/tweet-1236272660264431616/</guid><description>3 reasons to use TypeScript instead of React PropTypes: When checks run: PT: Runtime 👎 TS: Compile time 👍 Where output displays: PT: Browser cons...</description><pubDate>Sat, 07 Mar 2020 12:49:05 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m updating a client&apos;s React component library</title><link>https://coryhouse.dev/2020/03/08/tweet-1236686411736195072/</link><guid isPermaLink="true">https://coryhouse.dev/2020/03/08/tweet-1236686411736195072/</guid><description>I&apos;m updating a client&apos;s React component library. I&apos;m converting old class-based demos to use functions with Hooks. It&apos;s striking how much of this t...</description><pubDate>Sun, 08 Mar 2020 16:13:11 GMT</pubDate><category>Tweets</category></item><item><title>Why I ❤️ TypeScript: TypeScript gives me what I love about C#: Strong types...</title><link>https://coryhouse.dev/2020/03/08/tweet-1236744114709954564/</link><guid isPermaLink="true">https://coryhouse.dev/2020/03/08/tweet-1236744114709954564/</guid><description>Why I ❤️ TypeScript: TypeScript gives me what I love about C#: Strong types and excellent autocomplete. And TypeScript avoids what I don&apos;t like abo...</description><pubDate>Sun, 08 Mar 2020 20:02:29 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m dealing with an unhelpful error message that doesn&apos;t provide a useful...</title><link>https://coryhouse.dev/2020/03/11/tweet-1237761611303092227/</link><guid isPermaLink="true">https://coryhouse.dev/2020/03/11/tweet-1237761611303092227/</guid><description>I&apos;m dealing with an unhelpful error message that doesn&apos;t provide a useful line number. I&apos;m using my favorite approach: bisect. 1. Delete half the c...</description><pubDate>Wed, 11 Mar 2020 15:25:39 GMT</pubDate><category>Tweets</category></item><item><title>In Chrome, if I write an infinite loop, the tab just freezes and cannot be...</title><link>https://coryhouse.dev/2020/03/14/tweet-1238622194227384320/</link><guid isPermaLink="true">https://coryhouse.dev/2020/03/14/tweet-1238622194227384320/</guid><description>In Chrome, if I write an infinite loop, the tab just freezes and cannot be closed. I have to force close the entire browser, and thus ALL tabs. 👎...</description><pubDate>Sat, 14 Mar 2020 00:25:18 GMT</pubDate><category>Tweets</category></item><item><title>I ♥️ Hooks</title><link>https://coryhouse.dev/2020/03/16/tweet-1239622073909161986/</link><guid isPermaLink="true">https://coryhouse.dev/2020/03/16/tweet-1239622073909161986/</guid><description>I ♥️ Hooks. But each useEffect should clearly convey intent. Simple solution: 1. Nest a well-named function 2. Call it Otherwise useEffect merely s...</description><pubDate>Mon, 16 Mar 2020 18:38:28 GMT</pubDate><category>Tweets</category></item><item><title>Adopting TypeScript: Short-term pain for long-term gain</title><link>https://coryhouse.dev/2020/03/21/tweet-1241385474591272960/</link><guid isPermaLink="true">https://coryhouse.dev/2020/03/21/tweet-1241385474591272960/</guid><description>Adopting TypeScript: Short-term pain for long-term gain. ✅Better autocomplete ✅Safe, fast refactoring ✅Compile-time errors instead of run-time erro...</description><pubDate>Sat, 21 Mar 2020 15:25:35 GMT</pubDate><category>Tweets</category></item><item><title>The &quot;best&quot; technology often doesn&apos;t win</title><link>https://coryhouse.dev/2020/03/22/tweet-1241736748281012225/</link><guid isPermaLink="true">https://coryhouse.dev/2020/03/22/tweet-1241736748281012225/</guid><description>The &quot;best&quot; technology often doesn&apos;t win. There are many non-technical reasons to pick a technology. Community Job opportunities Ability to hire Eco...</description><pubDate>Sun, 22 Mar 2020 14:41:25 GMT</pubDate><category>Tweets</category></item><item><title>Want to create a new #JavaScript object with an optional property</title><link>https://coryhouse.dev/2020/03/23/tweet-1242084772819714049/</link><guid isPermaLink="true">https://coryhouse.dev/2020/03/23/tweet-1242084772819714049/</guid><description>Want to create a new #JavaScript object with an optional property? Use spread (...) with the logical and operator (&amp;&amp;). const user = { name...</description><pubDate>Mon, 23 Mar 2020 13:44:21 GMT</pubDate><category>Tweets</category></item><item><title>Client: Help</title><link>https://coryhouse.dev/2020/03/23/tweet-1242221870902136834/</link><guid isPermaLink="true">https://coryhouse.dev/2020/03/23/tweet-1242221870902136834/</guid><description>Client: Help! Me: This Hook solves your issue. Client: We only use React classes. Hooks seem scary. Me: Okay. I&apos;ll rewrite the Hook to work in your...</description><pubDate>Mon, 23 Mar 2020 22:49:08 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m really enjoying the 16&quot; MacBook Pro</title><link>https://coryhouse.dev/2020/03/24/tweet-1242271598972997634/</link><guid isPermaLink="true">https://coryhouse.dev/2020/03/24/tweet-1242271598972997634/</guid><description>I&apos;m really enjoying the 16&quot; MacBook Pro. Fantastic keyboard Runs cool, even with the i9 Fan virtually never runs Excellent battery life Bright, low...</description><pubDate>Tue, 24 Mar 2020 02:06:44 GMT</pubDate><category>Tweets</category></item><item><title>JavaScript rest syntax can remove properties too</title><link>https://coryhouse.dev/2020/03/27/tweet-1243562849311563777/</link><guid isPermaLink="true">https://coryhouse.dev/2020/03/27/tweet-1243562849311563777/</guid><description>JavaScript rest syntax can remove properties too. For example, given this object: const user = { name: &quot;Cory&quot;, address: { city: &quot;KC&quot; } } This creat...</description><pubDate>Fri, 27 Mar 2020 15:37:42 GMT</pubDate><category>Tweets</category></item><item><title>Why I ♥️ software development: I don&apos;t have to get it right the first time</title><link>https://coryhouse.dev/2020/03/27/tweet-1243581614543814656/</link><guid isPermaLink="true">https://coryhouse.dev/2020/03/27/tweet-1243581614543814656/</guid><description>Why I ♥️ software development: I don&apos;t have to get it right the first time. In many fields, mistakes are dangerous and costly. In software developm...</description><pubDate>Fri, 27 Mar 2020 16:52:16 GMT</pubDate><category>Tweets</category></item><item><title>When I&apos;m unsure what HTML element to use, I Google for &quot;HTML5 Flowchart&quot;</title><link>https://coryhouse.dev/2020/03/27/tweet-1243625787426844672/</link><guid isPermaLink="true">https://coryhouse.dev/2020/03/27/tweet-1243625787426844672/</guid><description>When I&apos;m unsure what HTML element to use, I Google for &quot;HTML5 Flowchart&quot;. Super handy. 🔥 Why is semantic HTML important? - Better SEO - Easier mai...</description><pubDate>Fri, 27 Mar 2020 19:47:47 GMT</pubDate><category>Tweets</category></item><item><title>Over the last decade, I&apos;ve consumed 100&apos;s of books, videos, blogs, etc</title><link>https://coryhouse.dev/2020/03/30/tweet-1244419797934358528/</link><guid isPermaLink="true">https://coryhouse.dev/2020/03/30/tweet-1244419797934358528/</guid><description>Over the last decade, I&apos;ve consumed 100&apos;s of books, videos, blogs, etc. Common thread: ✅ Non-fiction ✅ Timeless content I just spent the day creati...</description><pubDate>Mon, 30 Mar 2020 00:22:54 GMT</pubDate><category>Tweets</category></item><item><title>PSA: Please don&apos;t name a variable &quot;data&quot;</title><link>https://coryhouse.dev/2020/03/30/tweet-1244609142884642821/</link><guid isPermaLink="true">https://coryhouse.dev/2020/03/30/tweet-1244609142884642821/</guid><description>PSA: Please don&apos;t name a variable &quot;data&quot;. It tells your fellow programmers literally nothing about what&apos;s inside.</description><pubDate>Mon, 30 Mar 2020 12:55:18 GMT</pubDate><category>Tweets</category></item><item><title>An unexpected benefit of closing schools: Slowing down creates space for...</title><link>https://coryhouse.dev/2020/04/03/tweet-1246105855109578754/</link><guid isPermaLink="true">https://coryhouse.dev/2020/04/03/tweet-1246105855109578754/</guid><description>An unexpected benefit of closing schools: Slowing down creates space for exploring. With this free time, my youngest son has discovered a love of r...</description><pubDate>Fri, 03 Apr 2020 16:02:42 GMT</pubDate><category>Tweets</category></item><item><title>I prefer #javascript function declarations over function expressions and...</title><link>https://coryhouse.dev/2020/04/05/tweet-1246898756617940992/</link><guid isPermaLink="true">https://coryhouse.dev/2020/04/05/tweet-1246898756617940992/</guid><description>I prefer #javascript function declarations over function expressions and arrow functions. Function declaration benefits: 1. Hoisted, so order doesn...</description><pubDate>Sun, 05 Apr 2020 20:33:24 GMT</pubDate><category>Tweets</category></item><item><title>Why I no longer write classes in #Javascript: I don&apos;t need them</title><link>https://coryhouse.dev/2020/04/07/tweet-1247495749182652418/</link><guid isPermaLink="true">https://coryhouse.dev/2020/04/07/tweet-1247495749182652418/</guid><description>Why I no longer write classes in #Javascript: I don&apos;t need them. Instead, I use: 1. Plain objects (data only, no behavior) 2. Pure functions (no si...</description><pubDate>Tue, 07 Apr 2020 12:05:38 GMT</pubDate><category>Tweets</category></item><item><title>Why I ❤️ being a UI specialist: ✔️Close to the user ✔️I choose my tools...</title><link>https://coryhouse.dev/2020/04/10/tweet-1248640528872280064/</link><guid isPermaLink="true">https://coryhouse.dev/2020/04/10/tweet-1248640528872280064/</guid><description>Why I ❤️ being a UI specialist: ✔️Close to the user ✔️I choose my tools ✔️Can work from anywhere ✔️Cross-team blockers are rare ✔️I’m not impeded w...</description><pubDate>Fri, 10 Apr 2020 15:54:35 GMT</pubDate><category>Tweets</category></item><item><title>React = Legos for adults</title><link>https://coryhouse.dev/2020/04/12/tweet-1249291002382364672/</link><guid isPermaLink="true">https://coryhouse.dev/2020/04/12/tweet-1249291002382364672/</guid><description>React = Legos for adults. Except it&apos;s even better because: - Many people share their Legos for free 😃 - If I find a Lego that mostly works, I can...</description><pubDate>Sun, 12 Apr 2020 10:59:20 GMT</pubDate><category>Tweets</category></item><item><title>My days of complaining about CSS positioning are over</title><link>https://coryhouse.dev/2020/04/12/tweet-1249337632997466112/</link><guid isPermaLink="true">https://coryhouse.dev/2020/04/12/tweet-1249337632997466112/</guid><description>My days of complaining about CSS positioning are over. Flexbox is awesome. 🔥 I&apos;m embarrassed to say I was a grumpy old man floating divs until abo...</description><pubDate>Sun, 12 Apr 2020 14:04:37 GMT</pubDate><category>Tweets</category></item><item><title>I rarely say &quot;that&apos;s impossible&quot;</title><link>https://coryhouse.dev/2020/04/12/tweet-1249428157591105537/</link><guid isPermaLink="true">https://coryhouse.dev/2020/04/12/tweet-1249428157591105537/</guid><description>I rarely say &quot;that&apos;s impossible&quot;. This has me stumped. So in the spirit of Cunningham&apos;s Law, I&apos;m going to say it: It&apos;s impossible to animate an exp...</description><pubDate>Sun, 12 Apr 2020 20:04:20 GMT</pubDate><category>Tweets</category></item><item><title>JSON doesn&apos;t support comments</title><link>https://coryhouse.dev/2020/04/13/tweet-1249719883329396741/</link><guid isPermaLink="true">https://coryhouse.dev/2020/04/13/tweet-1249719883329396741/</guid><description>JSON doesn&apos;t support comments. So here&apos;s how I comment npm scripts in package.json. 😎 #javascript #npm</description><pubDate>Mon, 13 Apr 2020 15:23:33 GMT</pubDate><category>Tweets</category></item><item><title>Valuable developer traits: Humility and self-awareness These traits help you...</title><link>https://coryhouse.dev/2020/04/14/tweet-1250035619302182912/</link><guid isPermaLink="true">https://coryhouse.dev/2020/04/14/tweet-1250035619302182912/</guid><description>Valuable developer traits: Humility and self-awareness These traits help you say: I&apos;m stuck. I&apos;m doing this the hard way. I need a break. I need he...</description><pubDate>Tue, 14 Apr 2020 12:18:10 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m jumping between 2 projects: 1</title><link>https://coryhouse.dev/2020/04/14/tweet-1250166788182159366/</link><guid isPermaLink="true">https://coryhouse.dev/2020/04/14/tweet-1250166788182159366/</guid><description>I&apos;m jumping between 2 projects: 1. React in JavaScript 2. React in TypeScript The difference: In JS, I spend more time in the browser resolving run...</description><pubDate>Tue, 14 Apr 2020 20:59:23 GMT</pubDate><category>Tweets</category></item><item><title>Today I learned: 1</title><link>https://coryhouse.dev/2020/04/15/tweet-1250265757465755649/</link><guid isPermaLink="true">https://coryhouse.dev/2020/04/15/tweet-1250265757465755649/</guid><description>Today I learned: 1. In Github, type the letter t 2. A file finder appears 3. Enter a filename to open it Fast and slick! 🔥 #git #github</description><pubDate>Wed, 15 Apr 2020 03:32:40 GMT</pubDate><category>Tweets</category></item><item><title>Confession: For the first 10 years of my career, I considered automated...</title><link>https://coryhouse.dev/2020/04/16/tweet-1250755798109691904/</link><guid isPermaLink="true">https://coryhouse.dev/2020/04/16/tweet-1250755798109691904/</guid><description>Confession: For the first 10 years of my career, I considered automated testing a waste of time. Now, after 10 years of writing tests, I realize: 1...</description><pubDate>Thu, 16 Apr 2020 11:59:54 GMT</pubDate><category>Tweets</category></item><item><title>My routine for happiness during the pandemic: Sleep well Exercise daily...</title><link>https://coryhouse.dev/2020/04/17/tweet-1251142821932916736/</link><guid isPermaLink="true">https://coryhouse.dev/2020/04/17/tweet-1251142821932916736/</guid><description>My routine for happiness during the pandemic: Sleep well Exercise daily Learn Work hard on things I can control Be grateful Mindset: Life doesn’t s...</description><pubDate>Fri, 17 Apr 2020 13:37:48 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript habit: When trying a new library, TS slows down experimentation</title><link>https://coryhouse.dev/2020/04/17/tweet-1251229452748705793/</link><guid isPermaLink="true">https://coryhouse.dev/2020/04/17/tweet-1251229452748705793/</guid><description>TypeScript habit: When trying a new library, TS slows down experimentation. So I use plain JS in @codesandbox and try it out. If it meets my needs,...</description><pubDate>Fri, 17 Apr 2020 19:22:02 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript protects from edge cases</title><link>https://coryhouse.dev/2020/04/18/tweet-1251590294073741313/</link><guid isPermaLink="true">https://coryhouse.dev/2020/04/18/tweet-1251590294073741313/</guid><description>TypeScript protects from edge cases. Example: I reference something that may be undefined. In JS, I get a runtime error, but only if I happen to ex...</description><pubDate>Sat, 18 Apr 2020 19:15:54 GMT</pubDate><category>Tweets</category></item><item><title>Useful organizational skills in software development: - Name things well -...</title><link>https://coryhouse.dev/2020/04/19/tweet-1251887465989898241/</link><guid isPermaLink="true">https://coryhouse.dev/2020/04/19/tweet-1251887465989898241/</guid><description>Useful organizational skills in software development: - Name things well - Group related things together - Keep unrelated things separate - Avoid r...</description><pubDate>Sun, 19 Apr 2020 14:56:45 GMT</pubDate><category>Tweets</category></item><item><title>Performance pattern If your web app requires a lot of data that changes...</title><link>https://coryhouse.dev/2020/04/21/tweet-1252409376972787712/</link><guid isPermaLink="true">https://coryhouse.dev/2020/04/21/tweet-1252409376972787712/</guid><description>Performance pattern If your web app requires a lot of data that changes rarely: 1. Store the data in localStorage. 2. When the user returns, read f...</description><pubDate>Tue, 21 Apr 2020 01:30:38 GMT</pubDate><category>Tweets</category></item><item><title>TIL: To log all clicks in React, use onClickCapture</title><link>https://coryhouse.dev/2020/04/26/tweet-1254400264565555201/</link><guid isPermaLink="true">https://coryhouse.dev/2020/04/26/tweet-1254400264565555201/</guid><description>TIL: To log all clicks in React, use onClickCapture. This simple component logs clicks in all child components. 😎 #reactjs</description><pubDate>Sun, 26 Apr 2020 13:21:43 GMT</pubDate><category>Tweets</category></item><item><title>Programming irony: A complex solution often feels impressive</title><link>https://coryhouse.dev/2020/04/28/tweet-1254955696652771328/</link><guid isPermaLink="true">https://coryhouse.dev/2020/04/28/tweet-1254955696652771328/</guid><description>Programming irony: A complex solution often feels impressive. Why? Because complexity is hard to understand. So it looks like it was hard to build....</description><pubDate>Tue, 28 Apr 2020 02:08:48 GMT</pubDate><category>Tweets</category></item><item><title>HTTP call checklist: -Can this run in parallel with other requests</title><link>https://coryhouse.dev/2020/05/01/tweet-1256025005470728195/</link><guid isPermaLink="true">https://coryhouse.dev/2020/05/01/tweet-1256025005470728195/</guid><description>HTTP call checklist: -Can this run in parallel with other requests? -When should the request time out? -How are server errors handled? -What if the...</description><pubDate>Fri, 01 May 2020 00:57:51 GMT</pubDate><category>Tweets</category></item><item><title>React: The Good Parts 1</title><link>https://coryhouse.dev/2020/05/01/tweet-1256186927025438720/</link><guid isPermaLink="true">https://coryhouse.dev/2020/05/01/tweet-1256186927025438720/</guid><description>React: The Good Parts 1. Function components 2. JSX 3. Props 4. useState 5. useEffect I can elegantly solve most problems with these 5 simple tools...</description><pubDate>Fri, 01 May 2020 11:41:16 GMT</pubDate><category>Tweets</category></item><item><title>Why I code against a mock API: 1 I control the speed 2 It&apos;s never down 3 No...</title><link>https://coryhouse.dev/2020/05/01/tweet-1256242384075198472/</link><guid isPermaLink="true">https://coryhouse.dev/2020/05/01/tweet-1256242384075198472/</guid><description>Why I code against a mock API: 1 I control the speed 2 It&apos;s never down 3 No internet required 4 No cross-team dependency 5 I can force it to throw...</description><pubDate>Fri, 01 May 2020 15:21:38 GMT</pubDate><category>Tweets</category></item><item><title>Two things that totally changed the way I think about separation of concerns: 1</title><link>https://coryhouse.dev/2020/05/01/tweet-1256348777331470340/</link><guid isPermaLink="true">https://coryhouse.dev/2020/05/01/tweet-1256348777331470340/</guid><description>Two things that totally changed the way I think about separation of concerns: 1. This 2013 talk by Pete Hunt: https://www.youtube.com/watch?v=x7cQ3...</description><pubDate>Fri, 01 May 2020 22:24:25 GMT</pubDate><category>Tweets</category></item><item><title>&quot;I don&apos;t have time to write tests&quot;</title><link>https://coryhouse.dev/2020/05/09/tweet-1259091506830495745/</link><guid isPermaLink="true">https://coryhouse.dev/2020/05/09/tweet-1259091506830495745/</guid><description>&quot;I don&apos;t have time to write tests&quot;. Do you have time to: 1. Run the app manually after each change 2. Investigate and fix broken builds 3. Investig...</description><pubDate>Sat, 09 May 2020 12:03:02 GMT</pubDate><category>Tweets</category></item><item><title>I don&apos;t write end-to-end (e2e) tests</title><link>https://coryhouse.dev/2020/05/09/tweet-1259094755448885250/</link><guid isPermaLink="true">https://coryhouse.dev/2020/05/09/tweet-1259094755448885250/</guid><description>I don&apos;t write end-to-end (e2e) tests. Instead, I write integration tests against realistic mock APIs. With comprehensive tests against a mock API,...</description><pubDate>Sat, 09 May 2020 12:15:57 GMT</pubDate><category>Tweets</category></item><item><title>Announcement: I&apos;m writing a new course</title><link>https://coryhouse.dev/2020/05/11/tweet-1259820207788433408/</link><guid isPermaLink="true">https://coryhouse.dev/2020/05/11/tweet-1259820207788433408/</guid><description>Announcement: I&apos;m writing a new course! 🎉 Title: &quot;Managing React State&quot; I&apos;m publishing on @pluralsight this summer. ☀️ What do you expect/hope to...</description><pubDate>Mon, 11 May 2020 12:18:38 GMT</pubDate><category>Tweets</category></item><item><title>When fixing a bug, I write a test that reproduces the bug first</title><link>https://coryhouse.dev/2020/05/15/tweet-1261290357414821889/</link><guid isPermaLink="true">https://coryhouse.dev/2020/05/15/tweet-1261290357414821889/</guid><description>When fixing a bug, I write a test that reproduces the bug first. Benefits: ✅I don&apos;t have to repeatedly configure the app to reproduce the bug while...</description><pubDate>Fri, 15 May 2020 13:40:29 GMT</pubDate><category>Tweets</category></item><item><title>I’m creating a reusable React component library in TypeScript for a client</title><link>https://coryhouse.dev/2020/05/16/tweet-1261628817027862528/</link><guid isPermaLink="true">https://coryhouse.dev/2020/05/16/tweet-1261628817027862528/</guid><description>I’m creating a reusable React component library in TypeScript for a client. It’s taking longer than a plain JS library. That’s not surprising. Type...</description><pubDate>Sat, 16 May 2020 12:05:24 GMT</pubDate><category>Tweets</category></item><item><title>New React state library from Facebook: Recoil</title><link>https://coryhouse.dev/2020/05/16/tweet-1261713089935876096/</link><guid isPermaLink="true">https://coryhouse.dev/2020/05/16/tweet-1261713089935876096/</guid><description>New React state library from Facebook: Recoil. 🎉 ✅ Flexible shared state ✅ Derived data and queries ✅ App-wide state observation This short video...</description><pubDate>Sat, 16 May 2020 17:40:16 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m torn about @tailwindcss</title><link>https://coryhouse.dev/2020/05/20/tweet-1262918182366519296/</link><guid isPermaLink="true">https://coryhouse.dev/2020/05/20/tweet-1262918182366519296/</guid><description>I&apos;m torn about @tailwindcss. It&apos;s a tradeoff. Benefit: Move faster. No need to declare my own classes. Cost: More &quot;noisy&quot; HTML due to long class de...</description><pubDate>Wed, 20 May 2020 01:28:53 GMT</pubDate><category>Tweets</category></item><item><title>These are the 6 questions I ask to decide where to store state in React apps</title><link>https://coryhouse.dev/2020/05/22/tweet-1263812248176340992/</link><guid isPermaLink="true">https://coryhouse.dev/2020/05/22/tweet-1263812248176340992/</guid><description>These are the 6 questions I ask to decide where to store state in React apps. See any missing scenarios? Suggested tweaks? #reactjs</description><pubDate>Fri, 22 May 2020 12:41:35 GMT</pubDate><category>Tweets</category></item><item><title>Most React devs know to declare a key when iterating over an array</title><link>https://coryhouse.dev/2020/05/25/tweet-1264891785479938049/</link><guid isPermaLink="true">https://coryhouse.dev/2020/05/25/tweet-1264891785479938049/</guid><description>Most React devs know to declare a key when iterating over an array. But there are 2 lessor known reasons to use keys: 1. To force a re-render on a...</description><pubDate>Mon, 25 May 2020 12:11:16 GMT</pubDate><category>Tweets</category></item><item><title>Learning is hard</title><link>https://coryhouse.dev/2020/05/25/tweet-1264973171121426432/</link><guid isPermaLink="true">https://coryhouse.dev/2020/05/25/tweet-1264973171121426432/</guid><description>Learning is hard. Here&apos;s a mindset I find helpful. I don&apos;t expect to understand the docs at first. I don&apos;t expect to &quot;do it right&quot; at first. But I...</description><pubDate>Mon, 25 May 2020 17:34:40 GMT</pubDate><category>Tweets</category></item><item><title>React-query and swr are awesome</title><link>https://coryhouse.dev/2020/05/26/tweet-1265103048365441024/</link><guid isPermaLink="true">https://coryhouse.dev/2020/05/26/tweet-1265103048365441024/</guid><description>React-query and swr are awesome. 🔥 They taught me to ask a bunch of questions that I should have been asking: 1. Should I cache data on the client...</description><pubDate>Tue, 26 May 2020 02:10:45 GMT</pubDate><category>Tweets</category></item><item><title>The fastest way I&apos;ve found to learn new tech: I build something with it...</title><link>https://coryhouse.dev/2020/05/28/tweet-1265971817619087361/</link><guid isPermaLink="true">https://coryhouse.dev/2020/05/28/tweet-1265971817619087361/</guid><description>The fastest way I&apos;ve found to learn new tech: I build something with it *outside my company&apos;s environment*. Here&apos;s why: - I don’t have to wait for...</description><pubDate>Thu, 28 May 2020 11:42:56 GMT</pubDate><category>Tweets</category></item><item><title>I was manually updating localStorage anytime state was updated</title><link>https://coryhouse.dev/2020/06/05/tweet-1268900696604258304/</link><guid isPermaLink="true">https://coryhouse.dev/2020/06/05/tweet-1268900696604258304/</guid><description>I was manually updating localStorage anytime state was updated. Then I realized: That&apos;s the perfect job for useEffect. Here, I’m persisting shoppin...</description><pubDate>Fri, 05 Jun 2020 13:41:15 GMT</pubDate><category>Tweets</category></item><item><title>When working with a list, an array is an obvious choice</title><link>https://coryhouse.dev/2020/06/07/tweet-1269741298539470851/</link><guid isPermaLink="true">https://coryhouse.dev/2020/06/07/tweet-1269741298539470851/</guid><description>When working with a list, an array is an obvious choice. But sometimes it&apos;s preferable to use an object instead. Here&apos;s when: 1. Each item has a un...</description><pubDate>Sun, 07 Jun 2020 21:21:30 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;ve spent the last week trying to use #JavaScript Map and Set instead of...</title><link>https://coryhouse.dev/2020/06/12/tweet-1271498738977169409/</link><guid isPermaLink="true">https://coryhouse.dev/2020/06/12/tweet-1271498738977169409/</guid><description>I&apos;ve spent the last week trying to use #JavaScript Map and Set instead of plain ol&apos; arrays and objects. My verdict? Not worth it. The lack of basic...</description><pubDate>Fri, 12 Jun 2020 17:44:57 GMT</pubDate><category>Tweets</category></item><item><title>Why I write integration tests first: 1 I don&apos;t have to keep manually running...</title><link>https://coryhouse.dev/2020/06/13/tweet-1271763032889348096/</link><guid isPermaLink="true">https://coryhouse.dev/2020/06/13/tweet-1271763032889348096/</guid><description>Why I write integration tests first: 1 I don&apos;t have to keep manually running the app to see my code work. Integration tests automate the browser. 2...</description><pubDate>Sat, 13 Jun 2020 11:15:09 GMT</pubDate><category>Tweets</category></item><item><title>Overrated: Buying new stuff</title><link>https://coryhouse.dev/2020/06/14/tweet-1271983354498473986/</link><guid isPermaLink="true">https://coryhouse.dev/2020/06/14/tweet-1271983354498473986/</guid><description>Overrated: Buying new stuff. Underrated: Maintaining your stuff so well that it continues to feel new, so you don&apos;t have a big desire to upgrade.</description><pubDate>Sun, 14 Jun 2020 01:50:38 GMT</pubDate><category>Tweets</category></item><item><title>Interesting UI monorepo config: 1</title><link>https://coryhouse.dev/2020/06/14/tweet-1272138177474682888/</link><guid isPermaLink="true">https://coryhouse.dev/2020/06/14/tweet-1272138177474682888/</guid><description>Interesting UI monorepo config: 1. Place each project in a separate folder 2. Place a single package.json in root. So all projects share a single p...</description><pubDate>Sun, 14 Jun 2020 12:05:51 GMT</pubDate><category>Tweets</category></item><item><title>As a developer, UI/UX can seem like an art or innate talent</title><link>https://coryhouse.dev/2020/06/18/tweet-1273416127109115907/</link><guid isPermaLink="true">https://coryhouse.dev/2020/06/18/tweet-1273416127109115907/</guid><description>As a developer, UI/UX can seem like an art or innate talent. We&apos;re not “born with” these skills. We learn them. Here’s a compelling short video on...</description><pubDate>Thu, 18 Jun 2020 00:43:58 GMT</pubDate><category>Tweets</category></item><item><title>30 Ways to Handle React State</title><link>https://coryhouse.dev/2020/06/19/30-ways-to-handle-react-state/</link><guid isPermaLink="true">https://coryhouse.dev/2020/06/19/30-ways-to-handle-react-state/</guid><description>While preparing my upcoming Pluralsight course “Managing React State”, I found a surprising number of React state management options. This slide from the upcomi…</description><pubDate>Fri, 19 Jun 2020 17:34:29 GMT</pubDate><category>JavaScript</category></item><item><title>TIL: HTML &lt;details&gt; and &lt;summary&gt; create collapsable content</title><link>https://coryhouse.dev/2020/06/20/tweet-1274365897680044033/</link><guid isPermaLink="true">https://coryhouse.dev/2020/06/20/tweet-1274365897680044033/</guid><description>TIL: HTML &lt;details&gt; and &lt;summary&gt; create collapsable content. No JS required! 😎 Works in all evergreen browsers. And IE11 degrades nic...</description><pubDate>Sat, 20 Jun 2020 15:38:01 GMT</pubDate><category>Tweets</category></item><item><title>In a JavaScript app, what do you call a file that only contains functions...</title><link>https://coryhouse.dev/2020/06/20/tweet-1274487292296597506/</link><guid isPermaLink="true">https://coryhouse.dev/2020/06/20/tweet-1274487292296597506/</guid><description>In a JavaScript app, what do you call a file that only contains functions that perform HTTP requests? For example, this file contains functions tha...</description><pubDate>Sat, 20 Jun 2020 23:40:23 GMT</pubDate><category>Tweets</category></item><item><title>I ♥️ Hooks</title><link>https://coryhouse.dev/2020/06/22/tweet-1275072056804040704/</link><guid isPermaLink="true">https://coryhouse.dev/2020/06/22/tweet-1275072056804040704/</guid><description>I ♥️ Hooks. But they created a “2nd system” problem: There are 2 ways to do everything. The function API is superior. 😀 But, most the React docs s...</description><pubDate>Mon, 22 Jun 2020 14:24:02 GMT</pubDate><category>Tweets</category></item><item><title>Why react-query / swr are awesome: They return cached data *immediately*,...</title><link>https://coryhouse.dev/2020/06/23/tweet-1275566435419512832/</link><guid isPermaLink="true">https://coryhouse.dev/2020/06/23/tweet-1275566435419512832/</guid><description>Why react-query / swr are awesome: They return cached data *immediately*, then fetch behind the scenes and update the UI when it’s returned. Result...</description><pubDate>Tue, 23 Jun 2020 23:08:31 GMT</pubDate><category>Tweets</category></item><item><title>Slick way to get a unique JavaScript array: 1</title><link>https://coryhouse.dev/2020/06/24/tweet-1275762081510367237/</link><guid isPermaLink="true">https://coryhouse.dev/2020/06/24/tweet-1275762081510367237/</guid><description>Slick way to get a unique JavaScript array: 1. Declare a Set (Set enforces unique values). 2. Convert it to an array via object spread. One liner:...</description><pubDate>Wed, 24 Jun 2020 12:05:57 GMT</pubDate><category>Tweets</category></item><item><title>After using @PrettierCode, watching someone code without it makes me cringe</title><link>https://coryhouse.dev/2020/06/24/tweet-1275903301700247553/</link><guid isPermaLink="true">https://coryhouse.dev/2020/06/24/tweet-1275903301700247553/</guid><description>After using @PrettierCode, watching someone code without it makes me cringe. Manually adjusting indentation and line breaks feels downright silly....</description><pubDate>Wed, 24 Jun 2020 21:27:06 GMT</pubDate><category>Tweets</category></item><item><title>Some teams claim they&apos;re &quot;too busy&quot; to: 1</title><link>https://coryhouse.dev/2020/06/25/tweet-1276167966883745795/</link><guid isPermaLink="true">https://coryhouse.dev/2020/06/25/tweet-1276167966883745795/</guid><description>Some teams claim they&apos;re &quot;too busy&quot; to: 1. Write tests 2. Speed up the build process 3. Configure CI / CD 4. Mock the API 5. Configure linting / au...</description><pubDate>Thu, 25 Jun 2020 14:58:48 GMT</pubDate><category>Tweets</category></item><item><title>Over abstractor: “We should wrap React in case we move to Vue or Svelte.” What</title><link>https://coryhouse.dev/2020/06/26/tweet-1276502538884460544/</link><guid isPermaLink="true">https://coryhouse.dev/2020/06/26/tweet-1276502538884460544/</guid><description>Over abstractor: “We should wrap React in case we move to Vue or Svelte.” What? No. That won’t work. Under abstractor: “We can call fetch in each c...</description><pubDate>Fri, 26 Jun 2020 13:08:16 GMT</pubDate><category>Tweets</category></item><item><title>Fallacy: Motivation creates action</title><link>https://coryhouse.dev/2020/06/27/tweet-1276854263176728577/</link><guid isPermaLink="true">https://coryhouse.dev/2020/06/27/tweet-1276854263176728577/</guid><description>Fallacy: Motivation creates action. Reality: Action creates motivation. So, to create motivation, I have to force myself to get started. I have to...</description><pubDate>Sat, 27 Jun 2020 12:25:53 GMT</pubDate><category>Tweets</category></item><item><title>In React, there are at least 8 ways to handle state</title><link>https://coryhouse.dev/2020/06/29/tweet-1277581070897238017/</link><guid isPermaLink="true">https://coryhouse.dev/2020/06/29/tweet-1277581070897238017/</guid><description>In React, there are at least 8 ways to handle state. This app uses all 8 approaches: https://github.com/coryhouse/react-state-demo The pull request...</description><pubDate>Mon, 29 Jun 2020 12:33:58 GMT</pubDate><category>Tweets</category></item><item><title>I ❤️ composition</title><link>https://coryhouse.dev/2020/07/03/tweet-1279071378680012800/</link><guid isPermaLink="true">https://coryhouse.dev/2020/07/03/tweet-1279071378680012800/</guid><description>I ❤️ composition. There are many composition tools: Functions Classes Components Libraries Packages Composition avoids overwhelm and duplication by...</description><pubDate>Fri, 03 Jul 2020 15:15:55 GMT</pubDate><category>Tweets</category></item><item><title>On Admiring Simplicity</title><link>https://coryhouse.dev/2020/07/04/on-admiring-simplicity/</link><guid isPermaLink="true">https://coryhouse.dev/2020/07/04/on-admiring-simplicity/</guid><description>A poorly-designed solution may seem impressive. Why? Because it’s complex and unapproachable. So it looks like it was hard to build. A well-designed solution ma…</description><pubDate>Sat, 04 Jul 2020 13:23:47 GMT</pubDate><category>Clean Code</category></item><item><title>A poorly-designed solution may seem impressive</title><link>https://coryhouse.dev/2020/07/04/tweet-1279401866879815681/</link><guid isPermaLink="true">https://coryhouse.dev/2020/07/04/tweet-1279401866879815681/</guid><description>A poorly-designed solution may seem impressive. Why? Because it’s complex and unapproachable. So it looks like it was hard to build. A well-designe...</description><pubDate>Sat, 04 Jul 2020 13:09:09 GMT</pubDate><category>Tweets</category></item><item><title>Good habits create positive feedback loops</title><link>https://coryhouse.dev/2020/07/05/tweet-1279755102505644041/</link><guid isPermaLink="true">https://coryhouse.dev/2020/07/05/tweet-1279755102505644041/</guid><description>Good habits create positive feedback loops. Sleep well Exercise Eat healthy Focus during work Save money Habits interact. So one good habit fosters...</description><pubDate>Sun, 05 Jul 2020 12:32:47 GMT</pubDate><category>Tweets</category></item><item><title>Four Ways to Fetch Data in React</title><link>https://coryhouse.dev/2020/07/06/four-ways-to-fetch-data-in-react/</link><guid isPermaLink="true">https://coryhouse.dev/2020/07/06/four-ways-to-fetch-data-in-react/</guid><description>React is a focused component library. So it has no opinion on how to request remote data. If you’re requesting and sending data to web APIs via HTTP, here are f…</description><pubDate>Mon, 06 Jul 2020 13:17:31 GMT</pubDate><category>JavaScript</category><category>React</category></item><item><title>Life as a dev: Every few days, I learn something that makes me wish I could...</title><link>https://coryhouse.dev/2020/07/09/tweet-1281032006105813000/</link><guid isPermaLink="true">https://coryhouse.dev/2020/07/09/tweet-1281032006105813000/</guid><description>Life as a dev: Every few days, I learn something that makes me wish I could go back and improve my previous code.</description><pubDate>Thu, 09 Jul 2020 01:06:45 GMT</pubDate><category>Tweets</category></item><item><title>Four Reasons React Renders (and three ways to stop it)</title><link>https://coryhouse.dev/2020/07/16/four-reasons-react-renders-and-three-ways-to-stop-it/</link><guid isPermaLink="true">https://coryhouse.dev/2020/07/16/four-reasons-react-renders-and-three-ways-to-stop-it/</guid><description>There are four events that cause a React component to render: State change Prop change Parent render Context change When state changes, you can skip the render …</description><pubDate>Thu, 16 Jul 2020 11:56:22 GMT</pubDate><category>React</category></item><item><title>4 reasons React renders: 1</title><link>https://coryhouse.dev/2020/07/16/tweet-1283729857516642304/</link><guid isPermaLink="true">https://coryhouse.dev/2020/07/16/tweet-1283729857516642304/</guid><description>4 reasons React renders: 1. State change 2. Prop change 3. Parent render 4. Context change When props change or a parent renders, you can skip the...</description><pubDate>Thu, 16 Jul 2020 11:47:03 GMT</pubDate><category>Tweets</category></item><item><title>Questions to ask when picking a data structure: How many records</title><link>https://coryhouse.dev/2020/07/17/tweet-1284103385294221312/</link><guid isPermaLink="true">https://coryhouse.dev/2020/07/17/tweet-1284103385294221312/</guid><description>Questions to ask when picking a data structure: How many records? How will records be accessed? Does order matter? Does serialization size matter?...</description><pubDate>Fri, 17 Jul 2020 12:31:19 GMT</pubDate><category>Tweets</category></item><item><title>Sometimes, I want to use a React Hook in an existing class component</title><link>https://coryhouse.dev/2020/07/25/tweet-1287065150982369292/</link><guid isPermaLink="true">https://coryhouse.dev/2020/07/25/tweet-1287065150982369292/</guid><description>Sometimes, I want to use a React Hook in an existing class component. Two options: 1. Convert the class to a function 2. Wrap the Hook in a higher-...</description><pubDate>Sat, 25 Jul 2020 16:40:19 GMT</pubDate><category>Tweets</category></item><item><title>Meritocracy: Picking people based on talent rather than on class privilege...</title><link>https://coryhouse.dev/2020/07/26/tweet-1287460174693830657/</link><guid isPermaLink="true">https://coryhouse.dev/2020/07/26/tweet-1287460174693830657/</guid><description>Meritocracy: Picking people based on talent rather than on class privilege or wealth. Problem: Privilege and wealth create more opportunities for b...</description><pubDate>Sun, 26 Jul 2020 18:50:00 GMT</pubDate><category>Tweets</category></item><item><title>I ♥️ #remotework</title><link>https://coryhouse.dev/2020/07/27/tweet-1287723384802082816/</link><guid isPermaLink="true">https://coryhouse.dev/2020/07/27/tweet-1287723384802082816/</guid><description>I ♥️ #remotework. “A person with a 1 hour commute has to earn 40% more to be as satisfied with life as someone who walks to the office. For a singl...</description><pubDate>Mon, 27 Jul 2020 12:15:54 GMT</pubDate><category>Tweets</category></item><item><title>Why I prefer videos over live teaching/webinars: 1</title><link>https://coryhouse.dev/2020/07/28/tweet-1288092168926777352/</link><guid isPermaLink="true">https://coryhouse.dev/2020/07/28/tweet-1288092168926777352/</guid><description>Why I prefer videos over live teaching/webinars: 1. Carefully edited (typically) 2. I can pause it 3. No delays from people having issues 4. I can...</description><pubDate>Tue, 28 Jul 2020 12:41:19 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;ve worked remote for years</title><link>https://coryhouse.dev/2020/07/29/tweet-1288615108248317964/</link><guid isPermaLink="true">https://coryhouse.dev/2020/07/29/tweet-1288615108248317964/</guid><description>I&apos;ve worked remote for years. This year isn&apos;t like normal remote work. It&apos;s more isolating. I miss my social breaks. Travel to conferences Training...</description><pubDate>Wed, 29 Jul 2020 23:19:17 GMT</pubDate><category>Tweets</category></item><item><title>Growth mindset: I want to get better</title><link>https://coryhouse.dev/2020/08/03/tweet-1290413117533560833/</link><guid isPermaLink="true">https://coryhouse.dev/2020/08/03/tweet-1290413117533560833/</guid><description>Growth mindset: I want to get better. I&apos;m open to learning from anyone. I&apos;m searching for truth, not validation. I&apos;m not afraid of asking a stupid...</description><pubDate>Mon, 03 Aug 2020 22:23:56 GMT</pubDate><category>Tweets</category></item><item><title>Two rules that help me stick to exercise: 1</title><link>https://coryhouse.dev/2020/08/05/tweet-1291077308401549312/</link><guid isPermaLink="true">https://coryhouse.dev/2020/08/05/tweet-1291077308401549312/</guid><description>Two rules that help me stick to exercise: 1. Skipping exercise doesn&apos;t save time. Why? Because I get more done after a workout. Exercise improves m...</description><pubDate>Wed, 05 Aug 2020 18:23:12 GMT</pubDate><category>Tweets</category></item><item><title>Working over 40 hours a week in a salaried position = giving time away</title><link>https://coryhouse.dev/2020/08/06/tweet-1291380438590775301/</link><guid isPermaLink="true">https://coryhouse.dev/2020/08/06/tweet-1291380438590775301/</guid><description>Working over 40 hours a week in a salaried position = giving time away. Working nights and weekends on a side business = building a path to indepen...</description><pubDate>Thu, 06 Aug 2020 14:27:43 GMT</pubDate><category>Tweets</category></item><item><title>You don’t have to work overtime to get ahead</title><link>https://coryhouse.dev/2020/08/07/tweet-1291747885990772736/</link><guid isPermaLink="true">https://coryhouse.dev/2020/08/07/tweet-1291747885990772736/</guid><description>You don’t have to work overtime to get ahead. I started my career as “Associate Software Engineer” Over the years I got consistent raises and promo...</description><pubDate>Fri, 07 Aug 2020 14:47:50 GMT</pubDate><category>Tweets</category></item><item><title>Handy pattern: Declare a single status to replace related state</title><link>https://coryhouse.dev/2020/08/08/tweet-1292111064314851329/</link><guid isPermaLink="true">https://coryhouse.dev/2020/08/08/tweet-1292111064314851329/</guid><description>Handy pattern: Declare a single status to replace related state. I call it a &quot;poor man&apos;s state machine&quot; What term would you use to describe the pat...</description><pubDate>Sat, 08 Aug 2020 14:50:58 GMT</pubDate><category>Tweets</category></item><item><title>5 reasons I prefer React function components over class components: 1</title><link>https://coryhouse.dev/2020/08/11/tweet-1293206027333185536/</link><guid isPermaLink="true">https://coryhouse.dev/2020/08/11/tweet-1293206027333185536/</guid><description>5 reasons I prefer React function components over class components: 1. Less code 2. Simpler mental model 3. Avoids &quot;this&quot; keyword confusion 4. Shar...</description><pubDate>Tue, 11 Aug 2020 15:21:58 GMT</pubDate><category>Tweets</category></item><item><title>For people just starting React today, are classes worth learning anymore</title><link>https://coryhouse.dev/2020/08/12/tweet-1293561894985519106/</link><guid isPermaLink="true">https://coryhouse.dev/2020/08/12/tweet-1293561894985519106/</guid><description>For people just starting React today, are classes worth learning anymore? My take: Probably not. I can only think of 2 reasons to learn classes tod...</description><pubDate>Wed, 12 Aug 2020 14:56:03 GMT</pubDate><category>Tweets</category></item><item><title>To me, freedom is the game</title><link>https://coryhouse.dev/2020/08/16/tweet-1294993616889360385/</link><guid isPermaLink="true">https://coryhouse.dev/2020/08/16/tweet-1294993616889360385/</guid><description>To me, freedom is the game. Here’s how I optimize for freedom: Avoid debt and needless spending Live beneath my means Be independent - build my biz...</description><pubDate>Sun, 16 Aug 2020 13:45:12 GMT</pubDate><category>Tweets</category></item><item><title>Formik vs Plain React for Forms – Worth it?</title><link>https://coryhouse.dev/2020/08/19/formik-vs-plain-react-for-forms-worth-it/</link><guid isPermaLink="true">https://coryhouse.dev/2020/08/19/formik-vs-plain-react-for-forms-worth-it/</guid><description>I typically use plain React for forms. But I just converted a React form to use Formik. Results (sizes minified): Plain React: 130 lines of code, 46KFormik: 105…</description><pubDate>Wed, 19 Aug 2020 12:17:39 GMT</pubDate><category>JavaScript</category><category>React</category></item><item><title>I typically use plain React for forms</title><link>https://coryhouse.dev/2020/08/19/tweet-1296057420616208384/</link><guid isPermaLink="true">https://coryhouse.dev/2020/08/19/tweet-1296057420616208384/</guid><description>I typically use plain React for forms. But I just converted a form to use Formik. Results: (LOC = Lines of code) Plain React: 130 LOC, 46K Formik:...</description><pubDate>Wed, 19 Aug 2020 12:12:23 GMT</pubDate><category>Tweets</category></item><item><title>I don&apos;t need XState</title><link>https://coryhouse.dev/2020/08/19/tweet-1296132828472770561/</link><guid isPermaLink="true">https://coryhouse.dev/2020/08/19/tweet-1296132828472770561/</guid><description>I don&apos;t need XState. State enums work. I don&apos;t need MobX. Deriving state in render works. I don&apos;t need Formik. Plain React works. I don&apos;t need Redu...</description><pubDate>Wed, 19 Aug 2020 17:12:01 GMT</pubDate><category>Tweets</category></item><item><title>It&apos;s done</title><link>https://coryhouse.dev/2020/08/21/tweet-1296817981641633793/</link><guid isPermaLink="true">https://coryhouse.dev/2020/08/21/tweet-1296817981641633793/</guid><description>It&apos;s done! &quot;Managing React State&quot; is live! 🎉 This course explores 8 different ways to handle state in React apps today, and how to choose between...</description><pubDate>Fri, 21 Aug 2020 14:34:35 GMT</pubDate><category>Tweets</category></item><item><title>Woah, if you&apos;re building a component library / design system, &quot;Design...</title><link>https://coryhouse.dev/2020/08/24/tweet-1297994480071708672/</link><guid isPermaLink="true">https://coryhouse.dev/2020/08/24/tweet-1297994480071708672/</guid><description>Woah, if you&apos;re building a component library / design system, &quot;Design Systems Repo&quot; has an impressive list for inspiration: https://designsystemsre...</description><pubDate>Mon, 24 Aug 2020 20:29:34 GMT</pubDate><category>Tweets</category></item><item><title>Rhythm I’ve found: Work 2 hours, then take a long break away from the screen</title><link>https://coryhouse.dev/2020/08/25/tweet-1298088467260375041/</link><guid isPermaLink="true">https://coryhouse.dev/2020/08/25/tweet-1298088467260375041/</guid><description>Rhythm I’ve found: Work 2 hours, then take a long break away from the screen. I do ~3 focused, 2-hour work sessions/day. For breaks I lift weights,...</description><pubDate>Tue, 25 Aug 2020 02:43:02 GMT</pubDate><category>Tweets</category></item><item><title>When stuck, step away</title><link>https://coryhouse.dev/2020/08/26/tweet-1298643848009338882/</link><guid isPermaLink="true">https://coryhouse.dev/2020/08/26/tweet-1298643848009338882/</guid><description>When stuck, step away. Spent hours trying to solve what seemed like a simple problem 2 days ago. This morning, looked at it with fresh eyes. Fixed...</description><pubDate>Wed, 26 Aug 2020 15:29:55 GMT</pubDate><category>Tweets</category></item><item><title>Just finished “The Phoenix Project”</title><link>https://coryhouse.dev/2020/08/31/tweet-1300425437198286850/</link><guid isPermaLink="true">https://coryhouse.dev/2020/08/31/tweet-1300425437198286850/</guid><description>Just finished “The Phoenix Project”. Superb book on DevOps. If you aspire to improve your org’s DevOps practices, this entertaining novel tells the...</description><pubDate>Mon, 31 Aug 2020 13:29:19 GMT</pubDate><category>Tweets</category></item><item><title>Epiphany: Just wrote a test…for tests</title><link>https://coryhouse.dev/2020/09/03/tweet-1301494097421766656/</link><guid isPermaLink="true">https://coryhouse.dev/2020/09/03/tweet-1301494097421766656/</guid><description>Epiphany: Just wrote a test…for tests! Problem: We forget to create tests for new components. Solution: Write one test that assures a corresponding...</description><pubDate>Thu, 03 Sep 2020 12:15:48 GMT</pubDate><category>Tweets</category></item><item><title>Software development: It’s hard to make something easy</title><link>https://coryhouse.dev/2020/09/06/tweet-1302603262168883200/</link><guid isPermaLink="true">https://coryhouse.dev/2020/09/06/tweet-1302603262168883200/</guid><description>Software development: It’s hard to make something easy. But it’s massively rewarding when you do.</description><pubDate>Sun, 06 Sep 2020 13:43:13 GMT</pubDate><category>Tweets</category></item><item><title>Software development is about these 10 transformations</title><link>https://coryhouse.dev/2020/09/07/tweet-1302963338863874049/</link><guid isPermaLink="true">https://coryhouse.dev/2020/09/07/tweet-1302963338863874049/</guid><description>Software development is about these 10 transformations... (thread) 1. Transform manual into automatic. 2. Transform slow into fast. 3. Transform er...</description><pubDate>Mon, 07 Sep 2020 13:34:02 GMT</pubDate><category>Tweets</category></item><item><title>Years ago, I was programming in PHP</title><link>https://coryhouse.dev/2020/09/08/tweet-1303334775500025857/</link><guid isPermaLink="true">https://coryhouse.dev/2020/09/08/tweet-1303334775500025857/</guid><description>Years ago, I was programming in PHP. The company announced they were moving to off-the-shelf software. They expected me to run the new system. Inst...</description><pubDate>Tue, 08 Sep 2020 14:09:59 GMT</pubDate><category>Tweets</category></item><item><title>I’ve spent the last three days convinced my laptop had been hacked or had a...</title><link>https://coryhouse.dev/2020/09/11/tweet-1304422452504801282/</link><guid isPermaLink="true">https://coryhouse.dev/2020/09/11/tweet-1304422452504801282/</guid><description>I’ve spent the last three days convinced my laptop had been hacked or had a horrible hardware bug. Random keystrokes, mouse bouncing around, inabil...</description><pubDate>Fri, 11 Sep 2020 14:12:02 GMT</pubDate><category>Tweets</category></item><item><title>I avoid declaring React components via the concise arrow syntax</title><link>https://coryhouse.dev/2020/09/17/tweet-1306561045583069186/</link><guid isPermaLink="true">https://coryhouse.dev/2020/09/17/tweet-1306561045583069186/</guid><description>I avoid declaring React components via the concise arrow syntax. Instead, I prefer to use plain old function declarations. Here&apos;s why: 1. I can set...</description><pubDate>Thu, 17 Sep 2020 11:50:02 GMT</pubDate><category>Tweets</category></item><item><title>Just successfully deployed a React app to an AWS S3 bucket via an Azure Dev...</title><link>https://coryhouse.dev/2020/09/18/tweet-1306921342118305792/</link><guid isPermaLink="true">https://coryhouse.dev/2020/09/18/tweet-1306921342118305792/</guid><description>Just successfully deployed a React app to an AWS S3 bucket via an Azure Dev Ops CI server, using Terraform. After every merged PR, it builds, run t...</description><pubDate>Fri, 18 Sep 2020 11:41:44 GMT</pubDate><category>Tweets</category></item><item><title>Many who have have experienced work from home will never go back to...</title><link>https://coryhouse.dev/2020/09/21/tweet-1308117314445996034/</link><guid isPermaLink="true">https://coryhouse.dev/2020/09/21/tweet-1308117314445996034/</guid><description>Many who have have experienced work from home will never go back to full-time office work. They&apos;ve tasted the benefits: - No commute - Pick your wo...</description><pubDate>Mon, 21 Sep 2020 18:54:06 GMT</pubDate><category>Tweets</category></item><item><title>Just read “The Psychology of Money”</title><link>https://coryhouse.dev/2020/09/27/tweet-1310009882939142146/</link><guid isPermaLink="true">https://coryhouse.dev/2020/09/27/tweet-1310009882939142146/</guid><description>Just read “The Psychology of Money”. Superb.🔥 Key point: The best benefit from saving is the ability to own your time. People who control their ti...</description><pubDate>Sun, 27 Sep 2020 00:14:29 GMT</pubDate><category>Tweets</category></item><item><title>What college is selling: 1</title><link>https://coryhouse.dev/2020/09/28/tweet-1310589782108536834/</link><guid isPermaLink="true">https://coryhouse.dev/2020/09/28/tweet-1310589782108536834/</guid><description>What college is selling: 1. Membership to an elite club 2. A certificate to help open doors 3. A motivational whip at your back 4. A clear, “safe”...</description><pubDate>Mon, 28 Sep 2020 14:38:48 GMT</pubDate><category>Tweets</category></item><item><title>My opinion on TypeScript changed because the environment around it changed</title><link>https://coryhouse.dev/2020/10/05/tweet-1313100207144472578/</link><guid isPermaLink="true">https://coryhouse.dev/2020/10/05/tweet-1313100207144472578/</guid><description>My opinion on TypeScript changed because the environment around it changed. Babel compiles TS. ESLint supports TS. Editors support TS. create-react...</description><pubDate>Mon, 05 Oct 2020 12:54:20 GMT</pubDate><category>Tweets</category></item><item><title>I am anti &quot;foo&quot;</title><link>https://coryhouse.dev/2020/10/06/tweet-1313452856524107778/</link><guid isPermaLink="true">https://coryhouse.dev/2020/10/06/tweet-1313452856524107778/</guid><description>I am anti &quot;foo&quot;. Why? Because &quot;foo&quot; typically confuses rather than clarifies. My preference: Use *realistic* values and identifiers that convey rea...</description><pubDate>Tue, 06 Oct 2020 12:15:38 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;ll admit it: For the first 10 years of my career, I thought tests were a...</title><link>https://coryhouse.dev/2020/10/12/tweet-1315684915640438791/</link><guid isPermaLink="true">https://coryhouse.dev/2020/10/12/tweet-1315684915640438791/</guid><description>I&apos;ll admit it: For the first 10 years of my career, I thought tests were a waste of time. Now I realize tests *save* me time. How tests help: ✅ Run...</description><pubDate>Mon, 12 Oct 2020 16:05:02 GMT</pubDate><category>Tweets</category></item><item><title>Fallacy: To stay busy, go broad</title><link>https://coryhouse.dev/2020/10/14/tweet-1316364893038223363/</link><guid isPermaLink="true">https://coryhouse.dev/2020/10/14/tweet-1316364893038223363/</guid><description>Fallacy: To stay busy, go broad. Offer many services. Reality: To stay busy, be exceptional at one thing. It&apos;s surprising how small you can niche d...</description><pubDate>Wed, 14 Oct 2020 13:07:02 GMT</pubDate><category>Tweets</category></item><item><title>A team without documented, repeatable processes is out of control</title><link>https://coryhouse.dev/2020/10/21/tweet-1318970017015320576/</link><guid isPermaLink="true">https://coryhouse.dev/2020/10/21/tweet-1318970017015320576/</guid><description>A team without documented, repeatable processes is out of control. Questions the docs should answer: How do I run the app? What is our definition o...</description><pubDate>Wed, 21 Oct 2020 17:38:51 GMT</pubDate><category>Tweets</category></item><item><title>The #1 answer I hear from teams that don’t write automated tests: “We don’t...</title><link>https://coryhouse.dev/2020/10/22/tweet-1319249840715476999/</link><guid isPermaLink="true">https://coryhouse.dev/2020/10/22/tweet-1319249840715476999/</guid><description>The #1 answer I hear from teams that don’t write automated tests: “We don’t have time.” I interpret this to mean two things: 1. Management doesn’t...</description><pubDate>Thu, 22 Oct 2020 12:10:47 GMT</pubDate><category>Tweets</category></item><item><title>Low-stress life recipe: Early to bed</title><link>https://coryhouse.dev/2020/10/23/tweet-1319611839345471489/</link><guid isPermaLink="true">https://coryhouse.dev/2020/10/23/tweet-1319611839345471489/</guid><description>Low-stress life recipe: Early to bed. Wake naturally. No alarm. Exercise early. Work from home. Set my own schedule. Specialize in work I enjoy. Av...</description><pubDate>Fri, 23 Oct 2020 12:09:14 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m considering writing another React related course on @pluralsight</title><link>https://coryhouse.dev/2020/10/29/tweet-1321785694075965440/</link><guid isPermaLink="true">https://coryhouse.dev/2020/10/29/tweet-1321785694075965440/</guid><description>I&apos;m considering writing another React related course on @pluralsight. What course would you like to see me create? #reactjs #react</description><pubDate>Thu, 29 Oct 2020 12:07:21 GMT</pubDate><category>Tweets</category></item><item><title>How to create a life of stress: Overcommit</title><link>https://coryhouse.dev/2020/10/30/tweet-1322172949470810113/</link><guid isPermaLink="true">https://coryhouse.dev/2020/10/30/tweet-1322172949470810113/</guid><description>How to create a life of stress: Overcommit. Say yes to everyone. Go broad. Try to know everything and be useful to everyone. Spend more than you ea...</description><pubDate>Fri, 30 Oct 2020 13:46:10 GMT</pubDate><category>Tweets</category></item><item><title>After coding in TypeScript, plain JavaScript feels like doing acrobatics...</title><link>https://coryhouse.dev/2020/10/30/tweet-1322256983752364037/</link><guid isPermaLink="true">https://coryhouse.dev/2020/10/30/tweet-1322256983752364037/</guid><description>After coding in TypeScript, plain JavaScript feels like doing acrobatics without a net. So when I work in plain JS, here&apos;s a setting I enjoy: Tell...</description><pubDate>Fri, 30 Oct 2020 19:20:05 GMT</pubDate><category>Tweets</category></item><item><title>How I became a conference speaker: Someone said “Why aren’t you speaking?”...</title><link>https://coryhouse.dev/2020/10/31/tweet-1322530506844573696/</link><guid isPermaLink="true">https://coryhouse.dev/2020/10/31/tweet-1322530506844573696/</guid><description>How I became a conference speaker: Someone said “Why aren’t you speaking?” How I became an author: Someone said “why don’t you author a course?” On...</description><pubDate>Sat, 31 Oct 2020 13:26:58 GMT</pubDate><category>Tweets</category></item><item><title>An organization that doesn&apos;t document effectively, cannot grow efficiently</title><link>https://coryhouse.dev/2020/11/03/tweet-1323707510470004736/</link><guid isPermaLink="true">https://coryhouse.dev/2020/11/03/tweet-1323707510470004736/</guid><description>An organization that doesn&apos;t document effectively, cannot grow efficiently. Why? Because it can’t efficiently share knowledge as the org grows. So,...</description><pubDate>Tue, 03 Nov 2020 19:23:58 GMT</pubDate><category>Tweets</category></item><item><title>TIL about the URL constructor</title><link>https://coryhouse.dev/2020/11/05/tweet-1324342348667592704/</link><guid isPermaLink="true">https://coryhouse.dev/2020/11/05/tweet-1324342348667592704/</guid><description>TIL about the URL constructor. A safe and clear way to dynamically build a URL, one piece at a time. More: https://developer.mozilla.org/en-US/docs...</description><pubDate>Thu, 05 Nov 2020 13:26:35 GMT</pubDate><category>Tweets</category></item><item><title>Avoid creating flexible React components with many props</title><link>https://coryhouse.dev/2020/11/06/tweet-1324697574318755840/</link><guid isPermaLink="true">https://coryhouse.dev/2020/11/06/tweet-1324697574318755840/</guid><description>Avoid creating flexible React components with many props. Instead, start &quot;rigid&quot; (few props). Benefits: Enforce consistency Simpler code Easy to un...</description><pubDate>Fri, 06 Nov 2020 12:58:08 GMT</pubDate><category>Tweets</category></item><item><title>Woah, npm 7 automatically installs peer dependencies:...</title><link>https://coryhouse.dev/2020/11/08/tweet-1325524945334661121/</link><guid isPermaLink="true">https://coryhouse.dev/2020/11/08/tweet-1325524945334661121/</guid><description>Woah, npm 7 automatically installs peer dependencies: https://github.blog/2020-10-13-presenting-v7-0-0-of-the-npm-cli/ This will bite people. Examp...</description><pubDate>Sun, 08 Nov 2020 19:45:48 GMT</pubDate><category>Tweets</category></item><item><title>“We all have the same 24 hours a day”</title><link>https://coryhouse.dev/2020/11/08/tweet-1325553928654778371/</link><guid isPermaLink="true">https://coryhouse.dev/2020/11/08/tweet-1325553928654778371/</guid><description>“We all have the same 24 hours a day”. No we don’t. Some have less: -Health issues -Caring for others -Unreliable car, home -Low pay job that requi...</description><pubDate>Sun, 08 Nov 2020 21:40:58 GMT</pubDate><category>Tweets</category></item><item><title>Many companies use Confluence, Dropbox, etc for project docs</title><link>https://coryhouse.dev/2020/11/09/tweet-1325918736918999041/</link><guid isPermaLink="true">https://coryhouse.dev/2020/11/09/tweet-1325918736918999041/</guid><description>Many companies use Confluence, Dropbox, etc for project docs. I prefer a http://README.md, stored in the repo. Easy to find Can link to local files...</description><pubDate>Mon, 09 Nov 2020 21:50:35 GMT</pubDate><category>Tweets</category></item><item><title>6 Signs a Dev Team is Out of Control</title><link>https://coryhouse.dev/2020/11/11/6-signs-a-dev-team-is-out-of-control/</link><guid isPermaLink="true">https://coryhouse.dev/2020/11/11/6-signs-a-dev-team-is-out-of-control/</guid><description>“We don’t have time to write tests.” “We don’t have time for code reviews.” “We don’t have time to set up a CI server.” “We don’t have time to automate deploys.…</description><pubDate>Wed, 11 Nov 2020 12:26:58 GMT</pubDate><category>Clean Code</category><category>Methodology</category><category>Source Control</category></item><item><title>6 signs a dev team is out of control: We don&apos;t have time to write tests</title><link>https://coryhouse.dev/2020/11/11/tweet-1326495321648730113/</link><guid isPermaLink="true">https://coryhouse.dev/2020/11/11/tweet-1326495321648730113/</guid><description>6 signs a dev team is out of control: We don&apos;t have time to write tests. We don&apos;t have time for code reviews. We don&apos;t have time to set up a CI ser...</description><pubDate>Wed, 11 Nov 2020 12:01:44 GMT</pubDate><category>Tweets</category></item><item><title>9 things that I&apos;ve found improve development team velocity: - Mock APIs -...</title><link>https://coryhouse.dev/2020/11/18/tweet-1329121329187069953/</link><guid isPermaLink="true">https://coryhouse.dev/2020/11/18/tweet-1329121329187069953/</guid><description>9 things that I&apos;ve found improve development team velocity: - Mock APIs - Static types - Fast CI builds - Fast feedback loops - Small, focused tick...</description><pubDate>Wed, 18 Nov 2020 17:56:33 GMT</pubDate><category>Tweets</category></item><item><title>TIL the browser&apos;s built-in form validation features are surprisingly robust</title><link>https://coryhouse.dev/2020/11/23/tweet-1330871889867264004/</link><guid isPermaLink="true">https://coryhouse.dev/2020/11/23/tweet-1330871889867264004/</guid><description>TIL the browser&apos;s built-in form validation features are surprisingly robust. 1. Declare attributes like required, min, max, minLength, maxLength, a...</description><pubDate>Mon, 23 Nov 2020 13:52:39 GMT</pubDate><category>Tweets</category></item><item><title>One of the most persistent rules of software: Adding more people to a late...</title><link>https://coryhouse.dev/2020/11/23/tweet-1330986963818713091/</link><guid isPermaLink="true">https://coryhouse.dev/2020/11/23/tweet-1330986963818713091/</guid><description>One of the most persistent rules of software: Adding more people to a late project makes it later. Why? Because adding people adds overhead: -Stop...</description><pubDate>Mon, 23 Nov 2020 21:29:55 GMT</pubDate><category>Tweets</category></item><item><title>My favorite benefit of going independent: freedom</title><link>https://coryhouse.dev/2020/11/24/tweet-1331245344567554048/</link><guid isPermaLink="true">https://coryhouse.dev/2020/11/24/tweet-1331245344567554048/</guid><description>My favorite benefit of going independent: freedom. I pick my projects. I pick my equipment. I pick when and where I work. So when I work, I’m happi...</description><pubDate>Tue, 24 Nov 2020 14:36:38 GMT</pubDate><category>Tweets</category></item><item><title>On React&apos;s useEffect Hook: &quot;I try to describe the effects I write by saying...</title><link>https://coryhouse.dev/2020/11/26/tweet-1331788987858563078/</link><guid isPermaLink="true">https://coryhouse.dev/2020/11/26/tweet-1331788987858563078/</guid><description>On React&apos;s useEffect Hook: &quot;I try to describe the effects I write by saying “when [dependencies] change do this” to myself. If this sentence contai...</description><pubDate>Thu, 26 Nov 2020 02:36:52 GMT</pubDate><category>Tweets</category></item><item><title>Today I’m thankful for: A healthy family</title><link>https://coryhouse.dev/2020/11/26/tweet-1331991674814410753/</link><guid isPermaLink="true">https://coryhouse.dev/2020/11/26/tweet-1331991674814410753/</guid><description>Today I’m thankful for: A healthy family. ❤️ A career I still enjoy after 20 years. 👨‍💻 My courses have been watched by over 800k devs. 🎉 A succ...</description><pubDate>Thu, 26 Nov 2020 16:02:17 GMT</pubDate><category>Tweets</category></item><item><title>I buy a new laptop every 1-2 years</title><link>https://coryhouse.dev/2020/11/27/tweet-1332422016616587264/</link><guid isPermaLink="true">https://coryhouse.dev/2020/11/27/tweet-1332422016616587264/</guid><description>I buy a new laptop every 1-2 years. Here’s why: 1. It makes me money. 2. It’s a business tax deduction. 3. Buying a fast machine is like buying tim...</description><pubDate>Fri, 27 Nov 2020 20:32:18 GMT</pubDate><category>Tweets</category></item><item><title>Just joined a project</title><link>https://coryhouse.dev/2020/11/28/tweet-1332690901425139714/</link><guid isPermaLink="true">https://coryhouse.dev/2020/11/28/tweet-1332690901425139714/</guid><description>Just joined a project. The app requires 10 manual steps before I can start coding each day. 👎 Before building my first feature, I&apos;m automating the...</description><pubDate>Sat, 28 Nov 2020 14:20:45 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m working on two similar projects</title><link>https://coryhouse.dev/2020/11/29/tweet-1333086120633110529/</link><guid isPermaLink="true">https://coryhouse.dev/2020/11/29/tweet-1333086120633110529/</guid><description>I&apos;m working on two similar projects. One is written in plain JS. The other in TypeScript. In JS, I finish coding sooner. But, then I spend more tim...</description><pubDate>Sun, 29 Nov 2020 16:31:13 GMT</pubDate><category>Tweets</category></item><item><title>5 skills of successful developers: Communication - Clear writing, speech,...</title><link>https://coryhouse.dev/2020/12/01/tweet-1333799355589959680/</link><guid isPermaLink="true">https://coryhouse.dev/2020/12/01/tweet-1333799355589959680/</guid><description>5 skills of successful developers: Communication - Clear writing, speech, and code. Organization - Logically groups and names things. Curiosity - L...</description><pubDate>Tue, 01 Dec 2020 15:45:21 GMT</pubDate><category>Tweets</category></item><item><title>If a team has no automated tests, it&apos;s hard to get started</title><link>https://coryhouse.dev/2020/12/04/tweet-1334888069942702080/</link><guid isPermaLink="true">https://coryhouse.dev/2020/12/04/tweet-1334888069942702080/</guid><description>If a team has no automated tests, it&apos;s hard to get started. Why? Because there are many decisions to make: Testing lib Where to store tests Mocking...</description><pubDate>Fri, 04 Dec 2020 15:51:31 GMT</pubDate><category>Tweets</category></item><item><title>As a kid, I looked at exotic cars and thought “It would be awesome to own...</title><link>https://coryhouse.dev/2020/12/05/tweet-1335372407159345152/</link><guid isPermaLink="true">https://coryhouse.dev/2020/12/05/tweet-1335372407159345152/</guid><description>As a kid, I looked at exotic cars and thought “It would be awesome to own that!” As an adult, I look at exotic cars and think “that would be outrag...</description><pubDate>Sat, 05 Dec 2020 23:56:06 GMT</pubDate><category>Tweets</category></item><item><title>Two questions that changed my life: 1</title><link>https://coryhouse.dev/2020/12/08/tweet-1336319303562432512/</link><guid isPermaLink="true">https://coryhouse.dev/2020/12/08/tweet-1336319303562432512/</guid><description>Two questions that changed my life: 1. What would you do if you didn’t have to work? 2. How can you start doing some of that now?</description><pubDate>Tue, 08 Dec 2020 14:38:44 GMT</pubDate><category>Tweets</category></item><item><title>6 techniques for managing large datasets in React: 1.Pagination 2.Lazy...</title><link>https://coryhouse.dev/2020/12/10/tweet-1337073677893070849/</link><guid isPermaLink="true">https://coryhouse.dev/2020/12/10/tweet-1337073677893070849/</guid><description>6 techniques for managing large datasets in React: 1.Pagination 2.Lazy loading / Infinite scroll 3.Windowing 4.Eliminate needless renders 5.Impleme...</description><pubDate>Thu, 10 Dec 2020 16:36:21 GMT</pubDate><category>Tweets</category></item><item><title>I don’t ask if I can write tests</title><link>https://coryhouse.dev/2020/12/13/tweet-1338119101026357251/</link><guid isPermaLink="true">https://coryhouse.dev/2020/12/13/tweet-1338119101026357251/</guid><description>I don’t ask if I can write tests. I don’t ask if I can spend time refactoring before I commit. I don’t ask if I can make the UI accessible. I don’t...</description><pubDate>Sun, 13 Dec 2020 13:50:29 GMT</pubDate><category>Tweets</category></item><item><title>Regex are hard to write, and even harder to read</title><link>https://coryhouse.dev/2020/12/17/tweet-1339409588345593856/</link><guid isPermaLink="true">https://coryhouse.dev/2020/12/17/tweet-1339409588345593856/</guid><description>Regex are hard to write, and even harder to read. A technique that helps: 1. Declare the regex as a well-named const. 2. Write automated tests on t...</description><pubDate>Thu, 17 Dec 2020 03:18:25 GMT</pubDate><category>Tweets</category></item><item><title>My son (12) has learned JavaScript over the last 2 years</title><link>https://coryhouse.dev/2020/12/19/tweet-1340424875517878275/</link><guid isPermaLink="true">https://coryhouse.dev/2020/12/19/tweet-1340424875517878275/</guid><description>My son (12) has learned JavaScript over the last 2 years. He struggles with picking good variable names. This leads to confusion about what his cod...</description><pubDate>Sat, 19 Dec 2020 22:32:48 GMT</pubDate><category>Tweets</category></item><item><title>3 skills that make coding easier: Organization - Recognizing and grouping...</title><link>https://coryhouse.dev/2020/12/20/tweet-1340677477350432768/</link><guid isPermaLink="true">https://coryhouse.dev/2020/12/20/tweet-1340677477350432768/</guid><description>3 skills that make coding easier: Organization - Recognizing and grouping related items Naming - Describing things clearly, yet succinctly Decompos...</description><pubDate>Sun, 20 Dec 2020 15:16:33 GMT</pubDate><category>Tweets</category></item><item><title>Just joined a TypeScript project</title><link>https://coryhouse.dev/2020/12/23/tweet-1341840493269954560/</link><guid isPermaLink="true">https://coryhouse.dev/2020/12/23/tweet-1341840493269954560/</guid><description>Just joined a TypeScript project. I noticed an opportunity for refactoring. In JS, I’m more hesitant to change code. Even with tests, I fear missin...</description><pubDate>Wed, 23 Dec 2020 20:17:58 GMT</pubDate><category>Tweets</category></item><item><title>A reminder on why the industry started rendering on the client: Partial page...</title><link>https://coryhouse.dev/2020/12/24/tweet-1342130112649715718/</link><guid isPermaLink="true">https://coryhouse.dev/2020/12/24/tweet-1342130112649715718/</guid><description>A reminder on why the industry started rendering on the client: Partial page loads Instant client-side routing Animated interactions and transition...</description><pubDate>Thu, 24 Dec 2020 15:28:49 GMT</pubDate><category>Tweets</category></item><item><title>Toyota dealer wanted $470 to change the spark plugs</title><link>https://coryhouse.dev/2020/12/25/tweet-1342293630330036224/</link><guid isPermaLink="true">https://coryhouse.dev/2020/12/25/tweet-1342293630330036224/</guid><description>Toyota dealer wanted $470 to change the spark plugs. (Transverse mounted V6, so rear bank is tricky). Took a couple hours, but I just finished the...</description><pubDate>Fri, 25 Dec 2020 02:18:34 GMT</pubDate><category>Tweets</category></item><item><title>Early in my career, I pushed back on unfamiliar tasks</title><link>https://coryhouse.dev/2020/12/28/tweet-1343647608460472325/</link><guid isPermaLink="true">https://coryhouse.dev/2020/12/28/tweet-1343647608460472325/</guid><description>Early in my career, I pushed back on unfamiliar tasks. I said “I don’t know how to do that. I’ve never done that before.” Then I realized: In devel...</description><pubDate>Mon, 28 Dec 2020 19:58:48 GMT</pubDate><category>Tweets</category></item><item><title>On React components, I prefer false defaults for boolean props</title><link>https://coryhouse.dev/2021/01/01/tweet-1344989502998249472/</link><guid isPermaLink="true">https://coryhouse.dev/2021/01/01/tweet-1344989502998249472/</guid><description>On React components, I prefer false defaults for boolean props. Why? Because I can set the prop with less code. &lt;Modal show={false} /&gt; 👎 &amp;lt...</description><pubDate>Fri, 01 Jan 2021 12:51:00 GMT</pubDate><category>Tweets</category></item><item><title>When something is hard to type in TypeScript, I often find that’s a sign I...</title><link>https://coryhouse.dev/2021/01/02/tweet-1345384008495099905/</link><guid isPermaLink="true">https://coryhouse.dev/2021/01/02/tweet-1345384008495099905/</guid><description>When something is hard to type in TypeScript, I often find that’s a sign I should rethink my data structures and function signatures. So TypeScript...</description><pubDate>Sat, 02 Jan 2021 14:58:38 GMT</pubDate><category>Tweets</category></item><item><title>It&apos;s fascinating how differently I view a problem after a good night&apos;s sleep</title><link>https://coryhouse.dev/2021/01/05/tweet-1346542792097591297/</link><guid isPermaLink="true">https://coryhouse.dev/2021/01/05/tweet-1346542792097591297/</guid><description>It&apos;s fascinating how differently I view a problem after a good night&apos;s sleep. Today I woke up and immediately solved a problem that stumped me yest...</description><pubDate>Tue, 05 Jan 2021 19:43:13 GMT</pubDate><category>Tweets</category></item><item><title>3 things I can influence: 1</title><link>https://coryhouse.dev/2021/01/07/tweet-1347194493309751296/</link><guid isPermaLink="true">https://coryhouse.dev/2021/01/07/tweet-1347194493309751296/</guid><description>3 things I can influence: 1. My physical health (via exercise and diet) 2. My mental health (via my relationships, my habits, and the content I con...</description><pubDate>Thu, 07 Jan 2021 14:52:51 GMT</pubDate><category>Tweets</category></item><item><title>In poorly-structured companies, the hardest part of software development is...</title><link>https://coryhouse.dev/2021/01/08/tweet-1347567275570847752/</link><guid isPermaLink="true">https://coryhouse.dev/2021/01/08/tweet-1347567275570847752/</guid><description>In poorly-structured companies, the hardest part of software development is overcoming the barriers to actually writing code. Common barriers: ❌ Mi...</description><pubDate>Fri, 08 Jan 2021 15:34:09 GMT</pubDate><category>Tweets</category></item><item><title>It&apos;s surprising how many REST APIs lack useful docs</title><link>https://coryhouse.dev/2021/01/08/tweet-1347619005096480770/</link><guid isPermaLink="true">https://coryhouse.dev/2021/01/08/tweet-1347619005096480770/</guid><description>It&apos;s surprising how many REST APIs lack useful docs. Useful docs should include: - BaseURLs for all environments - Potential HTTP response codes -...</description><pubDate>Fri, 08 Jan 2021 18:59:43 GMT</pubDate><category>Tweets</category></item><item><title>Some teams call tasks “done” when they’re not done</title><link>https://coryhouse.dev/2021/01/11/tweet-1348631008036454406/</link><guid isPermaLink="true">https://coryhouse.dev/2021/01/11/tweet-1348631008036454406/</guid><description>Some teams call tasks “done” when they’re not done. It’s not done until its: Tested Secure Reliable Accessible Performant Configurable Maintainable...</description><pubDate>Mon, 11 Jan 2021 14:01:03 GMT</pubDate><category>Tweets</category></item><item><title>React = reusable components</title><link>https://coryhouse.dev/2021/01/12/tweet-1348982875182555139/</link><guid isPermaLink="true">https://coryhouse.dev/2021/01/12/tweet-1348982875182555139/</guid><description>React = reusable components. Typescript = reusable types. So with TypeScript, I know my reusable components are passed the exact shape they require...</description><pubDate>Tue, 12 Jan 2021 13:19:14 GMT</pubDate><category>Tweets</category></item><item><title>Mistake 1: Ignoring new tech, so I end up doing things the old/hard way</title><link>https://coryhouse.dev/2021/01/13/tweet-1349382761208029184/</link><guid isPermaLink="true">https://coryhouse.dev/2021/01/13/tweet-1349382761208029184/</guid><description>Mistake 1: Ignoring new tech, so I end up doing things the old/hard way. Mistake 2: Being so busy toying with new tech that I never get very good a...</description><pubDate>Wed, 13 Jan 2021 15:48:15 GMT</pubDate><category>Tweets</category></item><item><title>Coding without tests, static types, code reviews, and CI is like...</title><link>https://coryhouse.dev/2021/01/17/tweet-1350847669556678660/</link><guid isPermaLink="true">https://coryhouse.dev/2021/01/17/tweet-1350847669556678660/</guid><description>Coding without tests, static types, code reviews, and CI is like constructing a building without a shared blueprint or frequent inspections. In the...</description><pubDate>Sun, 17 Jan 2021 16:49:16 GMT</pubDate><category>Tweets</category></item><item><title>My favorite financial habits: 1</title><link>https://coryhouse.dev/2021/01/18/tweet-1351186371315183616/</link><guid isPermaLink="true">https://coryhouse.dev/2021/01/18/tweet-1351186371315183616/</guid><description>My favorite financial habits: 1. Automatically invest monthly in low cost index funds (VTSAX, FZROX). Buy and hold. 2. Track net worth. 3. Use poin...</description><pubDate>Mon, 18 Jan 2021 15:15:09 GMT</pubDate><category>Tweets</category></item><item><title>Pro athletes do drills to improve</title><link>https://coryhouse.dev/2021/01/19/tweet-1351547634847199233/</link><guid isPermaLink="true">https://coryhouse.dev/2021/01/19/tweet-1351547634847199233/</guid><description>Pro athletes do drills to improve. Developers can too: 1. Practice new keyboard shortcuts 2. Do coding katas 3. Read open source code 4. Write a li...</description><pubDate>Tue, 19 Jan 2021 15:10:41 GMT</pubDate><category>Tweets</category></item><item><title>A surprising way to make significantly more money: Work for free</title><link>https://coryhouse.dev/2021/01/21/tweet-1352266022817038337/</link><guid isPermaLink="true">https://coryhouse.dev/2021/01/21/tweet-1352266022817038337/</guid><description>A surprising way to make significantly more money: Work for free. Work “for free” in the short-term, in exchange for a chance of a big payout in th...</description><pubDate>Thu, 21 Jan 2021 14:45:18 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m starting to think the greatest advantage of being independent is being...</title><link>https://coryhouse.dev/2021/01/22/tweet-1352594101070344193/</link><guid isPermaLink="true">https://coryhouse.dev/2021/01/22/tweet-1352594101070344193/</guid><description>I&apos;m starting to think the greatest advantage of being independent is being able to stop work whenever I feel stuck. Yesterday I was stumped on a te...</description><pubDate>Fri, 22 Jan 2021 12:28:58 GMT</pubDate><category>Tweets</category></item><item><title>React Server Components in 5 Minutes</title><link>https://coryhouse.dev/2021/01/24/react-server-components-in-5-minutes/</link><guid isPermaLink="true">https://coryhouse.dev/2021/01/24/react-server-components-in-5-minutes/</guid><description>I’m excited about React Server Components. In this post, I will summarize the benefits and limitations in a few quick points. For more details, check out the Fa…</description><pubDate>Sun, 24 Jan 2021 19:53:20 GMT</pubDate><category>JavaScript</category><category>React</category></item><item><title>Two fundamental risks I mitigate: 1</title><link>https://coryhouse.dev/2021/01/24/tweet-1353357794288742406/</link><guid isPermaLink="true">https://coryhouse.dev/2021/01/24/tweet-1353357794288742406/</guid><description>Two fundamental risks I mitigate: 1. Health problems How: ✅ Eat well ✅ Exercise daily ✅ Sleep without an alarm clock ✅ Design a low-stress life ✅ B...</description><pubDate>Sun, 24 Jan 2021 15:03:36 GMT</pubDate><category>Tweets</category></item><item><title>Adding Custom Testing Library Queries</title><link>https://coryhouse.dev/2021/01/25/adding-custom-testing-library-queries/</link><guid isPermaLink="true">https://coryhouse.dev/2021/01/25/adding-custom-testing-library-queries/</guid><description>Testing Library is great. But it’s lacking a few queries I would find useful. Here’s an example of enhancing Cypress Testing Library with a plain function: I of…</description><pubDate>Mon, 25 Jan 2021 13:43:31 GMT</pubDate><category>JavaScript</category><category>Testing</category></item><item><title>If you write tests with @TestingLib, here&apos;s a handy tool:...</title><link>https://coryhouse.dev/2021/01/25/tweet-1353699048767811584/</link><guid isPermaLink="true">https://coryhouse.dev/2021/01/25/tweet-1353699048767811584/</guid><description>If you write tests with @TestingLib, here&apos;s a handy tool: http://testing-playground.com This is a handy environment for testing queries in isolatio...</description><pubDate>Mon, 25 Jan 2021 13:39:38 GMT</pubDate><category>Tweets</category></item><item><title>While working on a ticket, I&apos;m often tempted to fix/improve unrelated code</title><link>https://coryhouse.dev/2021/01/26/tweet-1354157345195126787/</link><guid isPermaLink="true">https://coryhouse.dev/2021/01/26/tweet-1354157345195126787/</guid><description>While working on a ticket, I&apos;m often tempted to fix/improve unrelated code. I&apos;ve learned to open a ticket to document the issue instead. This helps...</description><pubDate>Tue, 26 Jan 2021 20:00:44 GMT</pubDate><category>Tweets</category></item><item><title>Why I ♥️ being a software developer: -Good pay -Fast feedback -1000’s of...</title><link>https://coryhouse.dev/2021/01/27/tweet-1354474726983397387/</link><guid isPermaLink="true">https://coryhouse.dev/2021/01/27/tweet-1354474726983397387/</guid><description>Why I ♥️ being a software developer: -Good pay -Fast feedback -1000’s of free tools -Undo costs me nothing -I can automate repetitive tasks -Genero...</description><pubDate>Wed, 27 Jan 2021 17:01:54 GMT</pubDate><category>Tweets</category></item><item><title>Software tradeoffs: Build vs Buy Reuse vs Copy Sync vs Async Serial vs...</title><link>https://coryhouse.dev/2021/01/29/tweet-1355144710185230336/</link><guid isPermaLink="true">https://coryhouse.dev/2021/01/29/tweet-1355144710185230336/</guid><description>Software tradeoffs: Build vs Buy Reuse vs Copy Sync vs Async Serial vs Parallel Dynamic vs Static Concise vs Explicit Unified vs Separate Secure vs...</description><pubDate>Fri, 29 Jan 2021 13:24:10 GMT</pubDate><category>Tweets</category></item><item><title>5 books that improved my life - and their big idea: Ego is the Enemy - Be...</title><link>https://coryhouse.dev/2021/01/31/tweet-1355896184100057088/</link><guid isPermaLink="true">https://coryhouse.dev/2021/01/31/tweet-1355896184100057088/</guid><description>5 books that improved my life - and their big idea: Ego is the Enemy - Be humble The Happiness Advantage - Be optimistic The Power of Habit - Build...</description><pubDate>Sun, 31 Jan 2021 15:10:16 GMT</pubDate><category>Tweets</category></item><item><title>My favorite way to wrap text in an HTML tag in VS Code: Use Emmet</title><link>https://coryhouse.dev/2021/01/31/tweet-1355944153851572224/</link><guid isPermaLink="true">https://coryhouse.dev/2021/01/31/tweet-1355944153851572224/</guid><description>My favorite way to wrap text in an HTML tag in VS Code: Use Emmet. 1. Open the command palette (Cmd+Shift+P) 2. Execute &quot;Emmet: Wrap with Abbreviat...</description><pubDate>Sun, 31 Jan 2021 18:20:53 GMT</pubDate><category>Tweets</category></item><item><title>Developer tip: If you&apos;re unclear about your task, speak up</title><link>https://coryhouse.dev/2021/02/01/tweet-1356296973112979456/</link><guid isPermaLink="true">https://coryhouse.dev/2021/02/01/tweet-1356296973112979456/</guid><description>Developer tip: If you&apos;re unclear about your task, speak up. Don&apos;t worry about asking a &quot;dumb&quot; question. Instead, worry about wasting hours going in...</description><pubDate>Mon, 01 Feb 2021 17:42:51 GMT</pubDate><category>Tweets</category></item><item><title>I prefer small, focused pull requests</title><link>https://coryhouse.dev/2021/02/03/tweet-1356955912137826306/</link><guid isPermaLink="true">https://coryhouse.dev/2021/02/03/tweet-1356955912137826306/</guid><description>I prefer small, focused pull requests. They&apos;re easier to code review, and foster rapid feedback. How to encourage small PRs: Small tickets Fast CI...</description><pubDate>Wed, 03 Feb 2021 13:21:15 GMT</pubDate><category>Tweets</category></item><item><title>I rarely use these React performance features: React.memo useCallback...</title><link>https://coryhouse.dev/2021/02/08/tweet-1358791451665178634/</link><guid isPermaLink="true">https://coryhouse.dev/2021/02/08/tweet-1358791451665178634/</guid><description>I rarely use these React performance features: React.memo useCallback useMemo If I have a performance issue, I usually find I made a mistake or am...</description><pubDate>Mon, 08 Feb 2021 14:55:01 GMT</pubDate><category>Tweets</category></item><item><title>Occasionally I review React code bases where React.memo and useCallback are...</title><link>https://coryhouse.dev/2021/02/08/tweet-1358799324822593540/</link><guid isPermaLink="true">https://coryhouse.dev/2021/02/08/tweet-1358799324822593540/</guid><description>Occasionally I review React code bases where React.memo and useCallback are used everywhere. Don’t do that. It usually costs more than it saves. If...</description><pubDate>Mon, 08 Feb 2021 15:26:18 GMT</pubDate><category>Tweets</category></item><item><title>What I look for in a pull request: ✅ As small as practical ✅ Focused on one...</title><link>https://coryhouse.dev/2021/02/10/tweet-1359512312449753091/</link><guid isPermaLink="true">https://coryhouse.dev/2021/02/10/tweet-1359512312449753091/</guid><description>What I look for in a pull request: ✅ As small as practical ✅ Focused on one thing ✅ Tied to a well-documented issue ✅ Has comprehensive tests ✅ Inc...</description><pubDate>Wed, 10 Feb 2021 14:39:28 GMT</pubDate><category>Tweets</category></item><item><title>Over the years, I&apos;ve hired dozens of devs</title><link>https://coryhouse.dev/2021/02/11/tweet-1359850917756080130/</link><guid isPermaLink="true">https://coryhouse.dev/2021/02/11/tweet-1359850917756080130/</guid><description>Over the years, I&apos;ve hired dozens of devs. The devs that didn&apos;t work out: 🚩Claimed to understand when they clearly didn&apos;t 🚩Often said &quot;I&apos;ll be do...</description><pubDate>Thu, 11 Feb 2021 13:04:58 GMT</pubDate><category>Tweets</category></item><item><title>If I constantly search for better approaches, I’ll rarely get anything done</title><link>https://coryhouse.dev/2021/02/12/tweet-1360240064417136656/</link><guid isPermaLink="true">https://coryhouse.dev/2021/02/12/tweet-1360240064417136656/</guid><description>If I constantly search for better approaches, I’ll rarely get anything done. If I only do what I know, I risk doing things the hard way. And I’ll n...</description><pubDate>Fri, 12 Feb 2021 14:51:18 GMT</pubDate><category>Tweets</category></item><item><title>I rarely use Storybook for my clients</title><link>https://coryhouse.dev/2021/02/13/tweet-1360599215416758280/</link><guid isPermaLink="true">https://coryhouse.dev/2021/02/13/tweet-1360599215416758280/</guid><description>I rarely use Storybook for my clients. Instead I: 1. Use create-react-app and the company’s design system to create a custom doc site 2. Generate c...</description><pubDate>Sat, 13 Feb 2021 14:38:26 GMT</pubDate><category>Tweets</category></item><item><title>Sprint planning: &quot;Let&apos;s commit to exactly what we&apos;re going to deliver over...</title><link>https://coryhouse.dev/2021/02/20/tweet-1363134270198415362/</link><guid isPermaLink="true">https://coryhouse.dev/2021/02/20/tweet-1363134270198415362/</guid><description>Sprint planning: &quot;Let&apos;s commit to exactly what we&apos;re going to deliver over the next 2 weeks.&quot; That&apos;s a problem. Why? Because that&apos;s not how softwar...</description><pubDate>Sat, 20 Feb 2021 14:31:50 GMT</pubDate><category>Tweets</category></item><item><title>Integration testing tip: Avoid creating many small tests</title><link>https://coryhouse.dev/2021/02/24/tweet-1364584436755480578/</link><guid isPermaLink="true">https://coryhouse.dev/2021/02/24/tweet-1364584436755480578/</guid><description>Integration testing tip: Avoid creating many small tests. Instead, create a few big tests. Here’s why: There’s a lot of overhead in starting each i...</description><pubDate>Wed, 24 Feb 2021 14:34:17 GMT</pubDate><category>Tweets</category></item><item><title>Two coding styles: 1</title><link>https://coryhouse.dev/2021/02/27/tweet-1365662383516049411/</link><guid isPermaLink="true">https://coryhouse.dev/2021/02/27/tweet-1365662383516049411/</guid><description>Two coding styles: 1. A few long functions 2. Many small functions I prefer small, focused functions. I find they’re easier to understand, test, re...</description><pubDate>Sat, 27 Feb 2021 13:57:39 GMT</pubDate><category>Tweets</category></item><item><title>The cost of a slow development environment: It lowers my morale It drains my...</title><link>https://coryhouse.dev/2021/03/05/tweet-1367909034062413831/</link><guid isPermaLink="true">https://coryhouse.dev/2021/03/05/tweet-1367909034062413831/</guid><description>The cost of a slow development environment: It lowers my morale It drains my energy It clouds my thinking It lowers my creativity It inhibits getti...</description><pubDate>Fri, 05 Mar 2021 18:45:02 GMT</pubDate><category>Tweets</category></item><item><title>The worst dev team I ever worked on: No source control</title><link>https://coryhouse.dev/2021/03/06/tweet-1368271635149684744/</link><guid isPermaLink="true">https://coryhouse.dev/2021/03/06/tweet-1368271635149684744/</guid><description>The worst dev team I ever worked on: No source control. We yelled “stay out of x!” No tickets or written requirements. No tests. We fixed bugs when...</description><pubDate>Sat, 06 Mar 2021 18:45:53 GMT</pubDate><category>Tweets</category></item><item><title>Writing software is basically a 2 step process: 1</title><link>https://coryhouse.dev/2021/03/07/tweet-1368569429202792448/</link><guid isPermaLink="true">https://coryhouse.dev/2021/03/07/tweet-1368569429202792448/</guid><description>Writing software is basically a 2 step process: 1. Ask the computer to do something 2. Verify its response That’s why I believe in creating fast fe...</description><pubDate>Sun, 07 Mar 2021 14:29:13 GMT</pubDate><category>Tweets</category></item><item><title>&quot;That&apos;s easy</title><link>https://coryhouse.dev/2021/03/11/tweet-1369999351028854789/</link><guid isPermaLink="true">https://coryhouse.dev/2021/03/11/tweet-1369999351028854789/</guid><description>&quot;That&apos;s easy. 5 minutes, tops.&quot; 1 day later: &quot;I need another day...Changing that breaks this other thing...&quot; 🤦‍♂️ ------- &quot;That&apos;s not supported. I...</description><pubDate>Thu, 11 Mar 2021 13:11:13 GMT</pubDate><category>Tweets</category></item><item><title>Hey developers, please stop disabling copy/paste in form fields</title><link>https://coryhouse.dev/2021/03/19/tweet-1373056159771467778/</link><guid isPermaLink="true">https://coryhouse.dev/2021/03/19/tweet-1373056159771467778/</guid><description>Hey developers, please stop disabling copy/paste in form fields! 🚨 It’s awful UX. It’s confusing. It doesn’t improve security. It breaks password...</description><pubDate>Fri, 19 Mar 2021 23:37:53 GMT</pubDate><category>Tweets</category></item><item><title>Microservices lead to many separate databases</title><link>https://coryhouse.dev/2021/03/24/tweet-1374735030627500037/</link><guid isPermaLink="true">https://coryhouse.dev/2021/03/24/tweet-1374735030627500037/</guid><description>Microservices lead to many separate databases. Yet these DBs often have related data structures. This creates a common risk: Primary keys in one DB...</description><pubDate>Wed, 24 Mar 2021 14:49:07 GMT</pubDate><category>Tweets</category></item><item><title>To motivate a dev team, you don’t need gimmicks</title><link>https://coryhouse.dev/2021/03/26/tweet-1375446078015823873/</link><guid isPermaLink="true">https://coryhouse.dev/2021/03/26/tweet-1375446078015823873/</guid><description>To motivate a dev team, you don’t need gimmicks. You need basics. Solve meaningful problems. Treat people with respect. Remove blockers. Fire the c...</description><pubDate>Fri, 26 Mar 2021 13:54:34 GMT</pubDate><category>Tweets</category></item><item><title>3 patterns that make TypeScript hard: 1</title><link>https://coryhouse.dev/2021/03/28/tweet-1376150948633063426/</link><guid isPermaLink="true">https://coryhouse.dev/2021/03/28/tweet-1376150948633063426/</guid><description>3 patterns that make TypeScript hard: 1. Inconsistent data structures 2. Overloaded functions 3. Multiple return types from the same function Here&apos;...</description><pubDate>Sun, 28 Mar 2021 12:35:28 GMT</pubDate><category>Tweets</category></item><item><title>Things many people don’t like to do: Exercise Negotiate Work for free Read...</title><link>https://coryhouse.dev/2021/03/29/tweet-1376509266979393538/</link><guid isPermaLink="true">https://coryhouse.dev/2021/03/29/tweet-1376509266979393538/</guid><description>Things many people don’t like to do: Exercise Negotiate Work for free Read the docs Teach yourself Delay gratification Learn during free time Choos...</description><pubDate>Mon, 29 Mar 2021 12:19:18 GMT</pubDate><category>Tweets</category></item><item><title>One of my favorite git commands: git checkout - This checks out the branch I...</title><link>https://coryhouse.dev/2021/03/31/tweet-1377251816795217924/</link><guid isPermaLink="true">https://coryhouse.dev/2021/03/31/tweet-1377251816795217924/</guid><description>One of my favorite git commands: git checkout - This checks out the branch I was on previously. So it&apos;s handy for toggling between branches.</description><pubDate>Wed, 31 Mar 2021 13:29:55 GMT</pubDate><category>Tweets</category></item><item><title>When I do OO programming, automated testing feels harder</title><link>https://coryhouse.dev/2021/04/01/tweet-1377585515361411073/</link><guid isPermaLink="true">https://coryhouse.dev/2021/04/01/tweet-1377585515361411073/</guid><description>When I do OO programming, automated testing feels harder. Here&apos;s why: Private methods, shared state (properties outside the method), and complex de...</description><pubDate>Thu, 01 Apr 2021 11:35:55 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m building a large React component library for a client</title><link>https://coryhouse.dev/2021/04/03/tweet-1378380680237871109/</link><guid isPermaLink="true">https://coryhouse.dev/2021/04/03/tweet-1378380680237871109/</guid><description>I&apos;m building a large React component library for a client. I just added a section for reusable Hooks. It&apos;s wonderful that React makes it so easy to...</description><pubDate>Sat, 03 Apr 2021 16:15:37 GMT</pubDate><category>Tweets</category></item><item><title>Habit: When I open a pull request, I do my own code review first</title><link>https://coryhouse.dev/2021/04/05/tweet-1379137218401464323/</link><guid isPermaLink="true">https://coryhouse.dev/2021/04/05/tweet-1379137218401464323/</guid><description>Habit: When I open a pull request, I do my own code review first. Things I often find and address: Logic errors Poor names Repeated code TODO comme...</description><pubDate>Mon, 05 Apr 2021 18:21:50 GMT</pubDate><category>Tweets</category></item><item><title>I’ve reached the point of coding in TypeScript where coding in plain...</title><link>https://coryhouse.dev/2021/04/06/tweet-1379428970362331138/</link><guid isPermaLink="true">https://coryhouse.dev/2021/04/06/tweet-1379428970362331138/</guid><description>I’ve reached the point of coding in TypeScript where coding in plain JavaScript almost feels reckless. I miss autocomplete. I miss explicit functio...</description><pubDate>Tue, 06 Apr 2021 13:41:09 GMT</pubDate><category>Tweets</category></item><item><title>Hot take: Relying on QA to write your tests and find your bugs is malpractice</title><link>https://coryhouse.dev/2021/04/07/tweet-1379783582076571653/</link><guid isPermaLink="true">https://coryhouse.dev/2021/04/07/tweet-1379783582076571653/</guid><description>Hot take: Relying on QA to write your tests and find your bugs is malpractice. QA isn’t your personal debugging and test creation team. So, if you...</description><pubDate>Wed, 07 Apr 2021 13:10:15 GMT</pubDate><category>Tweets</category></item><item><title>Unpopular opinion: Separate QA teams lower quality</title><link>https://coryhouse.dev/2021/04/08/tweet-1380137285698658308/</link><guid isPermaLink="true">https://coryhouse.dev/2021/04/08/tweet-1380137285698658308/</guid><description>Unpopular opinion: Separate QA teams lower quality. Here&apos;s why: When you tell developers some other team is responsible for testing and assuring qu...</description><pubDate>Thu, 08 Apr 2021 12:35:45 GMT</pubDate><category>Tweets</category></item><item><title>I quit my job to be an independent consultant in 2019</title><link>https://coryhouse.dev/2021/04/11/tweet-1381225866458464257/</link><guid isPermaLink="true">https://coryhouse.dev/2021/04/11/tweet-1381225866458464257/</guid><description>I quit my job to be an independent consultant in 2019. A few months later, the virus hit. I went from doing on-site React training/consulting sessi...</description><pubDate>Sun, 11 Apr 2021 12:41:23 GMT</pubDate><category>Tweets</category></item><item><title>My rule for writing reliable, scalable software: Each feature must have...</title><link>https://coryhouse.dev/2021/04/12/tweet-1381583117102776324/</link><guid isPermaLink="true">https://coryhouse.dev/2021/04/12/tweet-1381583117102776324/</guid><description>My rule for writing reliable, scalable software: Each feature must have automated tests. If it&apos;s not covered by an automated test, it&apos;s not a suppo...</description><pubDate>Mon, 12 Apr 2021 12:20:58 GMT</pubDate><category>Tweets</category></item><item><title>Something 2020 made clear: Remote meetings work REALLY well when *everyone*...</title><link>https://coryhouse.dev/2021/04/12/tweet-1381630227948900353/</link><guid isPermaLink="true">https://coryhouse.dev/2021/04/12/tweet-1381630227948900353/</guid><description>Something 2020 made clear: Remote meetings work REALLY well when *everyone* is remote. Why? Because no one is a &quot;second class&quot; attendee. We can hea...</description><pubDate>Mon, 12 Apr 2021 15:28:10 GMT</pubDate><category>Tweets</category></item><item><title>I often commit a change, then before I push I realize “Oops, I’m on the...</title><link>https://coryhouse.dev/2021/04/13/tweet-1381948635005476871/</link><guid isPermaLink="true">https://coryhouse.dev/2021/04/13/tweet-1381948635005476871/</guid><description>I often commit a change, then before I push I realize “Oops, I’m on the wrong branch!”. 🤦‍♂️ Here’s how I fix it: git reset --soft HEAD~ This is b...</description><pubDate>Tue, 13 Apr 2021 12:33:24 GMT</pubDate><category>Tweets</category></item><item><title>Two pet peeves: 1</title><link>https://coryhouse.dev/2021/04/15/tweet-1382685998765776896/</link><guid isPermaLink="true">https://coryhouse.dev/2021/04/15/tweet-1382685998765776896/</guid><description>Two pet peeves: 1. Developers who don&apos;t participate in code reviews 2. Developers who merely approve all pull requests Ignoring or &quot;rubber stamping...</description><pubDate>Thu, 15 Apr 2021 13:23:25 GMT</pubDate><category>Tweets</category></item><item><title>As a consultant, I’ve found 7 common reasons dev teams struggle: 1</title><link>https://coryhouse.dev/2021/04/16/tweet-1383026715346272261/</link><guid isPermaLink="true">https://coryhouse.dev/2021/04/16/tweet-1383026715346272261/</guid><description>As a consultant, I’ve found 7 common reasons dev teams struggle: 1. Using complex tools they don’t need 2. Slow, flakey dev environment 3. No mock...</description><pubDate>Fri, 16 Apr 2021 11:57:18 GMT</pubDate><category>Tweets</category></item><item><title>Just interviewed a seriously impressive developer</title><link>https://coryhouse.dev/2021/04/16/tweet-1383077932621557765/</link><guid isPermaLink="true">https://coryhouse.dev/2021/04/16/tweet-1383077932621557765/</guid><description>Just interviewed a seriously impressive developer. 😀 Here&apos;s what I look for in an interview: ✅ Clear communication ✅ The humility to say &quot;I don&apos;t...</description><pubDate>Fri, 16 Apr 2021 15:20:50 GMT</pubDate><category>Tweets</category></item><item><title>How to effectively answer “I don’t know” in an interview: ✅ “I don’t know,...</title><link>https://coryhouse.dev/2021/04/17/tweet-1383397269257420803/</link><guid isPermaLink="true">https://coryhouse.dev/2021/04/17/tweet-1383397269257420803/</guid><description>How to effectively answer “I don’t know” in an interview: ✅ “I don’t know, but based on my experience, x might work.” ✅ “I don’t know, but I’m curi...</description><pubDate>Sat, 17 Apr 2021 12:29:45 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;ve found reviewing code on GitHub alone isn&apos;t sufficient</title><link>https://coryhouse.dev/2021/04/21/tweet-1384977383309119491/</link><guid isPermaLink="true">https://coryhouse.dev/2021/04/21/tweet-1384977383309119491/</guid><description>I&apos;ve found reviewing code on GitHub alone isn&apos;t sufficient. I also: 1. Run the code. I check the visual design, user experience, perf, accessibilit...</description><pubDate>Wed, 21 Apr 2021 21:08:34 GMT</pubDate><category>Tweets</category></item><item><title>Just upgraded a project to React 17</title><link>https://coryhouse.dev/2021/04/27/tweet-1386839524362407943/</link><guid isPermaLink="true">https://coryhouse.dev/2021/04/27/tweet-1386839524362407943/</guid><description>Just upgraded a project to React 17. Importing React is no longer required in React 17, so I used this react-codemod command to remove unnecessary...</description><pubDate>Tue, 27 Apr 2021 00:28:03 GMT</pubDate><category>Tweets</category></item><item><title>How to attract and retain great developers: Pay well Use modern tech Offer...</title><link>https://coryhouse.dev/2021/04/27/tweet-1387025347691130881/</link><guid isPermaLink="true">https://coryhouse.dev/2021/04/27/tweet-1387025347691130881/</guid><description>How to attract and retain great developers: Pay well Use modern tech Offer flexible hours Provide fast laptops Support remote work Treat people wit...</description><pubDate>Tue, 27 Apr 2021 12:46:27 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript union types are 🔥</title><link>https://coryhouse.dev/2021/04/27/tweet-1387083288989380610/</link><guid isPermaLink="true">https://coryhouse.dev/2021/04/27/tweet-1387083288989380610/</guid><description>TypeScript union types are 🔥. Example: type Status = &quot;Open&quot; | &quot;Pending&quot; | &quot;Closed&quot;; However, what if I want to be able to iterate over these too?...</description><pubDate>Tue, 27 Apr 2021 16:36:41 GMT</pubDate><category>Tweets</category></item><item><title>Three things I like to separate: 1</title><link>https://coryhouse.dev/2021/04/28/tweet-1387430923071807493/</link><guid isPermaLink="true">https://coryhouse.dev/2021/04/28/tweet-1387430923071807493/</guid><description>Three things I like to separate: 1. Retrieving data 2. Transforming / formatting data 3. Displaying data Often, when I’m dealing with code that’s c...</description><pubDate>Wed, 28 Apr 2021 15:38:03 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m switching between JavaScript and TypeScript</title><link>https://coryhouse.dev/2021/04/30/tweet-1388189860306038784/</link><guid isPermaLink="true">https://coryhouse.dev/2021/04/30/tweet-1388189860306038784/</guid><description>I&apos;m switching between JavaScript and TypeScript. I&apos;ve noticed TypeScript has a lower mental load. Here&apos;s why: In JS I have to remember object shape...</description><pubDate>Fri, 30 Apr 2021 17:53:48 GMT</pubDate><category>Tweets</category></item><item><title>Physical projects: Measure twice, cut once</title><link>https://coryhouse.dev/2021/05/02/tweet-1388848104728940547/</link><guid isPermaLink="true">https://coryhouse.dev/2021/05/02/tweet-1388848104728940547/</guid><description>Physical projects: Measure twice, cut once. Undo is expensive. 😬 Virtual projects: Try and iterate. Undo is free. 😍</description><pubDate>Sun, 02 May 2021 13:29:26 GMT</pubDate><category>Tweets</category></item><item><title>Woah, just learned you can use $npm_execpath to write npm scripts that work...</title><link>https://coryhouse.dev/2021/05/05/tweet-1389921190089736195/</link><guid isPermaLink="true">https://coryhouse.dev/2021/05/05/tweet-1389921190089736195/</guid><description>Woah, just learned you can use $npm_execpath to write npm scripts that work with both npm and Yarn: &quot;prebuild&quot;: &quot;$npm_execpath run clean&quot; $npm_exec...</description><pubDate>Wed, 05 May 2021 12:33:29 GMT</pubDate><category>Tweets</category></item><item><title>One developer, working alone, can ship as much code as an entire team</title><link>https://coryhouse.dev/2021/05/07/tweet-1390620470085627905/</link><guid isPermaLink="true">https://coryhouse.dev/2021/05/07/tweet-1390620470085627905/</guid><description>One developer, working alone, can ship as much code as an entire team. No communication overhead. No waiting for approvals. No cross-team blockers....</description><pubDate>Fri, 07 May 2021 10:52:11 GMT</pubDate><category>Tweets</category></item><item><title>When a developer responds to every pull request with “looks good to me”, I...</title><link>https://coryhouse.dev/2021/05/10/tweet-1391736592650448901/</link><guid isPermaLink="true">https://coryhouse.dev/2021/05/10/tweet-1391736592650448901/</guid><description>When a developer responds to every pull request with “looks good to me”, I don’t think “wow, you’re easy to work with!” I think “are you too busy t...</description><pubDate>Mon, 10 May 2021 12:47:15 GMT</pubDate><category>Tweets</category></item><item><title>Developers often focus on improving their coding skills</title><link>https://coryhouse.dev/2021/05/11/tweet-1392128074049892352/</link><guid isPermaLink="true">https://coryhouse.dev/2021/05/11/tweet-1392128074049892352/</guid><description>Developers often focus on improving their coding skills. But it’s the non-coding skills that transform developers into true leaders: Code review Pl...</description><pubDate>Tue, 11 May 2021 14:42:51 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript tip: VSCode&apos;s TypeScript server hangs sometimes</title><link>https://coryhouse.dev/2021/05/15/tweet-1393560535791251456/</link><guid isPermaLink="true">https://coryhouse.dev/2021/05/15/tweet-1393560535791251456/</guid><description>TypeScript tip: VSCode&apos;s TypeScript server hangs sometimes. When this happens, it will say something is an invalid type, when it&apos;s actually valid....</description><pubDate>Sat, 15 May 2021 13:34:57 GMT</pubDate><category>Tweets</category></item><item><title>It&apos;s hard to mentally disconnect</title><link>https://coryhouse.dev/2021/05/16/tweet-1394039430344761344/</link><guid isPermaLink="true">https://coryhouse.dev/2021/05/16/tweet-1394039430344761344/</guid><description>It&apos;s hard to mentally disconnect. When I&apos;m stuck, I ruminate on programming problems during my free time. https://t.co/VA3ROSbHgh</description><pubDate>Sun, 16 May 2021 21:17:54 GMT</pubDate><category>Tweets</category></item><item><title>Being a developer requires balancing hubris with humility</title><link>https://coryhouse.dev/2021/05/18/tweet-1394662418874253319/</link><guid isPermaLink="true">https://coryhouse.dev/2021/05/18/tweet-1394662418874253319/</guid><description>Being a developer requires balancing hubris with humility. Hubris: “I’ve never done that. But sure, I can handle it”. Humility: “I just finished it...</description><pubDate>Tue, 18 May 2021 14:33:26 GMT</pubDate><category>Tweets</category></item><item><title>To get promoted, exceed expectations</title><link>https://coryhouse.dev/2021/05/18/tweet-1394719072412127239/</link><guid isPermaLink="true">https://coryhouse.dev/2021/05/18/tweet-1394719072412127239/</guid><description>To get promoted, exceed expectations. Be proactive. Think bigger picture. Take on more responsibility. Identity and resolve quality issues (perform...</description><pubDate>Tue, 18 May 2021 18:18:34 GMT</pubDate><category>Tweets</category></item><item><title>As a manager, I happily promoted proactive employees</title><link>https://coryhouse.dev/2021/06/01/tweet-1399699404991381514/</link><guid isPermaLink="true">https://coryhouse.dev/2021/06/01/tweet-1399699404991381514/</guid><description>As a manager, I happily promoted proactive employees. Proactive employees didn&apos;t merely bring me problems. They brought me solutions. They thought...</description><pubDate>Tue, 01 Jun 2021 12:08:37 GMT</pubDate><category>Tweets</category></item><item><title>Developers who merely click approve on every pull request aren’t doing their job</title><link>https://coryhouse.dev/2021/06/07/tweet-1401900044559781894/</link><guid isPermaLink="true">https://coryhouse.dev/2021/06/07/tweet-1401900044559781894/</guid><description>Developers who merely click approve on every pull request aren’t doing their job. They’re a liability. They squander the opportunity for quality co...</description><pubDate>Mon, 07 Jun 2021 13:53:11 GMT</pubDate><category>Tweets</category></item><item><title>5 strategies for quickly merging PRs: 1 Create small PRs 2 Open tickets for...</title><link>https://coryhouse.dev/2021/06/10/tweet-1402978620562362371/</link><guid isPermaLink="true">https://coryhouse.dev/2021/06/10/tweet-1402978620562362371/</guid><description>5 strategies for quickly merging PRs: 1 Create small PRs 2 Open tickets for issues that can be fixed later 3 Use feature toggles so work can be con...</description><pubDate>Thu, 10 Jun 2021 13:19:03 GMT</pubDate><category>Tweets</category></item><item><title>Years ago I read “The Non-Designer’s Design Book”</title><link>https://coryhouse.dev/2021/06/11/tweet-1403305635266060290/</link><guid isPermaLink="true">https://coryhouse.dev/2021/06/11/tweet-1403305635266060290/</guid><description>Years ago I read “The Non-Designer’s Design Book”. It was an excellent time investment. I learned the fundamentals: Color 🖍 Spacing 👽 Typography...</description><pubDate>Fri, 11 Jun 2021 10:58:30 GMT</pubDate><category>Tweets</category></item><item><title>The more I read about React 18, the more I realize: React is maturing into a...</title><link>https://coryhouse.dev/2021/06/12/tweet-1403759070528614400/</link><guid isPermaLink="true">https://coryhouse.dev/2021/06/12/tweet-1403759070528614400/</guid><description>The more I read about React 18, the more I realize: React is maturing into a library for building frameworks! Sure, I can build apps with just Reac...</description><pubDate>Sat, 12 Jun 2021 17:00:17 GMT</pubDate><category>Tweets</category></item><item><title>React tip: To keep JSX simple, return early</title><link>https://coryhouse.dev/2021/06/13/tweet-1404038972700073984/</link><guid isPermaLink="true">https://coryhouse.dev/2021/06/13/tweet-1404038972700073984/</guid><description>React tip: To keep JSX simple, return early. Check for loading, 404s, or other errors first. #react</description><pubDate>Sun, 13 Jun 2021 11:32:31 GMT</pubDate><category>Tweets</category></item><item><title>6 React “frameworks” and their typical use case: ⚛️ create-react-app:...</title><link>https://coryhouse.dev/2021/06/15/tweet-1404758510022316035/</link><guid isPermaLink="true">https://coryhouse.dev/2021/06/15/tweet-1404758510022316035/</guid><description>6 React “frameworks” and their typical use case: ⚛️ create-react-app: Client-rendered apps ⚛️ Gatsby: Server-rendered static apps ⚛️ Nextjs, Remix,...</description><pubDate>Tue, 15 Jun 2021 11:11:42 GMT</pubDate><category>Tweets</category></item><item><title>Two code review approaches: 1</title><link>https://coryhouse.dev/2021/06/16/tweet-1405189454101352454/</link><guid isPermaLink="true">https://coryhouse.dev/2021/06/16/tweet-1405189454101352454/</guid><description>Two code review approaches: 1. Pull request 2. Pair/mob programming My take? I believe in a hybrid model. Neither is perfect. So we should use both...</description><pubDate>Wed, 16 Jun 2021 15:44:07 GMT</pubDate><category>Tweets</category></item><item><title>When creating reusable React components, prefer compound components over...</title><link>https://coryhouse.dev/2021/06/17/tweet-1405512541846052871/</link><guid isPermaLink="true">https://coryhouse.dev/2021/06/17/tweet-1405512541846052871/</guid><description>When creating reusable React components, prefer compound components over config objects. Compound components are more flexible and offer a more nat...</description><pubDate>Thu, 17 Jun 2021 13:07:57 GMT</pubDate><category>Tweets</category></item><item><title>Early in my career, my boss asked me to email all our customers</title><link>https://coryhouse.dev/2021/06/18/tweet-1405854808658038785/</link><guid isPermaLink="true">https://coryhouse.dev/2021/06/18/tweet-1405854808658038785/</guid><description>Early in my career, my boss asked me to email all our customers. I used a while loop…and forgot to increment the counter. The script emailed all ou...</description><pubDate>Fri, 18 Jun 2021 11:48:00 GMT</pubDate><category>Tweets</category></item><item><title>The most useful piece of advice I’ve heard for designing reusable React...</title><link>https://coryhouse.dev/2021/06/19/tweet-1406224388442177542/</link><guid isPermaLink="true">https://coryhouse.dev/2021/06/19/tweet-1406224388442177542/</guid><description>The most useful piece of advice I’ve heard for designing reusable React components: Use popular libraries as inspiration. Before implementing my ow...</description><pubDate>Sat, 19 Jun 2021 12:16:35 GMT</pubDate><category>Tweets</category></item><item><title>Splitting up a large front-end dev team requires 3 key ingredients: ✅ A...</title><link>https://coryhouse.dev/2021/06/22/tweet-1407323330995232781/</link><guid isPermaLink="true">https://coryhouse.dev/2021/06/22/tweet-1407323330995232781/</guid><description>Splitting up a large front-end dev team requires 3 key ingredients: ✅ A design system ✅ Designers that use the design system as their guide ✅ A com...</description><pubDate>Tue, 22 Jun 2021 13:03:23 GMT</pubDate><category>Tweets</category></item><item><title>Why I ❤️ software development: Experimentation is typically acceptable,...</title><link>https://coryhouse.dev/2021/06/25/tweet-1408389445741649927/</link><guid isPermaLink="true">https://coryhouse.dev/2021/06/25/tweet-1408389445741649927/</guid><description>Why I ❤️ software development: Experimentation is typically acceptable, fast, and cheap. I sit down with a simple goal: Get *closer* to the solutio...</description><pubDate>Fri, 25 Jun 2021 11:39:45 GMT</pubDate><category>Tweets</category></item><item><title>Why I taught my son HTML, JS, and CSS before Git: I believe it’s easier to...</title><link>https://coryhouse.dev/2021/06/26/tweet-1408757126865031170/</link><guid isPermaLink="true">https://coryhouse.dev/2021/06/26/tweet-1408757126865031170/</guid><description>Why I taught my son HTML, JS, and CSS before Git: I believe it’s easier to learn and appreciate something, if you’ve experienced the pain first. I...</description><pubDate>Sat, 26 Jun 2021 12:00:47 GMT</pubDate><category>Tweets</category></item><item><title>Woah, just learned about CSS Container Queries</title><link>https://coryhouse.dev/2021/06/26/tweet-1408851355289128961/</link><guid isPermaLink="true">https://coryhouse.dev/2021/06/26/tweet-1408851355289128961/</guid><description>Woah, just learned about CSS Container Queries. Big idea: Declare queries that monitor *the size of the component&apos;s container* (instead of the enti...</description><pubDate>Sat, 26 Jun 2021 18:15:12 GMT</pubDate><category>Tweets</category></item><item><title>Reusable React component design tip: Mimic native HTML APIs</title><link>https://coryhouse.dev/2021/06/27/tweet-1409221753738514437/</link><guid isPermaLink="true">https://coryhouse.dev/2021/06/27/tweet-1409221753738514437/</guid><description>Reusable React component design tip: Mimic native HTML APIs. Example: Avoid &lt;Button label=&quot;Send&quot; /&gt; Prefer &lt;Button&gt;Send&lt;/Button&gt;...</description><pubDate>Sun, 27 Jun 2021 18:47:02 GMT</pubDate><category>Tweets</category></item><item><title>I was immediately excited when I saw React</title><link>https://coryhouse.dev/2021/06/28/tweet-1409540502274334721/</link><guid isPermaLink="true">https://coryhouse.dev/2021/06/28/tweet-1409540502274334721/</guid><description>I was immediately excited when I saw React. I recognized the pain it would remove. I was tired of: ❌ Cryptic runtime errors ❌ Proprietary templatin...</description><pubDate>Mon, 28 Jun 2021 15:53:38 GMT</pubDate><category>Tweets</category></item><item><title>“What gets measured, gets managed.” So as a dev, I measure: ✅ Build time ✅...</title><link>https://coryhouse.dev/2021/06/29/tweet-1409901589255569409/</link><guid isPermaLink="true">https://coryhouse.dev/2021/06/29/tweet-1409901589255569409/</guid><description>“What gets measured, gets managed.” So as a dev, I measure: ✅ Build time ✅ Bundle size ✅ Code coverage ✅ Code quality (Via ESLint, TypeScript, auto...</description><pubDate>Tue, 29 Jun 2021 15:48:28 GMT</pubDate><category>Tweets</category></item><item><title>Simple pattern to reduce the pain of “prop drilling”: Consider using an...</title><link>https://coryhouse.dev/2021/07/01/tweet-1410581176914530305/</link><guid isPermaLink="true">https://coryhouse.dev/2021/07/01/tweet-1410581176914530305/</guid><description>Simple pattern to reduce the pain of “prop drilling”: Consider using an object instead of separate props. Another advantage to this approach: When...</description><pubDate>Thu, 01 Jul 2021 12:48:54 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m a big believer in automated testing</title><link>https://coryhouse.dev/2021/07/01/tweet-1410685302100971520/</link><guid isPermaLink="true">https://coryhouse.dev/2021/07/01/tweet-1410685302100971520/</guid><description>I&apos;m a big believer in automated testing. But I typically write tests *after* writing the code. Why? Because my first design is rarely the final des...</description><pubDate>Thu, 01 Jul 2021 19:42:39 GMT</pubDate><category>Tweets</category></item><item><title>Regex: Write once, read never</title><link>https://coryhouse.dev/2021/07/02/tweet-1410999219087892483/</link><guid isPermaLink="true">https://coryhouse.dev/2021/07/02/tweet-1410999219087892483/</guid><description>Regex: Write once, read never. My solution: 1. Put the regex in a pure function, with a good name. 2. Write automated tests on the function. Benefi...</description><pubDate>Fri, 02 Jul 2021 16:30:03 GMT</pubDate><category>Tweets</category></item><item><title>The first thing I do when I consult with a company: I review their app’s...</title><link>https://coryhouse.dev/2021/07/06/tweet-1412413650657284108/</link><guid isPermaLink="true">https://coryhouse.dev/2021/07/06/tweet-1412413650657284108/</guid><description>The first thing I do when I consult with a company: I review their app’s dependencies. I typically run webpack-bundle-analyzer. It gives me a clear...</description><pubDate>Tue, 06 Jul 2021 14:10:30 GMT</pubDate><category>Tweets</category></item><item><title>I run each PR I review locally</title><link>https://coryhouse.dev/2021/07/09/tweet-1413529021883764740/</link><guid isPermaLink="true">https://coryhouse.dev/2021/07/09/tweet-1413529021883764740/</guid><description>I run each PR I review locally. Why? Because there are many things that are hard to evaluate by merely reading code: Responsive design Accessibilit...</description><pubDate>Fri, 09 Jul 2021 16:02:35 GMT</pubDate><category>Tweets</category></item><item><title>As a dev, I do &quot;Quality Assurance&quot;</title><link>https://coryhouse.dev/2021/07/09/tweet-1413590300757569536/</link><guid isPermaLink="true">https://coryhouse.dev/2021/07/09/tweet-1413590300757569536/</guid><description>As a dev, I do &quot;Quality Assurance&quot;. 1. I run and test my own code. 2. I run and test my fellow developer&apos;s code during code reviews. Dedicated QA c...</description><pubDate>Fri, 09 Jul 2021 20:06:05 GMT</pubDate><category>Tweets</category></item><item><title>Today I learned about CSS&apos; currentColor value</title><link>https://coryhouse.dev/2021/07/13/tweet-1414981304035287041/</link><guid isPermaLink="true">https://coryhouse.dev/2021/07/13/tweet-1414981304035287041/</guid><description>Today I learned about CSS&apos; currentColor value. It says &quot;apply this element&apos;s color to this other attribute&quot;. So in this example, the border will be...</description><pubDate>Tue, 13 Jul 2021 16:13:26 GMT</pubDate><category>Tweets</category></item><item><title>Just used TypeScript to enforce distinct prop combinations</title><link>https://coryhouse.dev/2021/07/20/tweet-1417456388926808097/</link><guid isPermaLink="true">https://coryhouse.dev/2021/07/20/tweet-1417456388926808097/</guid><description>Just used TypeScript to enforce distinct prop combinations. (also known as conditional props) 😍 In this example, I created a Card component that r...</description><pubDate>Tue, 20 Jul 2021 12:08:32 GMT</pubDate><category>Tweets</category></item><item><title>A practical alternative to pair programming that I enjoy: I open PRs early,...</title><link>https://coryhouse.dev/2021/07/23/tweet-1418544467871731715/</link><guid isPermaLink="true">https://coryhouse.dev/2021/07/23/tweet-1418544467871731715/</guid><description>A practical alternative to pair programming that I enjoy: I open PRs early, and request feedback early. I say &quot;This isn&apos;t done, but how do you feel...</description><pubDate>Fri, 23 Jul 2021 12:12:11 GMT</pubDate><category>Tweets</category></item><item><title>It’s remarkable how much better life is on a development team with this...</title><link>https://coryhouse.dev/2021/07/26/tweet-1419745492003704835/</link><guid isPermaLink="true">https://coryhouse.dev/2021/07/26/tweet-1419745492003704835/</guid><description>It’s remarkable how much better life is on a development team with this simple rule: Code is automatically deployed to production when merged. No m...</description><pubDate>Mon, 26 Jul 2021 19:44:37 GMT</pubDate><category>Tweets</category></item><item><title>The best financial advice I&apos;ve found: 1</title><link>https://coryhouse.dev/2021/07/31/tweet-1421464804682833927/</link><guid isPermaLink="true">https://coryhouse.dev/2021/07/31/tweet-1421464804682833927/</guid><description>The best financial advice I&apos;ve found: 1. Avoid being showy. Live beneath your means. Slack = freedom. 2. Avoid liabilities. Grow income via index f...</description><pubDate>Sat, 31 Jul 2021 13:36:33 GMT</pubDate><category>Tweets</category></item><item><title>As I’ve learned TypeScript over the years, I’ve noticed a pattern: If it’s...</title><link>https://coryhouse.dev/2021/08/02/tweet-1422195449277059072/</link><guid isPermaLink="true">https://coryhouse.dev/2021/08/02/tweet-1422195449277059072/</guid><description>As I’ve learned TypeScript over the years, I’ve noticed a pattern: If it’s hard to type via TypeScript, I should probably rethink my design. #types...</description><pubDate>Mon, 02 Aug 2021 13:59:52 GMT</pubDate><category>Tweets</category></item><item><title>My rule for React state: Any state that can be derived, should be derived</title><link>https://coryhouse.dev/2021/08/04/tweet-1422927624557453316/</link><guid isPermaLink="true">https://coryhouse.dev/2021/08/04/tweet-1422927624557453316/</guid><description>My rule for React state: Any state that can be derived, should be derived. This seems obvious with a simple example like this. But it&apos;s a surprisin...</description><pubDate>Wed, 04 Aug 2021 14:29:17 GMT</pubDate><category>Tweets</category></item><item><title>A well-structured codebase is consistent on the following: Validation HTTP...</title><link>https://coryhouse.dev/2021/08/06/tweet-1423616492369760258/</link><guid isPermaLink="true">https://coryhouse.dev/2021/08/06/tweet-1423616492369760258/</guid><description>A well-structured codebase is consistent on the following: Validation HTTP calls Sharing code Error handling Automated tests Route declarations Fil...</description><pubDate>Fri, 06 Aug 2021 12:06:35 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript tip: Declaring type keys in alphabetical order makes them easier...</title><link>https://coryhouse.dev/2021/08/07/tweet-1424035993749950473/</link><guid isPermaLink="true">https://coryhouse.dev/2021/08/07/tweet-1424035993749950473/</guid><description>TypeScript tip: Declaring type keys in alphabetical order makes them easier to read later. The good news is, you don’t have to manually alphabetize...</description><pubDate>Sat, 07 Aug 2021 15:53:32 GMT</pubDate><category>Tweets</category></item><item><title>Habit: When I&apos;m done coding, I don&apos;t immediately open a pull request</title><link>https://coryhouse.dev/2021/08/08/tweet-1424354140709441550/</link><guid isPermaLink="true">https://coryhouse.dev/2021/08/08/tweet-1424354140709441550/</guid><description>Habit: When I&apos;m done coding, I don&apos;t immediately open a pull request. I prefer to sleep on it. After a good night&apos;s sleep, I typically find multipl...</description><pubDate>Sun, 08 Aug 2021 12:57:45 GMT</pubDate><category>Tweets</category></item><item><title>How I pivoted from an object-oriented programming style to a functional...</title><link>https://coryhouse.dev/2021/08/13/tweet-1426191017968119813/</link><guid isPermaLink="true">https://coryhouse.dev/2021/08/13/tweet-1426191017968119813/</guid><description>How I pivoted from an object-oriented programming style to a functional programming style: 1. I stopped attaching behavior to objects. My objects a...</description><pubDate>Fri, 13 Aug 2021 14:36:50 GMT</pubDate><category>Tweets</category></item><item><title>When unit testing, I rarely use mocking libraries</title><link>https://coryhouse.dev/2021/08/16/tweet-1427242673463775232/</link><guid isPermaLink="true">https://coryhouse.dev/2021/08/16/tweet-1427242673463775232/</guid><description>When unit testing, I rarely use mocking libraries. Instead, I restructure the code so mocking isn&apos;t necessary. Here&apos;s how: 1. I split the code into...</description><pubDate>Mon, 16 Aug 2021 12:15:44 GMT</pubDate><category>Tweets</category></item><item><title>Just learned about SWC, a Babel alternative</title><link>https://coryhouse.dev/2021/08/18/tweet-1428101124343615495/</link><guid isPermaLink="true">https://coryhouse.dev/2021/08/18/tweet-1428101124343615495/</guid><description>Just learned about SWC, a Babel alternative. Next.js is transitioning to use it instead of Babel. Why? It&apos;s 20x faster than Babel. How? It&apos;s writte...</description><pubDate>Wed, 18 Aug 2021 21:06:55 GMT</pubDate><category>Tweets</category></item><item><title>Simple #TypeScript tip I wish someone had told me long ago: If you get a...</title><link>https://coryhouse.dev/2021/08/21/tweet-1429155679491837954/</link><guid isPermaLink="true">https://coryhouse.dev/2021/08/21/tweet-1429155679491837954/</guid><description>Simple #TypeScript tip I wish someone had told me long ago: If you get a giant, scary error message, scroll to the end. The end of the message is t...</description><pubDate>Sat, 21 Aug 2021 18:57:21 GMT</pubDate><category>Tweets</category></item><item><title>Common problem: &quot;We don&apos;t have time to improve our process&quot;</title><link>https://coryhouse.dev/2021/08/23/tweet-1429781761286868997/</link><guid isPermaLink="true">https://coryhouse.dev/2021/08/23/tweet-1429781761286868997/</guid><description>Common problem: &quot;We don&apos;t have time to improve our process&quot;. &quot;We don&apos;t have time to mock the APIs&quot; = waste time with flakey calls. &quot;We don’t have t...</description><pubDate>Mon, 23 Aug 2021 12:25:10 GMT</pubDate><category>Tweets</category></item><item><title>My favorite way to create a new JavaScript object with a property omitted is...</title><link>https://coryhouse.dev/2021/08/24/tweet-1430232426106826754/</link><guid isPermaLink="true">https://coryhouse.dev/2021/08/24/tweet-1430232426106826754/</guid><description>My favorite way to create a new JavaScript object with a property omitted is Rest/spread. // Create a user without the address property const { add...</description><pubDate>Tue, 24 Aug 2021 18:15:57 GMT</pubDate><category>Tweets</category></item><item><title>The only technique I’ve found for creating reliable end-to-end tests: 1</title><link>https://coryhouse.dev/2021/08/25/tweet-1430678892038311941/</link><guid isPermaLink="true">https://coryhouse.dev/2021/08/25/tweet-1430678892038311941/</guid><description>The only technique I’ve found for creating reliable end-to-end tests: 1. Run the app against a test db instance. 2. Recreate the db with a static d...</description><pubDate>Wed, 25 Aug 2021 23:50:03 GMT</pubDate><category>Tweets</category></item><item><title>After shipping multiple projects with #TypeScript, I wouldn&apos;t go back to JS</title><link>https://coryhouse.dev/2021/08/26/tweet-1430999489377095682/</link><guid isPermaLink="true">https://coryhouse.dev/2021/08/26/tweet-1430999489377095682/</guid><description>After shipping multiple projects with #TypeScript, I wouldn&apos;t go back to JS. Yes, TypeScript requires extra work up front to declare types. But, th...</description><pubDate>Thu, 26 Aug 2021 21:03:59 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m excited about the new type narrowing features in #typescript 4.4</title><link>https://coryhouse.dev/2021/08/27/tweet-1431234539003731970/</link><guid isPermaLink="true">https://coryhouse.dev/2021/08/27/tweet-1431234539003731970/</guid><description>I&apos;m excited about the new type narrowing features in #typescript 4.4. Now we can check types on one line, and TypeScript will &quot;remember&quot; that we na...</description><pubDate>Fri, 27 Aug 2021 12:37:59 GMT</pubDate><category>Tweets</category></item><item><title>The difference between `any` and `unknown` in #TypeScript: any = “I don’t...</title><link>https://coryhouse.dev/2021/08/28/tweet-1431596124666744832/</link><guid isPermaLink="true">https://coryhouse.dev/2021/08/28/tweet-1431596124666744832/</guid><description>The difference between `any` and `unknown` in #TypeScript: any = “I don’t care” unknown = “I don’t know” Prefer `unknown` over `any`. Why? Because...</description><pubDate>Sat, 28 Aug 2021 12:34:48 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;ve started using @Cypress_io &amp; @TestingLib for more than testing</title><link>https://coryhouse.dev/2021/08/29/tweet-1432070024131448839/</link><guid isPermaLink="true">https://coryhouse.dev/2021/08/29/tweet-1432070024131448839/</guid><description>I&apos;ve started using @Cypress_io &amp; @TestingLib for more than testing. They&apos;re now part of my daily *dev* workflow. I do TDD by automating the bro...</description><pubDate>Sun, 29 Aug 2021 19:57:54 GMT</pubDate><category>Tweets</category></item><item><title>z-index Tip: When creating a reusable component that declares a z-index, add...</title><link>https://coryhouse.dev/2021/08/30/tweet-1432346434356060162/</link><guid isPermaLink="true">https://coryhouse.dev/2021/08/30/tweet-1432346434356060162/</guid><description>z-index Tip: When creating a reusable component that declares a z-index, add this style to the root element: isolation: isolate Why? This creates a...</description><pubDate>Mon, 30 Aug 2021 14:16:16 GMT</pubDate><category>Tweets</category></item><item><title>Job satisfaction is driven by 5 factors: 1</title><link>https://coryhouse.dev/2021/09/02/tweet-1433403462381936641/</link><guid isPermaLink="true">https://coryhouse.dev/2021/09/02/tweet-1433403462381936641/</guid><description>Job satisfaction is driven by 5 factors: 1. Significance: The work is meaningful and impactful 2. Task identity: A feeling of ownership in the work...</description><pubDate>Thu, 02 Sep 2021 12:16:31 GMT</pubDate><category>Tweets</category></item><item><title>30+ HTML tags to consider before using a div: header footer nav main section...</title><link>https://coryhouse.dev/2021/09/04/tweet-1434168409072324610/</link><guid isPermaLink="true">https://coryhouse.dev/2021/09/04/tweet-1434168409072324610/</guid><description>30+ HTML tags to consider before using a div: header footer nav main section summary caption label p ul ol blockquote article aside mark details fi...</description><pubDate>Sat, 04 Sep 2021 14:56:08 GMT</pubDate><category>Tweets</category></item><item><title>HTML accessibility tip: Only add a role if you can&apos;t use the ideal HTML tag</title><link>https://coryhouse.dev/2021/09/06/tweet-1434847343866748928/</link><guid isPermaLink="true">https://coryhouse.dev/2021/09/06/tweet-1434847343866748928/</guid><description>HTML accessibility tip: Only add a role if you can&apos;t use the ideal HTML tag. Why? Because many HTML tags automatically apply the proper role. Examp...</description><pubDate>Mon, 06 Sep 2021 11:53:59 GMT</pubDate><category>Tweets</category></item><item><title>Scenario: You&apos;re using TypeScript, and want statically typed CSS too</title><link>https://coryhouse.dev/2021/09/08/tweet-1435672583085699076/</link><guid isPermaLink="true">https://coryhouse.dev/2021/09/08/tweet-1435672583085699076/</guid><description>Scenario: You&apos;re using TypeScript, and want statically typed CSS too. The answer: vanilla-extract. 😍 It&apos;s like CSS modules, but also type safe! (a...</description><pubDate>Wed, 08 Sep 2021 18:33:11 GMT</pubDate><category>Tweets</category></item><item><title>An interesting JavaScript template string trick: You can replace this: {...</title><link>https://coryhouse.dev/2021/09/09/tweet-1435988495789707264/</link><guid isPermaLink="true">https://coryhouse.dev/2021/09/09/tweet-1435988495789707264/</guid><description>An interesting JavaScript template string trick: You can replace this: { &quot;aria-required&quot;: isRequired ? &quot;true&quot; : &quot;false&quot;; } with this: { &quot;aria-requi...</description><pubDate>Thu, 09 Sep 2021 15:28:31 GMT</pubDate><category>Tweets</category></item><item><title>React PropTypes are dead to me</title><link>https://coryhouse.dev/2021/09/10/tweet-1436397323324731394/</link><guid isPermaLink="true">https://coryhouse.dev/2021/09/10/tweet-1436397323324731394/</guid><description>React PropTypes are dead to me. PropTypes: ❌ Checks at run-time ❌ React-specific ❌ No refactor protection ❌ Flakey autocomplete (plugins/patterns r...</description><pubDate>Fri, 10 Sep 2021 18:33:03 GMT</pubDate><category>Tweets</category></item><item><title>10 lessons I&apos;ve learned about handling React state over the last 7 years</title><link>https://coryhouse.dev/2021/09/14/tweet-1437765667906854915/</link><guid isPermaLink="true">https://coryhouse.dev/2021/09/14/tweet-1437765667906854915/</guid><description>10 lessons I&apos;ve learned about handling React state over the last 7 years... (thread) #react #reactjs</description><pubDate>Tue, 14 Sep 2021 13:10:22 GMT</pubDate><category>Tweets</category></item><item><title>Two reasons to use HTML &lt;fieldset&gt; on forms: 1</title><link>https://coryhouse.dev/2021/09/15/tweet-1438111447356219393/</link><guid isPermaLink="true">https://coryhouse.dev/2021/09/15/tweet-1438111447356219393/</guid><description>Two reasons to use HTML &lt;fieldset&gt; on forms: 1. Group related fields on a big form. Add a &lt;legend&gt; under each &lt;fieldset&gt;. This he...</description><pubDate>Wed, 15 Sep 2021 12:04:22 GMT</pubDate><category>Tweets</category></item><item><title>Habit: I often work in my car</title><link>https://coryhouse.dev/2021/09/20/tweet-1440094263346335744/</link><guid isPermaLink="true">https://coryhouse.dev/2021/09/20/tweet-1440094263346335744/</guid><description>Habit: I often work in my car. I do this when I drive my kids to their activities. To save a round-trip, I wait in my car and work. I bring my lapt...</description><pubDate>Mon, 20 Sep 2021 23:23:22 GMT</pubDate><category>Tweets</category></item><item><title>The problem with sprints: Sprints create a constant sense of hurry</title><link>https://coryhouse.dev/2021/09/22/tweet-1440680406710321153/</link><guid isPermaLink="true">https://coryhouse.dev/2021/09/22/tweet-1440680406710321153/</guid><description>The problem with sprints: Sprints create a constant sense of hurry. Constantly feeling rushed is a big problem: ❌Hurts intrinsic motivation ❌Reduce...</description><pubDate>Wed, 22 Sep 2021 14:12:30 GMT</pubDate><category>Tweets</category></item><item><title>Sprint mindset: &quot;We estimate and commit to finishing work by this date&quot;</title><link>https://coryhouse.dev/2021/09/23/tweet-1441001212212649984/</link><guid isPermaLink="true">https://coryhouse.dev/2021/09/23/tweet-1441001212212649984/</guid><description>Sprint mindset: &quot;We estimate and commit to finishing work by this date&quot;. Kanban mindset: &quot;We optimize for flow, prioritize often, visualize work-in...</description><pubDate>Thu, 23 Sep 2021 11:27:16 GMT</pubDate><category>Tweets</category></item><item><title>My favorite way to estimate tickets</title><link>https://coryhouse.dev/2021/09/23/tweet-1441044401967583245/</link><guid isPermaLink="true">https://coryhouse.dev/2021/09/23/tweet-1441044401967583245/</guid><description>My favorite way to estimate tickets? Don’t. 😜 Instead, ask this: Can we break this ticket down further? This question leads to small tickets that...</description><pubDate>Thu, 23 Sep 2021 14:18:53 GMT</pubDate><category>Tweets</category></item><item><title>I recently reviewed a team&apos;s codebase</title><link>https://coryhouse.dev/2021/09/25/tweet-1441812432977076224/</link><guid isPermaLink="true">https://coryhouse.dev/2021/09/25/tweet-1441812432977076224/</guid><description>I recently reviewed a team&apos;s codebase. There were dozens of broken automated tests. Why? The tests weren&apos;t being run on a CI server. My response? �...</description><pubDate>Sat, 25 Sep 2021 17:10:46 GMT</pubDate><category>Tweets</category></item><item><title>A well-named test answers 3 questions: 1</title><link>https://coryhouse.dev/2021/09/26/tweet-1442125564228341761/</link><guid isPermaLink="true">https://coryhouse.dev/2021/09/26/tweet-1442125564228341761/</guid><description>A well-named test answers 3 questions: 1. What code is being tested? 2. What scenario is being tested? 3. What is the expected result? Answering th...</description><pubDate>Sun, 26 Sep 2021 13:55:02 GMT</pubDate><category>Tweets</category></item><item><title>7 things that keep teams from doing Continuous Delivery (deploying daily or...</title><link>https://coryhouse.dev/2021/09/29/tweet-1443187432376123394/</link><guid isPermaLink="true">https://coryhouse.dev/2021/09/29/tweet-1443187432376123394/</guid><description>7 things that keep teams from doing Continuous Delivery (deploying daily or even hourly): 1. Non-atomic PRs. Solution: Each PR must be ready for a...</description><pubDate>Wed, 29 Sep 2021 12:14:31 GMT</pubDate><category>Tweets</category></item><item><title>Handy pattern I enjoy: Clone the repo twice</title><link>https://coryhouse.dev/2021/09/29/tweet-1443243425395101698/</link><guid isPermaLink="true">https://coryhouse.dev/2021/09/29/tweet-1443243425395101698/</guid><description>Handy pattern I enjoy: Clone the repo twice. This way, I can have two local copies, pointed to different branches. I find this is useful when I nee...</description><pubDate>Wed, 29 Sep 2021 15:57:01 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You&apos;re using @Cypress_io for tests, and need to log in for each test</title><link>https://coryhouse.dev/2021/09/29/tweet-1443296696490921993/</link><guid isPermaLink="true">https://coryhouse.dev/2021/09/29/tweet-1443296696490921993/</guid><description>Problem: You&apos;re using @Cypress_io for tests, and need to log in for each test. Solution: Just found the new session API! It holds cookies &amp; ses...</description><pubDate>Wed, 29 Sep 2021 19:28:42 GMT</pubDate><category>Tweets</category></item><item><title>This Cypress post just blew my mind</title><link>https://coryhouse.dev/2021/10/03/tweet-1444693074433687554/</link><guid isPermaLink="true">https://coryhouse.dev/2021/10/03/tweet-1444693074433687554/</guid><description>This Cypress post just blew my mind. Summary: Avoid initializing test data via the UI. Instead, add a test-friendly API to your app. The API will i...</description><pubDate>Sun, 03 Oct 2021 15:57:24 GMT</pubDate><category>Tweets</category></item><item><title>Why I store all URLs in a one file: ✅ Support reuse ✅ Enforce consistency ✅...</title><link>https://coryhouse.dev/2021/10/04/tweet-1444998942912024578/</link><guid isPermaLink="true">https://coryhouse.dev/2021/10/04/tweet-1444998942912024578/</guid><description>Why I store all URLs in a one file: ✅ Support reuse ✅ Enforce consistency ✅ Easy to see duplication ✅ Test URLs in isolation ✅ Simple call sites =...</description><pubDate>Mon, 04 Oct 2021 12:12:49 GMT</pubDate><category>Tweets</category></item><item><title>7 practices that take more time up front, but save time later: 1</title><link>https://coryhouse.dev/2021/10/05/tweet-1445389600931864580/</link><guid isPermaLink="true">https://coryhouse.dev/2021/10/05/tweet-1445389600931864580/</guid><description>7 practices that take more time up front, but save time later: 1. Automating tests 2. Declaring types 3. Refactoring 4. Writing docs 5. Performing...</description><pubDate>Tue, 05 Oct 2021 14:05:09 GMT</pubDate><category>Tweets</category></item><item><title>Common problems I see at companies that are struggling with their reusable...</title><link>https://coryhouse.dev/2021/10/07/tweet-1446070450963030019/</link><guid isPermaLink="true">https://coryhouse.dev/2021/10/07/tweet-1446070450963030019/</guid><description>Common problems I see at companies that are struggling with their reusable component library: ❌Weak docs ❌No UX team ❌No dedicated support team ❌Po...</description><pubDate>Thu, 07 Oct 2021 11:10:36 GMT</pubDate><category>Tweets</category></item><item><title>Software dev is an amazing career</title><link>https://coryhouse.dev/2021/10/10/tweet-1447206849145626627/</link><guid isPermaLink="true">https://coryhouse.dev/2021/10/10/tweet-1447206849145626627/</guid><description>Software dev is an amazing career. Work anywhere. Flexible hours. Low red tape. Intellectually challenging. Lots of creative freedom. Many job oppo...</description><pubDate>Sun, 10 Oct 2021 14:26:15 GMT</pubDate><category>Tweets</category></item><item><title>HTML z-index tip: You might not need a z-index at all</title><link>https://coryhouse.dev/2021/10/11/tweet-1447543723827552262/</link><guid isPermaLink="true">https://coryhouse.dev/2021/10/11/tweet-1447543723827552262/</guid><description>HTML z-index tip: You might not need a z-index at all. Here&apos;s why: Later HTML elements are automatically rendered above earlier elements. So, a z-i...</description><pubDate>Mon, 11 Oct 2021 12:44:52 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m working on 2 similar React component libraries</title><link>https://coryhouse.dev/2021/10/13/tweet-1448268084905644033/</link><guid isPermaLink="true">https://coryhouse.dev/2021/10/13/tweet-1448268084905644033/</guid><description>I&apos;m working on 2 similar React component libraries. One is written in #javascript. One is written in #typescript. In the JS version, I frequently f...</description><pubDate>Wed, 13 Oct 2021 12:43:13 GMT</pubDate><category>Tweets</category></item><item><title>Woah, just found Sapling, a @code extension that displays my app&apos;s React...</title><link>https://coryhouse.dev/2021/10/13/tweet-1448326430828470277/</link><guid isPermaLink="true">https://coryhouse.dev/2021/10/13/tweet-1448326430828470277/</guid><description>Woah, just found Sapling, a @code extension that displays my app&apos;s React component tree! 😍 I like visualizing and navigating the tree this way. Es...</description><pubDate>Wed, 13 Oct 2021 16:35:04 GMT</pubDate><category>Tweets</category></item><item><title>The 4-step bug fix: 1</title><link>https://coryhouse.dev/2021/10/14/tweet-1448678195746725893/</link><guid isPermaLink="true">https://coryhouse.dev/2021/10/14/tweet-1448678195746725893/</guid><description>The 4-step bug fix: 1. Write a test that reproduces the bug (assert the correct behavior). 2. Watch the test fail, due to the bug. ❌ 3. Fix the bug...</description><pubDate>Thu, 14 Oct 2021 15:52:51 GMT</pubDate><category>Tweets</category></item><item><title>JavaScript&apos;s 8 falsy values: 0 -0 false NaN &quot;&quot; (empty string) null undefined...</title><link>https://coryhouse.dev/2021/10/19/tweet-1450593382552805384/</link><guid isPermaLink="true">https://coryhouse.dev/2021/10/19/tweet-1450593382552805384/</guid><description>JavaScript&apos;s 8 falsy values: 0 -0 false NaN &quot;&quot; (empty string) null undefined document.all Everything else is truthy. #javascript</description><pubDate>Tue, 19 Oct 2021 22:43:07 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m trying out pnpm (a fast, powerful replacement for npm)</title><link>https://coryhouse.dev/2021/10/24/tweet-1452242217008078850/</link><guid isPermaLink="true">https://coryhouse.dev/2021/10/24/tweet-1452242217008078850/</guid><description>I&apos;m trying out pnpm (a fast, powerful replacement for npm). It clearly tells me if I&apos;m using a deprecated package, or if a newer major version is a...</description><pubDate>Sun, 24 Oct 2021 11:55:00 GMT</pubDate><category>Tweets</category></item><item><title>Coding is writing</title><link>https://coryhouse.dev/2021/10/26/tweet-1453000798611329024/</link><guid isPermaLink="true">https://coryhouse.dev/2021/10/26/tweet-1453000798611329024/</guid><description>Coding is writing. So: Better grammar = better code. Better vocabulary = better code. Better organizational skills = better code. More empathy for...</description><pubDate>Tue, 26 Oct 2021 14:09:20 GMT</pubDate><category>Tweets</category></item><item><title>For most of my life, my goal was to save enough money that I could stop working</title><link>https://coryhouse.dev/2021/10/28/tweet-1453701777690353668/</link><guid isPermaLink="true">https://coryhouse.dev/2021/10/28/tweet-1453701777690353668/</guid><description>For most of my life, my goal was to save enough money that I could stop working. Now I realize that was the wrong goal for me. I love what I do. So...</description><pubDate>Thu, 28 Oct 2021 12:34:46 GMT</pubDate><category>Tweets</category></item><item><title>How to create a React app in 2021: Client rendered: create-react-app Static,...</title><link>https://coryhouse.dev/2021/10/29/tweet-1454064342857568257/</link><guid isPermaLink="true">https://coryhouse.dev/2021/10/29/tweet-1454064342857568257/</guid><description>How to create a React app in 2021: Client rendered: create-react-app Static, pre-rendered: @GatsbyJS, @astrodotbuild Server-rendered: Next.js by @v...</description><pubDate>Fri, 29 Oct 2021 12:35:29 GMT</pubDate><category>Tweets</category></item><item><title>This week I worked with a team to get code coverage over 80% (a corporate...</title><link>https://coryhouse.dev/2021/10/30/tweet-1454413464156483587/</link><guid isPermaLink="true">https://coryhouse.dev/2021/10/30/tweet-1454413464156483587/</guid><description>This week I worked with a team to get code coverage over 80% (a corporate minimum). The problem with this effort: Code coverage can be gamed. Sure,...</description><pubDate>Sat, 30 Oct 2021 11:42:46 GMT</pubDate><category>Tweets</category></item><item><title>Found a M1 Max 32GB in stock at my local Apple store and couldn’t resist</title><link>https://coryhouse.dev/2021/10/31/tweet-1454848091316760578/</link><guid isPermaLink="true">https://coryhouse.dev/2021/10/31/tweet-1454848091316760578/</guid><description>Found a M1 Max 32GB in stock at my local Apple store and couldn’t resist! Pros over my 2019 i9: ✅ Fast! Runs Jest tests twice as fast as my i9. ✅ A...</description><pubDate>Sun, 31 Oct 2021 16:29:49 GMT</pubDate><category>Tweets</category></item><item><title>Mac performance / battery life tip: Tell Spotlight to ignore the folder...</title><link>https://coryhouse.dev/2021/11/02/tweet-1455327026102128643/</link><guid isPermaLink="true">https://coryhouse.dev/2021/11/02/tweet-1455327026102128643/</guid><description>Mac performance / battery life tip: Tell Spotlight to ignore the folder where you store source code. Especially important for #JavaScript devs due...</description><pubDate>Tue, 02 Nov 2021 00:12:56 GMT</pubDate><category>Tweets</category></item><item><title>Woah, I just found an elegant way to resolve package-lock.json conflicts:...</title><link>https://coryhouse.dev/2021/11/02/tweet-1455336598795694082/</link><guid isPermaLink="true">https://coryhouse.dev/2021/11/02/tweet-1455336598795694082/</guid><description>Woah, I just found an elegant way to resolve package-lock.json conflicts: npm install --package-lock-only &quot;npm will automatically resolve any confl...</description><pubDate>Tue, 02 Nov 2021 00:50:58 GMT</pubDate><category>Tweets</category></item><item><title>Woah, Chrome now has a built in recorder</title><link>https://coryhouse.dev/2021/11/04/tweet-1456253625886511111/</link><guid isPermaLink="true">https://coryhouse.dev/2021/11/04/tweet-1456253625886511111/</guid><description>Woah, Chrome now has a built in recorder. Includes metrics for measuring performance too. And you can export the results to a Puppeteer script. htt...</description><pubDate>Thu, 04 Nov 2021 13:34:54 GMT</pubDate><category>Tweets</category></item><item><title>Checklist: How to make your React app faster ⚛️: ✅ Keep state as local as...</title><link>https://coryhouse.dev/2021/11/05/tweet-1456616541970178049/</link><guid isPermaLink="true">https://coryhouse.dev/2021/11/05/tweet-1456616541970178049/</guid><description>Checklist: How to make your React app faster ⚛️: ✅ Keep state as local as possible. Start by declaring state in the component that uses it. Lift as...</description><pubDate>Fri, 05 Nov 2021 13:37:00 GMT</pubDate><category>Tweets</category></item><item><title>When I consider splitting up a component: 1</title><link>https://coryhouse.dev/2021/11/07/tweet-1457333231460700160/</link><guid isPermaLink="true">https://coryhouse.dev/2021/11/07/tweet-1457333231460700160/</guid><description>When I consider splitting up a component: 1. Support reuse 2. Eliminate duplicated markup 3. JSX is hard to read / &quot;too long&quot; / doesn’t “fit in my...</description><pubDate>Sun, 07 Nov 2021 13:04:52 GMT</pubDate><category>Tweets</category></item><item><title>Had an awesome evening out last night in Atlanta with @jcreamer898...</title><link>https://coryhouse.dev/2021/11/10/tweet-1458412249790439426/</link><guid isPermaLink="true">https://coryhouse.dev/2021/11/10/tweet-1458412249790439426/</guid><description>Had an awesome evening out last night in Atlanta with @jcreamer898 @kentcdodds @flybayer @RayGesualdo! Having a blast at @connect_js!</description><pubDate>Wed, 10 Nov 2021 12:32:30 GMT</pubDate><category>Tweets</category></item><item><title>This week I learned more about a new React framework: @blitz_js</title><link>https://coryhouse.dev/2021/11/11/tweet-1458788829582794757/</link><guid isPermaLink="true">https://coryhouse.dev/2021/11/11/tweet-1458788829582794757/</guid><description>This week I learned more about a new React framework: @blitz_js. Blitz &quot;wraps&quot; Next.js and adds: ✅@prisma DB ✅Generates funcs for calling the API v...</description><pubDate>Thu, 11 Nov 2021 13:28:54 GMT</pubDate><category>Tweets</category></item><item><title>Code review habit: To review tests, I split my editor vertically</title><link>https://coryhouse.dev/2021/11/11/tweet-1458855514142560266/</link><guid isPermaLink="true">https://coryhouse.dev/2021/11/11/tweet-1458855514142560266/</guid><description>Code review habit: To review tests, I split my editor vertically. Left side: File under test Right side: Test Benefits: ✅ Reading tests helps me un...</description><pubDate>Thu, 11 Nov 2021 17:53:53 GMT</pubDate><category>Tweets</category></item><item><title>Two things I enjoy: ✅ Fast machines ✅ Fast test suites On the M1 Max, 300+...</title><link>https://coryhouse.dev/2021/11/12/tweet-1459157676840079365/</link><guid isPermaLink="true">https://coryhouse.dev/2021/11/12/tweet-1459157676840079365/</guid><description>Two things I enjoy: ✅ Fast machines ✅ Fast test suites On the M1 Max, 300+ tests pass in less than 1 second! 😍</description><pubDate>Fri, 12 Nov 2021 13:54:34 GMT</pubDate><category>Tweets</category></item><item><title>I was using fireEvent with @TestingLib</title><link>https://coryhouse.dev/2021/11/13/tweet-1459514383546134530/</link><guid isPermaLink="true">https://coryhouse.dev/2021/11/13/tweet-1459514383546134530/</guid><description>I was using fireEvent with @TestingLib. But, I&apos;ve switched to using user-event instead. Why? The docs now recommend user-event instead fireEvent: h...</description><pubDate>Sat, 13 Nov 2021 13:32:00 GMT</pubDate><category>Tweets</category></item><item><title>Many #React devs consider create-react-app the obvious choice</title><link>https://coryhouse.dev/2021/11/14/tweet-1459877336090877955/</link><guid isPermaLink="true">https://coryhouse.dev/2021/11/14/tweet-1459877336090877955/</guid><description>Many #React devs consider create-react-app the obvious choice. But that era is passing. - It’s not supported by Meta full-time anymore - There are...</description><pubDate>Sun, 14 Nov 2021 13:34:14 GMT</pubDate><category>Tweets</category></item><item><title>With projects that use npm, it&apos;s easy to make two mistakes: ❌ Unused...</title><link>https://coryhouse.dev/2021/11/15/tweet-1460242672757657610/</link><guid isPermaLink="true">https://coryhouse.dev/2021/11/15/tweet-1460242672757657610/</guid><description>With projects that use npm, it&apos;s easy to make two mistakes: ❌ Unused packages in package.json ❌ Using packages that aren&apos;t in package.json To catch...</description><pubDate>Mon, 15 Nov 2021 13:45:57 GMT</pubDate><category>Tweets</category></item><item><title>Being a developer requires balancing 2 skills: 1</title><link>https://coryhouse.dev/2021/11/16/tweet-1460692048676368394/</link><guid isPermaLink="true">https://coryhouse.dev/2021/11/16/tweet-1460692048676368394/</guid><description>Being a developer requires balancing 2 skills: 1. Be curious (get to the root of the problem) 2. Accept some mysteries (so you can get things done)...</description><pubDate>Tue, 16 Nov 2021 19:31:37 GMT</pubDate><category>Tweets</category></item><item><title>Wow, the #React ecosystem now has (at least) 3 routers: 1</title><link>https://coryhouse.dev/2021/11/17/tweet-1460783565835227139/</link><guid isPermaLink="true">https://coryhouse.dev/2021/11/17/tweet-1460783565835227139/</guid><description>Wow, the #React ecosystem now has (at least) 3 routers: 1. React Router 2. Next.js Router 3. React Location - the new router from @tannerlinsley (t...</description><pubDate>Wed, 17 Nov 2021 01:35:16 GMT</pubDate><category>Tweets</category></item><item><title>I need to pick an auth provider for a web app startup</title><link>https://coryhouse.dev/2021/11/19/tweet-1461664908538519552/</link><guid isPermaLink="true">https://coryhouse.dev/2021/11/19/tweet-1461664908538519552/</guid><description>I need to pick an auth provider for a web app startup. I like Auth0, but my client is concerned about the cost at scale. Questions: 1. What other p...</description><pubDate>Fri, 19 Nov 2021 11:57:25 GMT</pubDate><category>Tweets</category></item><item><title>Ever wonder if your TypeScript app has unused code</title><link>https://coryhouse.dev/2021/11/20/tweet-1462143004198715407/</link><guid isPermaLink="true">https://coryhouse.dev/2021/11/20/tweet-1462143004198715407/</guid><description>Ever wonder if your TypeScript app has unused code? This handy package finds unused exports: https://github.com/pzavolinsky/ts-unused-exports #type...</description><pubDate>Sat, 20 Nov 2021 19:37:12 GMT</pubDate><category>Tweets</category></item><item><title>Habit: I step away from the machine when I get a confusing error</title><link>https://coryhouse.dev/2021/11/21/tweet-1462449868639809541/</link><guid isPermaLink="true">https://coryhouse.dev/2021/11/21/tweet-1462449868639809541/</guid><description>Habit: I step away from the machine when I get a confusing error. Benefits: ✅ Stepping away lowers my stress and fosters creativity. ✅ I know what...</description><pubDate>Sun, 21 Nov 2021 15:56:34 GMT</pubDate><category>Tweets</category></item><item><title>Just found a way to write React tests faster</title><link>https://coryhouse.dev/2021/11/22/tweet-1462772424685101065/</link><guid isPermaLink="true">https://coryhouse.dev/2021/11/22/tweet-1462772424685101065/</guid><description>Just found a way to write React tests faster! Instead of writing tests from scratch, I&apos;m writing Jest tests against my Storybook stories via this &quot;...</description><pubDate>Mon, 22 Nov 2021 13:18:17 GMT</pubDate><category>Tweets</category></item><item><title>After working in TypeScript for awhile, writing JavaScript feels...</title><link>https://coryhouse.dev/2021/11/22/tweet-1462834275292745733/</link><guid isPermaLink="true">https://coryhouse.dev/2021/11/22/tweet-1462834275292745733/</guid><description>After working in TypeScript for awhile, writing JavaScript feels surprisingly dangerous, and mentally taxing. Here&apos;s why: ✅ TypeScript makes the im...</description><pubDate>Mon, 22 Nov 2021 17:24:04 GMT</pubDate><category>Tweets</category></item><item><title>Pull request habit: Provide before and after screenshots in the pull request...</title><link>https://coryhouse.dev/2021/11/23/tweet-1463132466202488836/</link><guid isPermaLink="true">https://coryhouse.dev/2021/11/23/tweet-1463132466202488836/</guid><description>Pull request habit: Provide before and after screenshots in the pull request description. I&apos;m on a team that&apos;s doing this consistently. I&apos;ve found...</description><pubDate>Tue, 23 Nov 2021 13:08:58 GMT</pubDate><category>Tweets</category></item><item><title>Problem: I have a React component with optional props that should only be...</title><link>https://coryhouse.dev/2021/11/23/tweet-1463197849311711236/</link><guid isPermaLink="true">https://coryhouse.dev/2021/11/23/tweet-1463197849311711236/</guid><description>Problem: I have a React component with optional props that should only be used together. Solution: I unify the props into a single prop that accept...</description><pubDate>Tue, 23 Nov 2021 17:28:46 GMT</pubDate><category>Tweets</category></item><item><title>A frustrating trend: The biggest reason I see teams ignoring/violating the...</title><link>https://coryhouse.dev/2021/11/24/tweet-1463505415044542469/</link><guid isPermaLink="true">https://coryhouse.dev/2021/11/24/tweet-1463505415044542469/</guid><description>A frustrating trend: The biggest reason I see teams ignoring/violating the design system isn’t developers. It’s designers. Some designers reinvent...</description><pubDate>Wed, 24 Nov 2021 13:50:56 GMT</pubDate><category>Tweets</category></item><item><title>Today I’m thankful for: @reactjs - For providing an elegant component API...</title><link>https://coryhouse.dev/2021/11/25/tweet-1463865291084025870/</link><guid isPermaLink="true">https://coryhouse.dev/2021/11/25/tweet-1463865291084025870/</guid><description>Today I’m thankful for: @reactjs - For providing an elegant component API @TestingLib - For helping me write user-oriented tests, &amp; accessible...</description><pubDate>Thu, 25 Nov 2021 13:40:57 GMT</pubDate><category>Tweets</category></item><item><title>My initial impressions on @remix_run: ✅ Uses the web platform ✅ Works...</title><link>https://coryhouse.dev/2021/11/26/tweet-1464244123955773478/</link><guid isPermaLink="true">https://coryhouse.dev/2021/11/26/tweet-1464244123955773478/</guid><description>My initial impressions on @remix_run: ✅ Uses the web platform ✅ Works without JS ✅ Elegantly mixes React with backend code ✅ Clear “page” API ✅ Fil...</description><pubDate>Fri, 26 Nov 2021 14:46:18 GMT</pubDate><category>Tweets</category></item><item><title>I’ve seen some teams fail to successfully create design systems and...</title><link>https://coryhouse.dev/2021/11/28/tweet-1464967685511565314/</link><guid isPermaLink="true">https://coryhouse.dev/2021/11/28/tweet-1464967685511565314/</guid><description>I’ve seen some teams fail to successfully create design systems and component libraries. Mistakes: ❌ Poor docs ❌ Allowing designers/devs to ignore...</description><pubDate>Sun, 28 Nov 2021 14:41:28 GMT</pubDate><category>Tweets</category></item><item><title>To expedite code reviews, I keep my PR&apos;s small</title><link>https://coryhouse.dev/2021/11/29/tweet-1465306023472812036/</link><guid isPermaLink="true">https://coryhouse.dev/2021/11/29/tweet-1465306023472812036/</guid><description>To expedite code reviews, I keep my PR&apos;s small. Here&apos;s how: ✅ Focus on 1 thing. ✅ Only change what’s necessary for that 1 thing. ✅ Handle bugs, new...</description><pubDate>Mon, 29 Nov 2021 13:05:54 GMT</pubDate><category>Tweets</category></item><item><title>I find TypeScript gets me to a better design, faster, because it encourages...</title><link>https://coryhouse.dev/2021/12/02/tweet-1466481097206861831/</link><guid isPermaLink="true">https://coryhouse.dev/2021/12/02/tweet-1466481097206861831/</guid><description>I find TypeScript gets me to a better design, faster, because it encourages me to refactor earlier, and more often. In JS, I’m hesitant to change m...</description><pubDate>Thu, 02 Dec 2021 18:55:14 GMT</pubDate><category>Tweets</category></item><item><title>My code review checklist: ✅ Tested ✅ Secure ✅ Robust ✅ Reusable ✅ Accessible...</title><link>https://coryhouse.dev/2021/12/03/tweet-1466758039965474822/</link><guid isPermaLink="true">https://coryhouse.dev/2021/12/03/tweet-1466758039965474822/</guid><description>My code review checklist: ✅ Tested ✅ Secure ✅ Robust ✅ Reusable ✅ Accessible ✅ Performant ✅ Configurable ✅ Documented I use this as a quick reminde...</description><pubDate>Fri, 03 Dec 2021 13:15:42 GMT</pubDate><category>Tweets</category></item><item><title>I admire how @remix_run embraces convention over configuration (as...</title><link>https://coryhouse.dev/2021/12/04/tweet-1467263905084985351/</link><guid isPermaLink="true">https://coryhouse.dev/2021/12/04/tweet-1467263905084985351/</guid><description>I admire how @remix_run embraces convention over configuration (as popularized by Rails) ✅ Name your file, and get a route &quot;for free&quot; ✅ Export a fu...</description><pubDate>Sat, 04 Dec 2021 22:45:50 GMT</pubDate><category>Tweets</category></item><item><title>Becoming a software developer is a journey, not a destination</title><link>https://coryhouse.dev/2021/12/06/tweet-1467870954319712267/</link><guid isPermaLink="true">https://coryhouse.dev/2021/12/06/tweet-1467870954319712267/</guid><description>Becoming a software developer is a journey, not a destination. The moment you write your first code, you’re a software developer. The rest is a jou...</description><pubDate>Mon, 06 Dec 2021 14:58:01 GMT</pubDate><category>Tweets</category></item><item><title>15 ways to make a slow React app: Put all state in the root Don’t cache,...</title><link>https://coryhouse.dev/2021/12/09/tweet-1468947828332544004/</link><guid isPermaLink="true">https://coryhouse.dev/2021/12/09/tweet-1468947828332544004/</guid><description>15 ways to make a slow React app: Put all state in the root Don’t cache, refetch Pass needless props Change state constantly Request more data than...</description><pubDate>Thu, 09 Dec 2021 14:17:08 GMT</pubDate><category>Tweets</category></item><item><title>To close out the year, I&apos;m experimenting with using these compelling tools...</title><link>https://coryhouse.dev/2021/12/11/tweet-1469714887106514944/</link><guid isPermaLink="true">https://coryhouse.dev/2021/12/11/tweet-1469714887106514944/</guid><description>To close out the year, I&apos;m experimenting with using these compelling tools more in 2022: @remix_run @turborepo @tailwindcss @ApiMocking @prisma @pn...</description><pubDate>Sat, 11 Dec 2021 17:05:09 GMT</pubDate><category>Tweets</category></item><item><title>A powerful way to grow quickly: Learn alone, for free</title><link>https://coryhouse.dev/2021/12/11/tweet-1469751227143659521/</link><guid isPermaLink="true">https://coryhouse.dev/2021/12/11/tweet-1469751227143659521/</guid><description>A powerful way to grow quickly: Learn alone, for free. I don&apos;t need permission, a teacher, or costly resources to learn a new skill. I just need to...</description><pubDate>Sat, 11 Dec 2021 19:29:33 GMT</pubDate><category>Tweets</category></item><item><title>My unintuitive solution to burnout: Learn</title><link>https://coryhouse.dev/2021/12/12/tweet-1470042072786911238/</link><guid isPermaLink="true">https://coryhouse.dev/2021/12/12/tweet-1470042072786911238/</guid><description>My unintuitive solution to burnout: Learn. Sometimes, when I feel burnout, I’m actually just bored. I want novelty. I want a new challenge. I want...</description><pubDate>Sun, 12 Dec 2021 14:45:16 GMT</pubDate><category>Tweets</category></item><item><title>Just created Remix Doge with @remix_run</title><link>https://coryhouse.dev/2021/12/12/tweet-1470081880250855424/</link><guid isPermaLink="true">https://coryhouse.dev/2021/12/12/tweet-1470081880250855424/</guid><description>Just created Remix Doge with @remix_run. The app displays dog images from an API.🐕 Why I&apos;m impressed: 1. It runs without JS 2. Very little code No...</description><pubDate>Sun, 12 Dec 2021 17:23:27 GMT</pubDate><category>Tweets</category></item><item><title>This month I’m switching one of my clients from create-react-app to @vercel...</title><link>https://coryhouse.dev/2021/12/14/tweet-1470763887771463680/</link><guid isPermaLink="true">https://coryhouse.dev/2021/12/14/tweet-1470763887771463680/</guid><description>This month I’m switching one of my clients from create-react-app to @vercel Next.js. I’ve noticed the strong opinions help me navigate and build fa...</description><pubDate>Tue, 14 Dec 2021 14:33:30 GMT</pubDate><category>Tweets</category></item><item><title>When logic is hard to unit test due to side-effects, I typically prefer...</title><link>https://coryhouse.dev/2021/12/15/tweet-1471132824623357952/</link><guid isPermaLink="true">https://coryhouse.dev/2021/12/15/tweet-1471132824623357952/</guid><description>When logic is hard to unit test due to side-effects, I typically prefer extracting over mocking. My approach: 1. Extract the logic to a well-named,...</description><pubDate>Wed, 15 Dec 2021 14:59:32 GMT</pubDate><category>Tweets</category></item><item><title>A common automated testing mistake in TypeScript: Not specifying the...</title><link>https://coryhouse.dev/2021/12/22/tweet-1473649589739835400/</link><guid isPermaLink="true">https://coryhouse.dev/2021/12/22/tweet-1473649589739835400/</guid><description>A common automated testing mistake in TypeScript: Not specifying the expected result&apos;s type. Types are useful in tests too. For all the same reason...</description><pubDate>Wed, 22 Dec 2021 13:40:15 GMT</pubDate><category>Tweets</category></item><item><title>When I think back on my early career, I made one mistake frequently: I tried...</title><link>https://coryhouse.dev/2021/12/24/tweet-1474366893792407562/</link><guid isPermaLink="true">https://coryhouse.dev/2021/12/24/tweet-1474366893792407562/</guid><description>When I think back on my early career, I made one mistake frequently: I tried to change too much at once, and got overwhelmed. I’ve learned small, i...</description><pubDate>Fri, 24 Dec 2021 13:10:34 GMT</pubDate><category>Tweets</category></item><item><title>There’s nothing wrong with using free time to learn, explore, and grow</title><link>https://coryhouse.dev/2021/12/24/tweet-1474497372759732227/</link><guid isPermaLink="true">https://coryhouse.dev/2021/12/24/tweet-1474497372759732227/</guid><description>There’s nothing wrong with using free time to learn, explore, and grow. Voluntary growth isn’t “hustle culture”. Working outside work isn’t “workah...</description><pubDate>Fri, 24 Dec 2021 21:49:03 GMT</pubDate><category>Tweets</category></item><item><title>Concern: Waiting for code reviews wastes time</title><link>https://coryhouse.dev/2021/12/26/tweet-1475115506843754499/</link><guid isPermaLink="true">https://coryhouse.dev/2021/12/26/tweet-1475115506843754499/</guid><description>Concern: Waiting for code reviews wastes time. Reality: I can be productive while waiting for a review. ✅ I review my own PR a final time. ✅ I revi...</description><pubDate>Sun, 26 Dec 2021 14:45:17 GMT</pubDate><category>Tweets</category></item><item><title>Just learned about Zod, a #TypeScript schema declaration and validation library</title><link>https://coryhouse.dev/2021/12/27/tweet-1475524331589574666/</link><guid isPermaLink="true">https://coryhouse.dev/2021/12/27/tweet-1475524331589574666/</guid><description>Just learned about Zod, a #TypeScript schema declaration and validation library. Zod is a simple way to validate API response shapes. Declare a val...</description><pubDate>Mon, 27 Dec 2021 17:49:49 GMT</pubDate><category>Tweets</category></item><item><title>I hated Apple</title><link>https://coryhouse.dev/2021/12/28/tweet-1475662558442889216/</link><guid isPermaLink="true">https://coryhouse.dev/2021/12/28/tweet-1475662558442889216/</guid><description>I hated Apple. I thought it was just overpriced. Now I realize what they&apos;re selling: Integration. My laptop, phone, watch, and headphones all talk...</description><pubDate>Tue, 28 Dec 2021 02:59:05 GMT</pubDate><category>Tweets</category></item><item><title>Accessibility tip: Use aria-current to style active links</title><link>https://coryhouse.dev/2021/12/31/tweet-1476910306702077954/</link><guid isPermaLink="true">https://coryhouse.dev/2021/12/31/tweet-1476910306702077954/</guid><description>Accessibility tip: Use aria-current to style active links. Benefits: 1. Screen reader users will get a friendly notification that the link is activ...</description><pubDate>Fri, 31 Dec 2021 13:37:11 GMT</pubDate><category>Tweets</category></item><item><title>Just switched an app from create-react-app to @vercel Next.js</title><link>https://coryhouse.dev/2022/01/02/tweet-1477735157985652747/</link><guid isPermaLink="true">https://coryhouse.dev/2022/01/02/tweet-1477735157985652747/</guid><description>Just switched an app from create-react-app to @vercel Next.js. A surprising benefit: Tests run twice as fast! Here’s why: With Next, each page rend...</description><pubDate>Sun, 02 Jan 2022 20:14:51 GMT</pubDate><category>Tweets</category></item><item><title>10 reasons I recently switched an app from create-react-app to @vercel...</title><link>https://coryhouse.dev/2022/01/03/tweet-1478033217311715332/</link><guid isPermaLink="true">https://coryhouse.dev/2022/01/03/tweet-1478033217311715332/</guid><description>10 reasons I recently switched an app from create-react-app to @vercel Next.js: 1 Faster startup 2 Faster builds 3 Faster first paint 4 Faster test...</description><pubDate>Mon, 03 Jan 2022 15:59:14 GMT</pubDate><category>Tweets</category></item><item><title>Has anyone created a comparison of @nextjs be @remix_run yet</title><link>https://coryhouse.dev/2022/01/04/tweet-1478189161773469698/</link><guid isPermaLink="true">https://coryhouse.dev/2022/01/04/tweet-1478189161773469698/</guid><description>Has anyone created a comparison of @nextjs be @remix_run yet? I’m enjoying both and compiling my thoughts, but would love to hear other takes.</description><pubDate>Tue, 04 Jan 2022 02:18:54 GMT</pubDate><category>Tweets</category></item><item><title>3 dev team tasks, ordered by priority: 1</title><link>https://coryhouse.dev/2022/01/04/tweet-1478383847431720968/</link><guid isPermaLink="true">https://coryhouse.dev/2022/01/04/tweet-1478383847431720968/</guid><description>3 dev team tasks, ordered by priority: 1. Critical bugs/blockers 2. Code review 3. Writing code Common mistake: Prioritizing coding over code revie...</description><pubDate>Tue, 04 Jan 2022 15:12:30 GMT</pubDate><category>Tweets</category></item><item><title>Four frontend trends I&apos;m seeing in 2022: 1</title><link>https://coryhouse.dev/2022/01/06/tweet-1479114994914512909/</link><guid isPermaLink="true">https://coryhouse.dev/2022/01/06/tweet-1479114994914512909/</guid><description>Four frontend trends I&apos;m seeing in 2022: 1. Moving from client-side to server-side rendering 2. Moving from lean client-side generators to full-sta...</description><pubDate>Thu, 06 Jan 2022 15:37:50 GMT</pubDate><category>Tweets</category></item><item><title>TIL this is valid #JavaScript: onClick?.(); I&apos;m familiar with optional...</title><link>https://coryhouse.dev/2022/01/06/tweet-1479200613812654086/</link><guid isPermaLink="true">https://coryhouse.dev/2022/01/06/tweet-1479200613812654086/</guid><description>TIL this is valid #JavaScript: onClick?.(); I&apos;m familiar with optional chaining, but I didn&apos;t realize I could use it before the invocation parens l...</description><pubDate>Thu, 06 Jan 2022 21:18:03 GMT</pubDate><category>Tweets</category></item><item><title>To me, the best thing money can buy is freedom</title><link>https://coryhouse.dev/2022/01/09/tweet-1480204629896056834/</link><guid isPermaLink="true">https://coryhouse.dev/2022/01/09/tweet-1480204629896056834/</guid><description>To me, the best thing money can buy is freedom. Freedom to eat what I want. Freedom to sleep when I want. Freedom to travel where I want. Freedom t...</description><pubDate>Sun, 09 Jan 2022 15:47:39 GMT</pubDate><category>Tweets</category></item><item><title>10 reusable component mistakes: 1</title><link>https://coryhouse.dev/2022/01/12/tweet-1481331588738826243/</link><guid isPermaLink="true">https://coryhouse.dev/2022/01/12/tweet-1481331588738826243/</guid><description>10 reusable component mistakes: 1. Incompatible props Example: &lt;Input required={false} requiredMessage=“Required!” /&gt; Solution: Unify props t...</description><pubDate>Wed, 12 Jan 2022 18:25:47 GMT</pubDate><category>Tweets</category></item><item><title>When I started programming, I feared I could never remember it all</title><link>https://coryhouse.dev/2022/01/13/tweet-1481631257704513536/</link><guid isPermaLink="true">https://coryhouse.dev/2022/01/13/tweet-1481631257704513536/</guid><description>When I started programming, I feared I could never remember it all. Now, I know that I never will. And that’s okay. Success as a modern developer i...</description><pubDate>Thu, 13 Jan 2022 14:16:33 GMT</pubDate><category>Tweets</category></item><item><title>Rapid development checklist: Clear requirements Small tickets Mock APIs CI...</title><link>https://coryhouse.dev/2022/01/16/tweet-1482735129093099525/</link><guid isPermaLink="true">https://coryhouse.dev/2022/01/16/tweet-1482735129093099525/</guid><description>Rapid development checklist: Clear requirements Small tickets Mock APIs CI server Linting Feature flags Trunk-based dev Static types Automated test...</description><pubDate>Sun, 16 Jan 2022 15:22:57 GMT</pubDate><category>Tweets</category></item><item><title>Just learned about devcontainers</title><link>https://coryhouse.dev/2022/01/17/tweet-1483086303348637701/</link><guid isPermaLink="true">https://coryhouse.dev/2022/01/17/tweet-1483086303348637701/</guid><description>Just learned about devcontainers. Declare a Docker image that contains your dev environment. Benefits: ✅ No need to manually install dependencies ✅...</description><pubDate>Mon, 17 Jan 2022 14:38:23 GMT</pubDate><category>Tweets</category></item><item><title>Just published</title><link>https://coryhouse.dev/2022/01/18/tweet-1483281008401264641/</link><guid isPermaLink="true">https://coryhouse.dev/2022/01/18/tweet-1483281008401264641/</guid><description>Just published! 🎉 Building Reusable Components...That Are Actually Reusable 🎥 In this talk, I share lessons learned from helping companies build...</description><pubDate>Tue, 18 Jan 2022 03:32:05 GMT</pubDate><category>Tweets</category></item><item><title>Why I use a backend for frontend (BFF) for most SPAs I build: ✅ Better security</title><link>https://coryhouse.dev/2022/01/19/tweet-1483875279596666882/</link><guid isPermaLink="true">https://coryhouse.dev/2022/01/19/tweet-1483875279596666882/</guid><description>Why I use a backend for frontend (BFF) for most SPAs I build: ✅ Better security. The BFF can set an HTTP-only cookie. ✅ Better performance. I can a...</description><pubDate>Wed, 19 Jan 2022 18:53:30 GMT</pubDate><category>Tweets</category></item><item><title>A little code review habit I appreciate: When my teammates make a minor...</title><link>https://coryhouse.dev/2022/01/21/tweet-1484582353053827073/</link><guid isPermaLink="true">https://coryhouse.dev/2022/01/21/tweet-1484582353053827073/</guid><description>A little code review habit I appreciate: When my teammates make a minor suggestion, they often prefix it with &quot;Nit:&quot; It&apos;s a short, polite way to sa...</description><pubDate>Fri, 21 Jan 2022 17:43:09 GMT</pubDate><category>Tweets</category></item><item><title>Why software development is so satisfying: We accelerate slow processes</title><link>https://coryhouse.dev/2022/01/22/tweet-1484886534516006916/</link><guid isPermaLink="true">https://coryhouse.dev/2022/01/22/tweet-1484886534516006916/</guid><description>Why software development is so satisfying: We accelerate slow processes. We simplify complex processes. We secure insecure processes. We harden err...</description><pubDate>Sat, 22 Jan 2022 13:51:52 GMT</pubDate><category>Tweets</category></item><item><title>I just created a custom Link component</title><link>https://coryhouse.dev/2022/01/22/tweet-1484931663343849479/</link><guid isPermaLink="true">https://coryhouse.dev/2022/01/22/tweet-1484931663343849479/</guid><description>I just created a custom Link component. What makes it unique? It only accepts *known* URLs. Benefits: ✅ Concise syntax ✅ URL autocomplete support ✅...</description><pubDate>Sat, 22 Jan 2022 16:51:11 GMT</pubDate><category>Tweets</category></item><item><title>I believe in storing developer-oriented docs in the repo</title><link>https://coryhouse.dev/2022/01/28/tweet-1487095280763817990/</link><guid isPermaLink="true">https://coryhouse.dev/2022/01/28/tweet-1487095280763817990/</guid><description>I believe in storing developer-oriented docs in the repo. 1. No discovery issues. It’s in the repo. 🔎 2. Easily navigate between the docs and the...</description><pubDate>Fri, 28 Jan 2022 16:08:38 GMT</pubDate><category>Tweets</category></item><item><title>New React 18 APIs: createRoot - replaces render startTransition - for low...</title><link>https://coryhouse.dev/2022/01/30/tweet-1487920978910973953/</link><guid isPermaLink="true">https://coryhouse.dev/2022/01/30/tweet-1487920978910973953/</guid><description>New React 18 APIs: createRoot - replaces render startTransition - for low priority updates useId - Creates an ID that is consistent on server and c...</description><pubDate>Sun, 30 Jan 2022 22:49:40 GMT</pubDate><category>Tweets</category></item><item><title>How I use #TypeScript with #Node today: 1</title><link>https://coryhouse.dev/2022/02/03/tweet-1489284842995036162/</link><guid isPermaLink="true">https://coryhouse.dev/2022/02/03/tweet-1489284842995036162/</guid><description>How I use #TypeScript with #Node today: 1. For dev, I use ts-node. ts-node compiles TypeScript before passing it on to Node. Useful for npm scripts...</description><pubDate>Thu, 03 Feb 2022 17:09:10 GMT</pubDate><category>Tweets</category></item><item><title>#TypeScript type narrowing: Use a truthy condition to remove null/undefined...</title><link>https://coryhouse.dev/2022/02/05/tweet-1489975825529200644/</link><guid isPermaLink="true">https://coryhouse.dev/2022/02/05/tweet-1489975825529200644/</guid><description>#TypeScript type narrowing: Use a truthy condition to remove null/undefined Use &quot;typeof&quot; to narrow a union of primitives Use &quot;instanceof&quot; to narrow...</description><pubDate>Sat, 05 Feb 2022 14:54:53 GMT</pubDate><category>Tweets</category></item><item><title>An interesting new collaborative software architecture: local-first...</title><link>https://coryhouse.dev/2022/02/11/tweet-1492203985335373825/</link><guid isPermaLink="true">https://coryhouse.dev/2022/02/11/tweet-1492203985335373825/</guid><description>An interesting new collaborative software architecture: local-first Traditional web apps think of the server as the primary system of record. local...</description><pubDate>Fri, 11 Feb 2022 18:28:48 GMT</pubDate><category>Tweets</category></item><item><title>8 ways to potentially speed up JavaScript project builds: Build tools: 1</title><link>https://coryhouse.dev/2022/02/12/tweet-1492536320366944259/</link><guid isPermaLink="true">https://coryhouse.dev/2022/02/12/tweet-1492536320366944259/</guid><description>8 ways to potentially speed up JavaScript project builds: Build tools: 1. swc 2. esbuild Fast, modern dev env: 3. Vite 4. Astro Monorepo tools: 5....</description><pubDate>Sat, 12 Feb 2022 16:29:23 GMT</pubDate><category>Tweets</category></item><item><title>Here&apos;s an interesting browser state solution: A database, written in JS,...</title><link>https://coryhouse.dev/2022/02/13/tweet-1492859757941637126/</link><guid isPermaLink="true">https://coryhouse.dev/2022/02/13/tweet-1492859757941637126/</guid><description>Here&apos;s an interesting browser state solution: A database, written in JS, called TinyBase. Tables, rows, cells, indexes, relationships, undo, and mo...</description><pubDate>Sun, 13 Feb 2022 13:54:36 GMT</pubDate><category>Tweets</category></item><item><title>In theory, it would be nice to write JavaScript web apps that don&apos;t need to...</title><link>https://coryhouse.dev/2022/02/14/tweet-1493223077907517440/</link><guid isPermaLink="true">https://coryhouse.dev/2022/02/14/tweet-1493223077907517440/</guid><description>In theory, it would be nice to write JavaScript web apps that don&apos;t need to be compiled. It&apos;s possible today. But there are multiple reasons I keep...</description><pubDate>Mon, 14 Feb 2022 13:58:19 GMT</pubDate><category>Tweets</category></item><item><title>I often implement React components via 6 files: 1</title><link>https://coryhouse.dev/2022/02/16/tweet-1493947989877997571/</link><guid isPermaLink="true">https://coryhouse.dev/2022/02/16/tweet-1493947989877997571/</guid><description>I often implement React components via 6 files: 1. Button.tsx - component 2. Button.types.ts - TS types 3. Button.test.ts - Jest + testing-library...</description><pubDate>Wed, 16 Feb 2022 13:58:51 GMT</pubDate><category>Tweets</category></item><item><title>Habit: When declaring REST API response types via #TypeScript, I only...</title><link>https://coryhouse.dev/2022/02/19/tweet-1495023556358455298/</link><guid isPermaLink="true">https://coryhouse.dev/2022/02/19/tweet-1495023556358455298/</guid><description>Habit: When declaring REST API response types via #TypeScript, I only declare properties for the fields we use. Benefits: 1. The type is simpler. 2...</description><pubDate>Sat, 19 Feb 2022 13:12:46 GMT</pubDate><category>Tweets</category></item><item><title>I don&apos;t generate mock data</title><link>https://coryhouse.dev/2022/02/21/tweet-1495768104378548235/</link><guid isPermaLink="true">https://coryhouse.dev/2022/02/21/tweet-1495768104378548235/</guid><description>I don&apos;t generate mock data. I create it by hand, strategically. I store it in static files. It covers our edge cases. When I find a bug, I: 1. Augm...</description><pubDate>Mon, 21 Feb 2022 14:31:20 GMT</pubDate><category>Tweets</category></item><item><title>Which initialization pattern do you typically prefer</title><link>https://coryhouse.dev/2022/02/23/tweet-1496587426713813006/</link><guid isPermaLink="true">https://coryhouse.dev/2022/02/23/tweet-1496587426713813006/</guid><description>Which initialization pattern do you typically prefer? Option 1: Initialize as null Option 2: Initialize as empty object Why?</description><pubDate>Wed, 23 Feb 2022 20:47:02 GMT</pubDate><category>Tweets</category></item><item><title>Just learned about Ky, an elegant alternative to fetch or Axios</title><link>https://coryhouse.dev/2022/02/24/tweet-1496858519433326600/</link><guid isPermaLink="true">https://coryhouse.dev/2022/02/24/tweet-1496858519433326600/</guid><description>Just learned about Ky, an elegant alternative to fetch or Axios. https://github.com/sindresorhus/ky Ky requires VERY little code to make HTTP calls...</description><pubDate>Thu, 24 Feb 2022 14:44:15 GMT</pubDate><category>Tweets</category></item><item><title>Just learned about the void operator in #JavaScript</title><link>https://coryhouse.dev/2022/02/26/tweet-1497574158968012807/</link><guid isPermaLink="true">https://coryhouse.dev/2022/02/26/tweet-1497574158968012807/</guid><description>Just learned about the void operator in #JavaScript. Useful to say “return undefined, regardless of what this code does”. Example: return void res....</description><pubDate>Sat, 26 Feb 2022 14:07:57 GMT</pubDate><category>Tweets</category></item><item><title>5 key developer skills: 1</title><link>https://coryhouse.dev/2022/02/28/tweet-1498294940257894403/</link><guid isPermaLink="true">https://coryhouse.dev/2022/02/28/tweet-1498294940257894403/</guid><description>5 key developer skills: 1. Decomposition: Break big problems down into small problems. 2. Grouping: Store related things together. 3. Naming: Descr...</description><pubDate>Mon, 28 Feb 2022 13:52:05 GMT</pubDate><category>Tweets</category></item><item><title>Just used esbuild-runner to speed up an app’s npm scripts, written in TypeScript</title><link>https://coryhouse.dev/2022/03/01/tweet-1498647037411315716/</link><guid isPermaLink="true">https://coryhouse.dev/2022/03/01/tweet-1498647037411315716/</guid><description>Just used esbuild-runner to speed up an app’s npm scripts, written in TypeScript. esbuild-runner starts the app over twice as fast. Here’s the diff...</description><pubDate>Tue, 01 Mar 2022 13:11:11 GMT</pubDate><category>Tweets</category></item><item><title>A map object is often an elegant alternative to switch statements and...</title><link>https://coryhouse.dev/2022/03/02/tweet-1499022031626674178/</link><guid isPermaLink="true">https://coryhouse.dev/2022/03/02/tweet-1499022031626674178/</guid><description>A map object is often an elegant alternative to switch statements and if/else statements. A map object maps keys to values. The map&apos;s values can be...</description><pubDate>Wed, 02 Mar 2022 14:01:17 GMT</pubDate><category>Tweets</category></item><item><title>Why I avoid naming files &quot;index&quot;: 1</title><link>https://coryhouse.dev/2022/03/03/tweet-1499366988078108675/</link><guid isPermaLink="true">https://coryhouse.dev/2022/03/03/tweet-1499366988078108675/</guid><description>Why I avoid naming files &quot;index&quot;: 1. Many files called index.* makes my open tabs harder to scan for the right file. 2. I open files by name using...</description><pubDate>Thu, 03 Mar 2022 12:52:01 GMT</pubDate><category>Tweets</category></item><item><title>VS Code tip: If you&apos;re on a project with a lot of files named index, you can...</title><link>https://coryhouse.dev/2022/03/04/tweet-1499751060768010240/</link><guid isPermaLink="true">https://coryhouse.dev/2022/03/04/tweet-1499751060768010240/</guid><description>VS Code tip: If you&apos;re on a project with a lot of files named index, you can show the folder&apos;s name in the tab. Change Workbench › Editor: Label Fo...</description><pubDate>Fri, 04 Mar 2022 14:18:11 GMT</pubDate><category>Tweets</category></item><item><title>Writing tests first (TDD) is a tradeoff</title><link>https://coryhouse.dev/2022/03/06/tweet-1500462479889031171/</link><guid isPermaLink="true">https://coryhouse.dev/2022/03/06/tweet-1500462479889031171/</guid><description>Writing tests first (TDD) is a tradeoff. Writing tests first: ✅Assures my code is testable ✅Assures each feature is covered ✅Avoids regressions dur...</description><pubDate>Sun, 06 Mar 2022 13:25:07 GMT</pubDate><category>Tweets</category></item><item><title>For years, I’ve been creating custom mock APIs for each app</title><link>https://coryhouse.dev/2022/03/09/tweet-1501546687097192453/</link><guid isPermaLink="true">https://coryhouse.dev/2022/03/09/tweet-1501546687097192453/</guid><description>For years, I’ve been creating custom mock APIs for each app. So, here’s an exciting idea I’m implementing today: 1. Create a mock API server to moc...</description><pubDate>Wed, 09 Mar 2022 13:13:22 GMT</pubDate><category>Tweets</category></item><item><title>3 technologies that are “better” than React: 1</title><link>https://coryhouse.dev/2022/03/12/tweet-1502622181859237900/</link><guid isPermaLink="true">https://coryhouse.dev/2022/03/12/tweet-1502622181859237900/</guid><description>3 technologies that are “better” than React: 1. Preact 2. Svelte 3. Solidjs These options offer better performance, smaller bundles, and more elega...</description><pubDate>Sat, 12 Mar 2022 12:27:00 GMT</pubDate><category>Tweets</category></item><item><title>Stop disabling copy/paste</title><link>https://coryhouse.dev/2022/03/14/stop-disabling-copy-paste/</link><guid isPermaLink="true">https://coryhouse.dev/2022/03/14/stop-disabling-copy-paste/</guid><description>Hey developers, please stop disabling copy/paste in form fields! 🚨 It’s awful UX. It’s confusing. It doesn’t improve security. It breaks password managers. It …</description><pubDate>Mon, 14 Mar 2022 14:21:11 GMT</pubDate><category>Uncategorized</category></item><item><title>An untrusted developer is a net loss</title><link>https://coryhouse.dev/2022/03/19/tweet-1505144981048246274/</link><guid isPermaLink="true">https://coryhouse.dev/2022/03/19/tweet-1505144981048246274/</guid><description>An untrusted developer is a net loss. The impact: Each line must be carefully reviewed in hopes of catching all the mistakes. We can’t assume anyth...</description><pubDate>Sat, 19 Mar 2022 11:31:42 GMT</pubDate><category>Tweets</category></item><item><title>Component design trick: When creating a component, I try to design the...</title><link>https://coryhouse.dev/2022/03/22/tweet-1506301885187244035/</link><guid isPermaLink="true">https://coryhouse.dev/2022/03/22/tweet-1506301885187244035/</guid><description>Component design trick: When creating a component, I try to design the public API before writing code. I ask “What is the most desirable code for c...</description><pubDate>Tue, 22 Mar 2022 16:08:49 GMT</pubDate><category>Tweets</category></item><item><title>Using Storybook</title><link>https://coryhouse.dev/2022/03/23/tweet-1506444387152183296/</link><guid isPermaLink="true">https://coryhouse.dev/2022/03/23/tweet-1506444387152183296/</guid><description>Using Storybook? Me too. But, I just tried out Ladle. It&apos;s basically Storybook, but MUCH faster. Ladle uses esbuild and Vite behind the scenes for...</description><pubDate>Wed, 23 Mar 2022 01:35:04 GMT</pubDate><category>Tweets</category></item><item><title>5 reasons reusable components are harder to write than app code: 1</title><link>https://coryhouse.dev/2022/03/24/tweet-1507029145313759244/</link><guid isPermaLink="true">https://coryhouse.dev/2022/03/24/tweet-1507029145313759244/</guid><description>5 reasons reusable components are harder to write than app code: 1. We have to carefully document each setting so reuse scenarios are clear 2. The...</description><pubDate>Thu, 24 Mar 2022 16:18:42 GMT</pubDate><category>Tweets</category></item><item><title>My take on micro-frontends: I think it’s important to standardize on one UI...</title><link>https://coryhouse.dev/2022/03/26/tweet-1507749629533769734/</link><guid isPermaLink="true">https://coryhouse.dev/2022/03/26/tweet-1507749629533769734/</guid><description>My take on micro-frontends: I think it’s important to standardize on one UI tech to deliver optimal UX. Why? Using a single UI tech to build the en...</description><pubDate>Sat, 26 Mar 2022 16:01:38 GMT</pubDate><category>Tweets</category></item><item><title>3 ways to scale a frontend across teams: 1</title><link>https://coryhouse.dev/2022/03/27/tweet-1508095172848070658/</link><guid isPermaLink="true">https://coryhouse.dev/2022/03/27/tweet-1508095172848070658/</guid><description>3 ways to scale a frontend across teams: 1. Micro-frontend - Each team owns a vertical slice 2. Separate apps - Each team owns separate pages on di...</description><pubDate>Sun, 27 Mar 2022 14:54:42 GMT</pubDate><category>Tweets</category></item><item><title>20 reasons to consider @nextjs over create-react-app: 1</title><link>https://coryhouse.dev/2022/03/28/tweet-1508428589242458113/</link><guid isPermaLink="true">https://coryhouse.dev/2022/03/28/tweet-1508428589242458113/</guid><description>20 reasons to consider @nextjs over create-react-app: 1. Faster startup (compiles pages on-the-fly) 2. Faster builds (uses swc) 3. Static generatio...</description><pubDate>Mon, 28 Mar 2022 12:59:35 GMT</pubDate><category>Tweets</category></item><item><title>Just learned CSS has 5 &quot;Layout modes&quot;: 1</title><link>https://coryhouse.dev/2022/03/29/tweet-1508808743592640523/</link><guid isPermaLink="true">https://coryhouse.dev/2022/03/29/tweet-1508808743592640523/</guid><description>Just learned CSS has 5 &quot;Layout modes&quot;: 1. Flexbox 2. Positioned (eg. position: absolute) 3. Grid 4. Table 5. Flow Some CSS properties work differen...</description><pubDate>Tue, 29 Mar 2022 14:10:11 GMT</pubDate><category>Tweets</category></item><item><title>Pairing vs code reviews is often debated</title><link>https://coryhouse.dev/2022/03/30/tweet-1509153270819921920/</link><guid isPermaLink="true">https://coryhouse.dev/2022/03/30/tweet-1509153270819921920/</guid><description>Pairing vs code reviews is often debated. It’s a tradeoff. Pair programming: ✅ Produces higher quality code ✅ Grows new devs faster ✅ Avoids rework...</description><pubDate>Wed, 30 Mar 2022 12:59:13 GMT</pubDate><category>Tweets</category></item><item><title>I work with dozens of teams every year</title><link>https://coryhouse.dev/2022/04/06/tweet-1511746101715611661/</link><guid isPermaLink="true">https://coryhouse.dev/2022/04/06/tweet-1511746101715611661/</guid><description>I work with dozens of teams every year. The goal? Accelerate development. Things I look for: ✅ Are endpoints mocked? ✅ Do test personas exist? ✅ Do...</description><pubDate>Wed, 06 Apr 2022 16:42:12 GMT</pubDate><category>Tweets</category></item><item><title>This CSS reset by @JoshWComeau contains a lot of thoughtful little tricks</title><link>https://coryhouse.dev/2022/04/10/tweet-1513174518172430348/</link><guid isPermaLink="true">https://coryhouse.dev/2022/04/10/tweet-1513174518172430348/</guid><description>This CSS reset by @JoshWComeau contains a lot of thoughtful little tricks. I learned a lot just reading his justifications. https://www.joshwcomeau...</description><pubDate>Sun, 10 Apr 2022 15:18:13 GMT</pubDate><category>Tweets</category></item><item><title>Woah, just installed Fig</title><link>https://coryhouse.dev/2022/04/10/tweet-1513178812854513664/</link><guid isPermaLink="true">https://coryhouse.dev/2022/04/10/tweet-1513178812854513664/</guid><description>Woah, just installed Fig. Fig provides slick autocomplete in the Terminal. Only spent a few minutes with it so far, but I&apos;m loving this so far. 👍...</description><pubDate>Sun, 10 Apr 2022 15:35:17 GMT</pubDate><category>Tweets</category></item><item><title>3 ways to split a dev team that is too big: 1</title><link>https://coryhouse.dev/2022/04/14/tweet-1514582662790496259/</link><guid isPermaLink="true">https://coryhouse.dev/2022/04/14/tweet-1514582662790496259/</guid><description>3 ways to split a dev team that is too big: 1. Vertical: Each team owns a different vertical slice 2. Horizontal: Separate front and backend team 3...</description><pubDate>Thu, 14 Apr 2022 12:33:41 GMT</pubDate><category>Tweets</category></item><item><title>Many teams say &quot;accessibility is important&quot;, but don&apos;t actually test...</title><link>https://coryhouse.dev/2022/04/19/tweet-1516399257909178375/</link><guid isPermaLink="true">https://coryhouse.dev/2022/04/19/tweet-1516399257909178375/</guid><description>Many teams say &quot;accessibility is important&quot;, but don&apos;t actually test accessibility. Why? They&apos;re &quot;too busy&quot;. They don&apos;t know how to test accessibil...</description><pubDate>Tue, 19 Apr 2022 12:52:11 GMT</pubDate><category>Tweets</category></item><item><title>Wow, TIL why Edge servers use V8 instead of Node</title><link>https://coryhouse.dev/2022/04/23/tweet-1517995251897675776/</link><guid isPermaLink="true">https://coryhouse.dev/2022/04/23/tweet-1517995251897675776/</guid><description>Wow, TIL why Edge servers use V8 instead of Node. It starts up 100x faster than Node. 🤯 This is huge. Not just because it&apos;s far lower overhead. Al...</description><pubDate>Sat, 23 Apr 2022 22:34:05 GMT</pubDate><category>Tweets</category></item><item><title>Are you unfamiliar with Edge hosting</title><link>https://coryhouse.dev/2022/04/24/tweet-1518186412218146816/</link><guid isPermaLink="true">https://coryhouse.dev/2022/04/24/tweet-1518186412218146816/</guid><description>Are you unfamiliar with Edge hosting? This is a wonderful intro. This post explains why @Cloudflare chose: 1. The V8 JavaScript engine 2. The servi...</description><pubDate>Sun, 24 Apr 2022 11:13:41 GMT</pubDate><category>Tweets</category></item><item><title>CSS Viewport height is complicated</title><link>https://coryhouse.dev/2022/04/27/tweet-1519286593269518338/</link><guid isPermaLink="true">https://coryhouse.dev/2022/04/27/tweet-1519286593269518338/</guid><description>CSS Viewport height is complicated. Summary: lvh: Largest viewport height (when browser UI is hidden) svh: Smallest viewport height (when browser U...</description><pubDate>Wed, 27 Apr 2022 12:05:25 GMT</pubDate><category>Tweets</category></item><item><title>Lerna is unmaintained</title><link>https://coryhouse.dev/2022/04/28/tweet-1519706355191451648/</link><guid isPermaLink="true">https://coryhouse.dev/2022/04/28/tweet-1519706355191451648/</guid><description>Lerna is unmaintained. So, here are 10 monorepo-related tools to consider: 1. @NxDevTools 2. @turborepo 3. @pnpmjs workspace 4. @yarnpkg workspace...</description><pubDate>Thu, 28 Apr 2022 15:53:24 GMT</pubDate><category>Tweets</category></item><item><title>I enjoyed this &quot;TypeScript tips and tricks&quot; episode with @mpocock1</title><link>https://coryhouse.dev/2022/04/30/tweet-1520472300893655040/</link><guid isPermaLink="true">https://coryhouse.dev/2022/04/30/tweet-1520472300893655040/</guid><description>I enjoyed this &quot;TypeScript tips and tricks&quot; episode with @mpocock1. He solves some seriously tricky typing problems with #typescript - including us...</description><pubDate>Sat, 30 Apr 2022 18:37:00 GMT</pubDate><category>Tweets</category></item><item><title>I just learned there is a 28,000 km (17k miles) long stretch of fibre-optic...</title><link>https://coryhouse.dev/2022/05/01/tweet-1520831685599940613/</link><guid isPermaLink="true">https://coryhouse.dev/2022/05/01/tweet-1520831685599940613/</guid><description>I just learned there is a 28,000 km (17k miles) long stretch of fibre-optic cable that runs all the way from the UK to Japan. It’s called FLAG (Fib...</description><pubDate>Sun, 01 May 2022 18:25:04 GMT</pubDate><category>Tweets</category></item><item><title>4 options for rendering in @nextjs: 1</title><link>https://coryhouse.dev/2022/05/02/tweet-1521100361213386757/</link><guid isPermaLink="true">https://coryhouse.dev/2022/05/02/tweet-1521100361213386757/</guid><description>4 options for rendering in @nextjs: 1. Static Site Generation (SSG) 2. Incremental Static Generation (ISG) 3. Server-side Rendering (SSR) 4. Client...</description><pubDate>Mon, 02 May 2022 12:12:41 GMT</pubDate><category>Tweets</category></item><item><title>🚨 I&apos;m writing a new course</title><link>https://coryhouse.dev/2022/05/03/tweet-1521475817683009543/</link><guid isPermaLink="true">https://coryhouse.dev/2022/05/03/tweet-1521475817683009543/</guid><description>🚨 I&apos;m writing a new course! 🚨 “Next.js 12: The Big Picture” This course is for anyone considering @nextjs. It covers what makes Next.js special,...</description><pubDate>Tue, 03 May 2022 13:04:37 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m a @remix_run fan</title><link>https://coryhouse.dev/2022/05/04/tweet-1521877134112923649/</link><guid isPermaLink="true">https://coryhouse.dev/2022/05/04/tweet-1521877134112923649/</guid><description>I&apos;m a @remix_run fan. But, there are valid reasons to prefer @nextjs static builds for some sites: 1. Static files are simple 2. Static files are c...</description><pubDate>Wed, 04 May 2022 15:39:18 GMT</pubDate><category>Tweets</category></item><item><title>You probably don’t need CSS media queries anymore</title><link>https://coryhouse.dev/2022/05/05/tweet-1522192088040935425/</link><guid isPermaLink="true">https://coryhouse.dev/2022/05/05/tweet-1522192088040935425/</guid><description>You probably don’t need CSS media queries anymore. Why? Because CSS has matured. We can go beyond mere responsive designs. Now, we can support *flu...</description><pubDate>Thu, 05 May 2022 12:30:49 GMT</pubDate><category>Tweets</category></item><item><title>Wow - I just converted a React component library build process from Rollup...</title><link>https://coryhouse.dev/2022/05/05/tweet-1522243412107436036/</link><guid isPermaLink="true">https://coryhouse.dev/2022/05/05/tweet-1522243412107436036/</guid><description>Wow - I just converted a React component library build process from Rollup to esbuild. Before, using Rollup: 33 seconds After, using esbuild: 8 sec...</description><pubDate>Thu, 05 May 2022 15:54:46 GMT</pubDate><category>Tweets</category></item><item><title>React hooks tip: Prefer primitives in dependency arrays</title><link>https://coryhouse.dev/2022/05/07/tweet-1522914348695445505/</link><guid isPermaLink="true">https://coryhouse.dev/2022/05/07/tweet-1522914348695445505/</guid><description>React hooks tip: Prefer primitives in dependency arrays. Doing so helps avoid needless re-runs. #react</description><pubDate>Sat, 07 May 2022 12:20:49 GMT</pubDate><category>Tweets</category></item><item><title>Common scenario: A team has two types of tests: 1</title><link>https://coryhouse.dev/2022/05/09/tweet-1523660057203798016/</link><guid isPermaLink="true">https://coryhouse.dev/2022/05/09/tweet-1523660057203798016/</guid><description>Common scenario: A team has two types of tests: 1. Unit tests (testing functions and components in isolation, often via @fbjest) 2. In-browser test...</description><pubDate>Mon, 09 May 2022 13:44:00 GMT</pubDate><category>Tweets</category></item><item><title>Developer experience (DX) metrics: 1</title><link>https://coryhouse.dev/2022/05/11/tweet-1524384220776484864/</link><guid isPermaLink="true">https://coryhouse.dev/2022/05/11/tweet-1524384220776484864/</guid><description>Developer experience (DX) metrics: 1. How fast is the feedback loop? 2. How fast are the tests? 3. Can devs code against local mocks? 4. How fast i...</description><pubDate>Wed, 11 May 2022 13:41:34 GMT</pubDate><category>Tweets</category></item><item><title>I’m a @Cypress_io fan</title><link>https://coryhouse.dev/2022/05/13/tweet-1525087602545762305/</link><guid isPermaLink="true">https://coryhouse.dev/2022/05/13/tweet-1525087602545762305/</guid><description>I’m a @Cypress_io fan. But, it’s not perfect. 1. Can’t trigger keyboard tab key 2. Can’t switch in/out of iframes 3. Can’t hover 4. Can&apos;t test cont...</description><pubDate>Fri, 13 May 2022 12:16:33 GMT</pubDate><category>Tweets</category></item><item><title>Just learned about http://a11ysupport.io</title><link>https://coryhouse.dev/2022/05/14/tweet-1525458792279904256/</link><guid isPermaLink="true">https://coryhouse.dev/2022/05/14/tweet-1525458792279904256/</guid><description>Just learned about http://a11ysupport.io. Trying to write accessible web app? This site documents the features each screen reader supports. So it&apos;s...</description><pubDate>Sat, 14 May 2022 12:51:32 GMT</pubDate><category>Tweets</category></item><item><title>Problem: With controlled React forms, every keystroke causes the form to...</title><link>https://coryhouse.dev/2022/05/15/tweet-1525832141375930370/</link><guid isPermaLink="true">https://coryhouse.dev/2022/05/15/tweet-1525832141375930370/</guid><description>Problem: With controlled React forms, every keystroke causes the form to re-render. This can lead to lag on long/expensive forms. Three solutions:...</description><pubDate>Sun, 15 May 2022 13:35:05 GMT</pubDate><category>Tweets</category></item><item><title>Modern browsers support built-in form validation</title><link>https://coryhouse.dev/2022/05/17/tweet-1526552038947028994/</link><guid isPermaLink="true">https://coryhouse.dev/2022/05/17/tweet-1526552038947028994/</guid><description>Modern browsers support built-in form validation. Looks nice, right? But, many web developers don&apos;t use this built-in form validation. Here are 3 r...</description><pubDate>Tue, 17 May 2022 13:15:42 GMT</pubDate><category>Tweets</category></item><item><title>PSA: React “concurrent mode” doesn’t exist</title><link>https://coryhouse.dev/2022/05/18/tweet-1526725187336642561/</link><guid isPermaLink="true">https://coryhouse.dev/2022/05/18/tweet-1526725187336642561/</guid><description>PSA: React “concurrent mode” doesn’t exist. It was proposed, but ultimately abandoned. Instead, React 18 gives us 2 hooks for declaring low-priorit...</description><pubDate>Wed, 18 May 2022 00:43:44 GMT</pubDate><category>Tweets</category></item><item><title>I ❤️ Next and Remix</title><link>https://coryhouse.dev/2022/05/19/tweet-1527300891216424960/</link><guid isPermaLink="true">https://coryhouse.dev/2022/05/19/tweet-1527300891216424960/</guid><description>I ❤️ Next and Remix. Here&apos;s my take on @nextjs vs @remix_run in one image. What&apos;s interesting: I expect the list of unique benefits to get shorter...</description><pubDate>Thu, 19 May 2022 14:51:23 GMT</pubDate><category>Tweets</category></item><item><title>Accessibility tip: Wrapping related form elements in a fieldset improves...</title><link>https://coryhouse.dev/2022/05/21/tweet-1527993820339658752/</link><guid isPermaLink="true">https://coryhouse.dev/2022/05/21/tweet-1527993820339658752/</guid><description>Accessibility tip: Wrapping related form elements in a fieldset improves accessibility. Example: Wrap radios in a fieldset with a legend. Then, scr...</description><pubDate>Sat, 21 May 2022 12:44:50 GMT</pubDate><category>Tweets</category></item><item><title>Here&apos;s a React hook that checks if the user&apos;s device has a rear facing camera</title><link>https://coryhouse.dev/2022/05/22/tweet-1528344629036343298/</link><guid isPermaLink="true">https://coryhouse.dev/2022/05/22/tweet-1528344629036343298/</guid><description>Here&apos;s a React hook that checks if the user&apos;s device has a rear facing camera. Technique: Use the browser&apos;s getUserMedia API to check if facingMode...</description><pubDate>Sun, 22 May 2022 11:58:49 GMT</pubDate><category>Tweets</category></item><item><title>Picking between px and em/rem in CSS has always confused me</title><link>https://coryhouse.dev/2022/05/23/tweet-1528550312323297282/</link><guid isPermaLink="true">https://coryhouse.dev/2022/05/23/tweet-1528550312323297282/</guid><description>Picking between px and em/rem in CSS has always confused me. This post by @JoshWComeau has finally made this decision clear! Summary: If the value...</description><pubDate>Mon, 23 May 2022 01:36:08 GMT</pubDate><category>Tweets</category></item><item><title>Problem: The React docs encourage declaring anonymous functions in useEffect</title><link>https://coryhouse.dev/2022/05/23/tweet-1528707302483697666/</link><guid isPermaLink="true">https://coryhouse.dev/2022/05/23/tweet-1528707302483697666/</guid><description>Problem: The React docs encourage declaring anonymous functions in useEffect. This means the developer&apos;s intent isn&apos;t documented. 👎 Solution: Call...</description><pubDate>Mon, 23 May 2022 11:59:57 GMT</pubDate><category>Tweets</category></item><item><title>Tired of getting &quot;could not resolve&quot; errors when running npm install</title><link>https://coryhouse.dev/2022/05/23/tweet-1528820339026821121/</link><guid isPermaLink="true">https://coryhouse.dev/2022/05/23/tweet-1528820339026821121/</guid><description>Tired of getting &quot;could not resolve&quot; errors when running npm install? This is typically caused by a package that needs to update its peerDependenci...</description><pubDate>Mon, 23 May 2022 19:29:07 GMT</pubDate><category>Tweets</category></item><item><title>Why I enjoy React: I can use the parts I like, and replace the rest</title><link>https://coryhouse.dev/2022/05/24/tweet-1529131762726707203/</link><guid isPermaLink="true">https://coryhouse.dev/2022/05/24/tweet-1529131762726707203/</guid><description>Why I enjoy React: I can use the parts I like, and replace the rest. Don’t like useEffect or useState? No problem. Use third party state (react-que...</description><pubDate>Tue, 24 May 2022 16:06:36 GMT</pubDate><category>Tweets</category></item><item><title>Woah</title><link>https://coryhouse.dev/2022/05/25/tweet-1529437325792628736/</link><guid isPermaLink="true">https://coryhouse.dev/2022/05/25/tweet-1529437325792628736/</guid><description>Woah. I just learned that HTML file inputs can access photos, videos, and audio captured directly by the device&apos;s camera and microphone like this:</description><pubDate>Wed, 25 May 2022 12:20:48 GMT</pubDate><category>Tweets</category></item><item><title>Problem: People forget to write tests</title><link>https://coryhouse.dev/2022/05/25/tweet-1529539723408056321/</link><guid isPermaLink="true">https://coryhouse.dev/2022/05/25/tweet-1529539723408056321/</guid><description>Problem: People forget to write tests. Solution: Write a test that asserts that each file has a test. 😎 Below, I&apos;m using Jest to assure each compo...</description><pubDate>Wed, 25 May 2022 19:07:42 GMT</pubDate><category>Tweets</category></item><item><title>New hosting trend: JavaScript containers 7 reasons hosts are embracing JS...</title><link>https://coryhouse.dev/2022/05/28/tweet-1530533775095918594/</link><guid isPermaLink="true">https://coryhouse.dev/2022/05/28/tweet-1530533775095918594/</guid><description>New hosting trend: JavaScript containers 7 reasons hosts are embracing JS “containers”: 1. JS is more powerful than shell 2. JS is ubiquitous - Man...</description><pubDate>Sat, 28 May 2022 12:57:42 GMT</pubDate><category>Tweets</category></item><item><title>I just read the “Web Forms” module on MDN</title><link>https://coryhouse.dev/2022/05/29/tweet-1530901336014761985/</link><guid isPermaLink="true">https://coryhouse.dev/2022/05/29/tweet-1530901336014761985/</guid><description>I just read the “Web Forms” module on MDN. I learned a variety of tricks. It’s hard to keep up with the enhancements over the years. And it’s easy...</description><pubDate>Sun, 29 May 2022 13:18:15 GMT</pubDate><category>Tweets</category></item><item><title>Problem: If the user navigates away before a fetch completes, it creates a...</title><link>https://coryhouse.dev/2022/05/30/tweet-1531266357572034565/</link><guid isPermaLink="true">https://coryhouse.dev/2022/05/30/tweet-1531266357572034565/</guid><description>Problem: If the user navigates away before a fetch completes, it creates a race condition. They’ll see the “abandoned” request’s data if it returns...</description><pubDate>Mon, 30 May 2022 13:28:43 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Fetching in useEffect means React components render, then fetch</title><link>https://coryhouse.dev/2022/05/31/tweet-1531642615283625984/</link><guid isPermaLink="true">https://coryhouse.dev/2022/05/31/tweet-1531642615283625984/</guid><description>Problem: Fetching in useEffect means React components render, then fetch. This can lead to slow network waterfalls. Solution: Fetch as you render....</description><pubDate>Tue, 31 May 2022 14:23:50 GMT</pubDate><category>Tweets</category></item><item><title>useEffect is a last resort</title><link>https://coryhouse.dev/2022/06/02/tweet-1532335353603956739/</link><guid isPermaLink="true">https://coryhouse.dev/2022/06/02/tweet-1532335353603956739/</guid><description>useEffect is a last resort. 3 cases where useEffect is overused: 1. To sync with state changes. Derive on each render instead. Memo if needed. 2. T...</description><pubDate>Thu, 02 Jun 2022 12:16:32 GMT</pubDate><category>Tweets</category></item><item><title>Everyone is talking about server-side rendering</title><link>https://coryhouse.dev/2022/06/03/tweet-1532708512836505600/</link><guid isPermaLink="true">https://coryhouse.dev/2022/06/03/tweet-1532708512836505600/</guid><description>Everyone is talking about server-side rendering. Why? SEO and page load speed. Yet many web apps are: 1. Behind a login (so SEO doesn’t matter) 2....</description><pubDate>Fri, 03 Jun 2022 12:59:20 GMT</pubDate><category>Tweets</category></item><item><title>Impression: React is getting more complex</title><link>https://coryhouse.dev/2022/06/03/tweet-1532849344935866370/</link><guid isPermaLink="true">https://coryhouse.dev/2022/06/03/tweet-1532849344935866370/</guid><description>Impression: React is getting more complex. Reality: The new React docs contain more nuance. They reflect important lessons from years of use. They...</description><pubDate>Fri, 03 Jun 2022 22:18:57 GMT</pubDate><category>Tweets</category></item><item><title>Wow, just found this huge list of free public APIs</title><link>https://coryhouse.dev/2022/06/04/tweet-1533104117136097284/</link><guid isPermaLink="true">https://coryhouse.dev/2022/06/04/tweet-1533104117136097284/</guid><description>Wow, just found this huge list of free public APIs. Quite useful for learning, experimenting, and building demo apps. https://github.com/public-api...</description><pubDate>Sat, 04 Jun 2022 15:11:19 GMT</pubDate><category>Tweets</category></item><item><title>You probably know :hover, :focus, and :active pseudo-classes</title><link>https://coryhouse.dev/2022/06/07/tweet-1534153069419692037/</link><guid isPermaLink="true">https://coryhouse.dev/2022/06/07/tweet-1534153069419692037/</guid><description>You probably know :hover, :focus, and :active pseudo-classes. Here’s some lesser-known CSS 3 selectors: :required :optional :valid :invalid :in-ran...</description><pubDate>Tue, 07 Jun 2022 12:39:29 GMT</pubDate><category>Tweets</category></item><item><title>SSR with React is easy with Next or Remix</title><link>https://coryhouse.dev/2022/06/08/tweet-1534527066120638465/</link><guid isPermaLink="true">https://coryhouse.dev/2022/06/08/tweet-1534527066120638465/</guid><description>SSR with React is easy with Next or Remix. But, SSR has a cost: fewer hosting options. A CSR app can be hosted anywhere, cheaply. An SSR app requir...</description><pubDate>Wed, 08 Jun 2022 13:25:37 GMT</pubDate><category>Tweets</category></item><item><title>Solid tip</title><link>https://coryhouse.dev/2022/06/08/tweet-1534614996788957184/</link><guid isPermaLink="true">https://coryhouse.dev/2022/06/08/tweet-1534614996788957184/</guid><description>Solid tip. “Once a PR has around 5 comments, consider suggesting a pair programming session instead of adding more comments.&quot; This speeds the feedb...</description><pubDate>Wed, 08 Jun 2022 19:15:01 GMT</pubDate><category>Tweets</category></item><item><title>Next.js supports 4 rendering approaches</title><link>https://coryhouse.dev/2022/06/11/tweet-1535632986699452418/</link><guid isPermaLink="true">https://coryhouse.dev/2022/06/11/tweet-1535632986699452418/</guid><description>Next.js supports 4 rendering approaches. Picking a rendering approach in @nextjs can be tricky. I choose between them on page-by-page basis. Here&apos;s...</description><pubDate>Sat, 11 Jun 2022 14:40:09 GMT</pubDate><category>Tweets</category></item><item><title>🚨 React developers: 🚨 You don’t have to fetch data via useEffect</title><link>https://coryhouse.dev/2022/06/13/tweet-1536340396560760833/</link><guid isPermaLink="true">https://coryhouse.dev/2022/06/13/tweet-1536340396560760833/</guid><description>🚨 React developers: 🚨 You don’t have to fetch data via useEffect. Here are 7 compelling alternatives to fetching data via useEffect: 1. react-que...</description><pubDate>Mon, 13 Jun 2022 13:31:09 GMT</pubDate><category>Tweets</category></item><item><title>My decision tree: Using @remix_run</title><link>https://coryhouse.dev/2022/06/13/tweet-1536342936924954624/</link><guid isPermaLink="true">https://coryhouse.dev/2022/06/13/tweet-1536342936924954624/</guid><description>My decision tree: Using @remix_run? Fetch in loader. Using @nextjs? Fetch in getServerSideProps/getStaticProps and via swr on client. Using React R...</description><pubDate>Mon, 13 Jun 2022 13:41:14 GMT</pubDate><category>Tweets</category></item><item><title>Attack: “I can’t believe React doesn’t have data fetching and routing...</title><link>https://coryhouse.dev/2022/06/14/tweet-1536675152376766468/</link><guid isPermaLink="true">https://coryhouse.dev/2022/06/14/tweet-1536675152376766468/</guid><description>Attack: “I can’t believe React doesn’t have data fetching and routing built-in.” My take: React is a component library. This focus is why it’s exte...</description><pubDate>Tue, 14 Jun 2022 11:41:21 GMT</pubDate><category>Tweets</category></item><item><title>2 situations to consider web components: 1</title><link>https://coryhouse.dev/2022/06/15/tweet-1537075016088489985/</link><guid isPermaLink="true">https://coryhouse.dev/2022/06/15/tweet-1537075016088489985/</guid><description>2 situations to consider web components: 1. Your company wants to build a reusable component library that isn’t tied to a specific tech (like React...</description><pubDate>Wed, 15 Jun 2022 14:10:15 GMT</pubDate><category>Tweets</category></item><item><title>Today I&apos;m thinking about the tradeoffs inherent in choosing a full-featured...</title><link>https://coryhouse.dev/2022/06/16/tweet-1537476669807673346/</link><guid isPermaLink="true">https://coryhouse.dev/2022/06/16/tweet-1537476669807673346/</guid><description>Today I&apos;m thinking about the tradeoffs inherent in choosing a full-featured framework like @nextjs. Here&apos;s my list. Can you think of other tradeoff...</description><pubDate>Thu, 16 Jun 2022 16:46:17 GMT</pubDate><category>Tweets</category></item><item><title>It&apos;s wonderful to see standards emerging for non-browser JavaScript runtimes</title><link>https://coryhouse.dev/2022/06/18/tweet-1538141390194065408/</link><guid isPermaLink="true">https://coryhouse.dev/2022/06/18/tweet-1538141390194065408/</guid><description>It&apos;s wonderful to see standards emerging for non-browser JavaScript runtimes. Standards will help in at least 2 ways: 1. We can write JS that runs...</description><pubDate>Sat, 18 Jun 2022 12:47:39 GMT</pubDate><category>Tweets</category></item><item><title>Here are 7 ways to create a React app in 2022</title><link>https://coryhouse.dev/2022/06/20/tweet-1538920643571458048/</link><guid isPermaLink="true">https://coryhouse.dev/2022/06/20/tweet-1538920643571458048/</guid><description>Here are 7 ways to create a React app in 2022. This feature matrix shows some key differences at a glance. List includes: @vite_js @nextjs @remix_r...</description><pubDate>Mon, 20 Jun 2022 16:24:07 GMT</pubDate><category>Tweets</category></item><item><title>Great suggestion in the new React docs: Worried about the performance impact...</title><link>https://coryhouse.dev/2022/06/21/tweet-1539294303280848903/</link><guid isPermaLink="true">https://coryhouse.dev/2022/06/21/tweet-1539294303280848903/</guid><description>Great suggestion in the new React docs: Worried about the performance impact of calculating a value on each render? Then use console.time to test t...</description><pubDate>Tue, 21 Jun 2022 17:08:55 GMT</pubDate><category>Tweets</category></item><item><title>I rarely memoize in React</title><link>https://coryhouse.dev/2022/06/22/tweet-1539589019998248960/</link><guid isPermaLink="true">https://coryhouse.dev/2022/06/22/tweet-1539589019998248960/</guid><description>I rarely memoize in React. Instead I: 1. Keep state as local as possible, to keep renders local. 2. Strategically decompose components to keep freq...</description><pubDate>Wed, 22 Jun 2022 12:40:01 GMT</pubDate><category>Tweets</category></item><item><title>Developer experience (DX) matters</title><link>https://coryhouse.dev/2022/06/23/tweet-1539959774338551808/</link><guid isPermaLink="true">https://coryhouse.dev/2022/06/23/tweet-1539959774338551808/</guid><description>Developer experience (DX) matters. What does good DX look like? Fast compiles Robust mocks Excellent docs Easy code sharing Powerful dev tools Clea...</description><pubDate>Thu, 23 Jun 2022 13:13:15 GMT</pubDate><category>Tweets</category></item><item><title>Accessibility / UX tip: Avoid disabling buttons</title><link>https://coryhouse.dev/2022/06/23/tweet-1540054866420289539/</link><guid isPermaLink="true">https://coryhouse.dev/2022/06/23/tweet-1540054866420289539/</guid><description>Accessibility / UX tip: Avoid disabling buttons. Show errors instead. Why? ❌ Disabled buttons may look clickable. Nothing happens when clicked. ❌ D...</description><pubDate>Thu, 23 Jun 2022 19:31:07 GMT</pubDate><category>Tweets</category></item><item><title>Anti-pattern: Needlessly reading the URL</title><link>https://coryhouse.dev/2022/06/25/tweet-1540680534061264896/</link><guid isPermaLink="true">https://coryhouse.dev/2022/06/25/tweet-1540680534061264896/</guid><description>Anti-pattern: Needlessly reading the URL. Example: A button that reads the URL to determine what it should do. 👎 Simpler solution: Pass a prop to...</description><pubDate>Sat, 25 Jun 2022 12:57:18 GMT</pubDate><category>Tweets</category></item><item><title>🚨 Web developers 🚨 &lt;a&gt; and &lt;button&gt; are often misused</title><link>https://coryhouse.dev/2022/06/26/tweet-1541037184622403584/</link><guid isPermaLink="true">https://coryhouse.dev/2022/06/26/tweet-1541037184622403584/</guid><description>🚨 Web developers 🚨 &lt;a&gt; and &lt;button&gt; are often misused. They have different purposes. &lt;a&gt; is for navigating &lt;button&gt; is fo...</description><pubDate>Sun, 26 Jun 2022 12:34:30 GMT</pubDate><category>Tweets</category></item><item><title>It&apos;s live</title><link>https://coryhouse.dev/2022/06/27/tweet-1541393971015983104/</link><guid isPermaLink="true">https://coryhouse.dev/2022/06/27/tweet-1541393971015983104/</guid><description>It&apos;s live! 🎉 My new course &quot;Next.js 12: The Big Picture&quot;, just published on @pluralsight. In this course, I cover why Next.js is useful, review it...</description><pubDate>Mon, 27 Jun 2022 12:12:15 GMT</pubDate><category>Tweets</category></item><item><title>This diagram showcases what makes @remix_run special: Dataflows include the...</title><link>https://coryhouse.dev/2022/06/28/tweet-1541605649875980289/</link><guid isPermaLink="true">https://coryhouse.dev/2022/06/28/tweet-1541605649875980289/</guid><description>This diagram showcases what makes @remix_run special: Dataflows include the server. Loaders pass data to the component. Then, Actions pass data bac...</description><pubDate>Tue, 28 Jun 2022 02:13:23 GMT</pubDate><category>Tweets</category></item><item><title>On big, fast moving teams, merge conflicts can burn a lot of time</title><link>https://coryhouse.dev/2022/06/28/tweet-1541761203105681409/</link><guid isPermaLink="true">https://coryhouse.dev/2022/06/28/tweet-1541761203105681409/</guid><description>On big, fast moving teams, merge conflicts can burn a lot of time. 5 ways to avoid painful merge conflicts: 1. Reduce team size 2. Clarify code own...</description><pubDate>Tue, 28 Jun 2022 12:31:30 GMT</pubDate><category>Tweets</category></item><item><title>Critique: “Remix looks like PHP”</title><link>https://coryhouse.dev/2022/06/28/tweet-1541785367984148480/</link><guid isPermaLink="true">https://coryhouse.dev/2022/06/28/tweet-1541785367984148480/</guid><description>Critique: “Remix looks like PHP”. Rebuttal: 1. PHP is popular because it’s a simple way to compose logic with markup. Same with Remix. 👍 2. PHP do...</description><pubDate>Tue, 28 Jun 2022 14:07:31 GMT</pubDate><category>Tweets</category></item><item><title>Even after 20+ years of coding, I often make rookie mistakes</title><link>https://coryhouse.dev/2022/06/28/tweet-1541926900620300288/</link><guid isPermaLink="true">https://coryhouse.dev/2022/06/28/tweet-1541926900620300288/</guid><description>Even after 20+ years of coding, I often make rookie mistakes. I learn new things that someone else learned early in their career. My learning path...</description><pubDate>Tue, 28 Jun 2022 23:29:55 GMT</pubDate><category>Tweets</category></item><item><title>Microfrontends require balancing user experience (UX) with developer...</title><link>https://coryhouse.dev/2022/06/29/tweet-1542145552762159104/</link><guid isPermaLink="true">https://coryhouse.dev/2022/06/29/tweet-1542145552762159104/</guid><description>Microfrontends require balancing user experience (UX) with developer experience (DX). Here’s why: Microfrontends improve DX by enabling team autono...</description><pubDate>Wed, 29 Jun 2022 13:58:46 GMT</pubDate><category>Tweets</category></item><item><title>The JavaScript ecosystem is huge</title><link>https://coryhouse.dev/2022/06/30/tweet-1542487010639839232/</link><guid isPermaLink="true">https://coryhouse.dev/2022/06/30/tweet-1542487010639839232/</guid><description>The JavaScript ecosystem is huge. Module: esm, cjs, amd, umd Package manager: npm, yarn, pnpm Bundler: Webpack, Rollup, Parcel, Bun Compiler: Babel...</description><pubDate>Thu, 30 Jun 2022 12:35:36 GMT</pubDate><category>Tweets</category></item><item><title>The smaller the dev team, the higher the output per developer</title><link>https://coryhouse.dev/2022/07/01/tweet-1542850309973835776/</link><guid isPermaLink="true">https://coryhouse.dev/2022/07/01/tweet-1542850309973835776/</guid><description>The smaller the dev team, the higher the output per developer. ✅Fewer code reviews ✅Less communication overhead ✅Fewer people to ask for permission...</description><pubDate>Fri, 01 Jul 2022 12:39:13 GMT</pubDate><category>Tweets</category></item><item><title>I admire that the React team is focusing on performance</title><link>https://coryhouse.dev/2022/07/02/tweet-1543235231985041410/</link><guid isPermaLink="true">https://coryhouse.dev/2022/07/02/tweet-1543235231985041410/</guid><description>I admire that the React team is focusing on performance. 👍 But, I find React is usually plenty fast without optimizations. So: 1. I rarely use per...</description><pubDate>Sat, 02 Jul 2022 14:08:45 GMT</pubDate><category>Tweets</category></item><item><title>Okay, Bun looks🔥</title><link>https://coryhouse.dev/2022/07/06/tweet-1544483198289207297/</link><guid isPermaLink="true">https://coryhouse.dev/2022/07/06/tweet-1544483198289207297/</guid><description>Okay, Bun looks🔥. But… I just converted my projects to esbuild. I haven’t tried Deno yet. I haven’t converted from Jest to Vit test either. Guess...</description><pubDate>Wed, 06 Jul 2022 00:47:44 GMT</pubDate><category>Tweets</category></item><item><title>I don’t set goals</title><link>https://coryhouse.dev/2022/07/07/tweet-1545036201022963712/</link><guid isPermaLink="true">https://coryhouse.dev/2022/07/07/tweet-1545036201022963712/</guid><description>I don’t set goals. I create systems. Here are seven systems I’ve found useful. My learning system 1. Subscribe to relevant newsletters (and read th...</description><pubDate>Thu, 07 Jul 2022 13:25:10 GMT</pubDate><category>Tweets</category></item><item><title>A lesson I&apos;ve learned the hard way countless times: Keep changes as small as...</title><link>https://coryhouse.dev/2022/07/09/tweet-1545852273942732801/</link><guid isPermaLink="true">https://coryhouse.dev/2022/07/09/tweet-1545852273942732801/</guid><description>A lesson I&apos;ve learned the hard way countless times: Keep changes as small as possible. Small, frequent, incremental changes are typically preferabl...</description><pubDate>Sat, 09 Jul 2022 19:27:57 GMT</pubDate><category>Tweets</category></item><item><title>The longer I’ve been coding the more I realize: If I’m doing something...</title><link>https://coryhouse.dev/2022/07/10/tweet-1546113172502974465/</link><guid isPermaLink="true">https://coryhouse.dev/2022/07/10/tweet-1546113172502974465/</guid><description>The longer I’ve been coding the more I realize: If I’m doing something weird, it’s time for reflection. My use case likely isn&apos;t that special. So,...</description><pubDate>Sun, 10 Jul 2022 12:44:40 GMT</pubDate><category>Tweets</category></item><item><title>Bun isn’t merely exciting</title><link>https://coryhouse.dev/2022/07/12/tweet-1546960589934792704/</link><guid isPermaLink="true">https://coryhouse.dev/2022/07/12/tweet-1546960589934792704/</guid><description>Bun isn’t merely exciting. It’s deeply motivating. Bun is a striking example of how productive a single developer can be. To think that something a...</description><pubDate>Tue, 12 Jul 2022 20:52:00 GMT</pubDate><category>Tweets</category></item><item><title>As a JavaScript developer in 2022, I have analysis paralysis</title><link>https://coryhouse.dev/2022/07/13/tweet-1547229192688902144/</link><guid isPermaLink="true">https://coryhouse.dev/2022/07/13/tweet-1547229192688902144/</guid><description>As a JavaScript developer in 2022, I have analysis paralysis. Should I use npm, Yarn, pnpm, or Bun for package management? Should I run my code in...</description><pubDate>Wed, 13 Jul 2022 14:39:20 GMT</pubDate><category>Tweets</category></item><item><title>React state management approaches have evolved a lot over the years</title><link>https://coryhouse.dev/2022/07/14/tweet-1547395854109212673/</link><guid isPermaLink="true">https://coryhouse.dev/2022/07/14/tweet-1547395854109212673/</guid><description>React state management approaches have evolved a lot over the years. This post comprehensively reviews where we&apos;ve been, where we are, and why. And...</description><pubDate>Thu, 14 Jul 2022 01:41:35 GMT</pubDate><category>Tweets</category></item><item><title>Bun is a big, risky bet</title><link>https://coryhouse.dev/2022/07/15/tweet-1547915758306439172/</link><guid isPermaLink="true">https://coryhouse.dev/2022/07/15/tweet-1547915758306439172/</guid><description>Bun is a big, risky bet. Here’s why: The JavaScript ecosystem innovates rapidly. And it’s characterized by many, focused, discrete packages that do...</description><pubDate>Fri, 15 Jul 2022 12:07:30 GMT</pubDate><category>Tweets</category></item><item><title>create-react-app remains popular</title><link>https://coryhouse.dev/2022/07/16/tweet-1548350380290891777/</link><guid isPermaLink="true">https://coryhouse.dev/2022/07/16/tweet-1548350380290891777/</guid><description>create-react-app remains popular. But these days, many people are reaching for Next.js and Remix instead. They&apos;re great, but sometimes they&apos;re over...</description><pubDate>Sat, 16 Jul 2022 16:54:32 GMT</pubDate><category>Tweets</category></item><item><title>Woah, I just learned that tsconfig.json allows comments</title><link>https://coryhouse.dev/2022/07/17/tweet-1548694398497689601/</link><guid isPermaLink="true">https://coryhouse.dev/2022/07/17/tweet-1548694398497689601/</guid><description>Woah, I just learned that tsconfig.json allows comments! json doesn&apos;t normally allow comments, but comments are valid in tsconfig.json. It&apos;s offici...</description><pubDate>Sun, 17 Jul 2022 15:41:32 GMT</pubDate><category>Tweets</category></item><item><title>React devs are in a wonderful spot today</title><link>https://coryhouse.dev/2022/07/22/tweet-1550486367154626560/</link><guid isPermaLink="true">https://coryhouse.dev/2022/07/22/tweet-1550486367154626560/</guid><description>React devs are in a wonderful spot today. Why? Because many new libraries that are challenging React…are heavily inspired by React (and the React e...</description><pubDate>Fri, 22 Jul 2022 14:22:11 GMT</pubDate><category>Tweets</category></item><item><title>I typically bill hourly</title><link>https://coryhouse.dev/2022/07/24/tweet-1551187507278237696/</link><guid isPermaLink="true">https://coryhouse.dev/2022/07/24/tweet-1551187507278237696/</guid><description>I typically bill hourly. But, I just completed a *fixed bid* development project for the first time in 20+ years. Result? It took me twice as many...</description><pubDate>Sun, 24 Jul 2022 12:48:16 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m enjoying working with @tailwindcss</title><link>https://coryhouse.dev/2022/07/24/tweet-1551226347497963521/</link><guid isPermaLink="true">https://coryhouse.dev/2022/07/24/tweet-1551226347497963521/</guid><description>I&apos;m enjoying working with @tailwindcss. The final CSS is lean. I don&apos;t have to name things. Each style I use is well documented. Autocomplete is ex...</description><pubDate>Sun, 24 Jul 2022 15:22:36 GMT</pubDate><category>Tweets</category></item><item><title>Software development estimates are frequently *way* off</title><link>https://coryhouse.dev/2022/07/27/tweet-1552324251876593664/</link><guid isPermaLink="true">https://coryhouse.dev/2022/07/27/tweet-1552324251876593664/</guid><description>Software development estimates are frequently *way* off. Why? Because many aspects of software development are nearly impossible to estimate. Here...</description><pubDate>Wed, 27 Jul 2022 16:05:17 GMT</pubDate><category>Tweets</category></item><item><title>Scenario: You need to store a nested JavaScript object in the URL&apos;s querystring</title><link>https://coryhouse.dev/2022/08/01/tweet-1554160621268115456/</link><guid isPermaLink="true">https://coryhouse.dev/2022/08/01/tweet-1554160621268115456/</guid><description>Scenario: You need to store a nested JavaScript object in the URL&apos;s querystring. Solution: 1. Convert the object to a string via JSON.stringify 2....</description><pubDate>Mon, 01 Aug 2022 17:42:21 GMT</pubDate><category>Tweets</category></item><item><title>I’ve spent the few weeks building a custom React devTool library</title><link>https://coryhouse.dev/2022/08/02/tweet-1554443822788116483/</link><guid isPermaLink="true">https://coryhouse.dev/2022/08/02/tweet-1554443822788116483/</guid><description>I’ve spent the few weeks building a custom React devTool library. I’m so excited about it I can hardly sleep. My goal: Make it easy to quickly crea...</description><pubDate>Tue, 02 Aug 2022 12:27:42 GMT</pubDate><category>Tweets</category></item><item><title>Developer productivity requires balancing two competing desires: 1</title><link>https://coryhouse.dev/2022/08/02/tweet-1554523872048857090/</link><guid isPermaLink="true">https://coryhouse.dev/2022/08/02/tweet-1554523872048857090/</guid><description>Developer productivity requires balancing two competing desires: 1. Improve process. 2. Finish the current task. It’s often tempting to improve som...</description><pubDate>Tue, 02 Aug 2022 17:45:47 GMT</pubDate><category>Tweets</category></item><item><title>This is a great error message</title><link>https://coryhouse.dev/2022/08/04/tweet-1555283850057719809/</link><guid isPermaLink="true">https://coryhouse.dev/2022/08/04/tweet-1555283850057719809/</guid><description>This is a great error message. It tells me three useful things: 1. Where the error happened. 2. Why the error happened. 3. Precisely how to fix it....</description><pubDate>Thu, 04 Aug 2022 20:05:40 GMT</pubDate><category>Tweets</category></item><item><title>Question: What’s the most efficient way to store JSON in the URL’s query string</title><link>https://coryhouse.dev/2022/08/05/tweet-1555555629351198721/</link><guid isPermaLink="true">https://coryhouse.dev/2022/08/05/tweet-1555555629351198721/</guid><description>Question: What’s the most efficient way to store JSON in the URL’s query string? The most efficient option I’ve found: JSONCrush. https://github.co...</description><pubDate>Fri, 05 Aug 2022 14:05:37 GMT</pubDate><category>Tweets</category></item><item><title>The larger a codebase is, the harder it is to make big changes</title><link>https://coryhouse.dev/2022/08/05/tweet-1555601230994571264/</link><guid isPermaLink="true">https://coryhouse.dev/2022/08/05/tweet-1555601230994571264/</guid><description>The larger a codebase is, the harder it is to make big changes. I&apos;m learning this the hard way today. The changes I&apos;m making would be easy if the a...</description><pubDate>Fri, 05 Aug 2022 17:06:49 GMT</pubDate><category>Tweets</category></item><item><title>I’m creating a library for developers</title><link>https://coryhouse.dev/2022/08/06/tweet-1555924684142743552/</link><guid isPermaLink="true">https://coryhouse.dev/2022/08/06/tweet-1555924684142743552/</guid><description>I’m creating a library for developers. This library makes it easy to create custom DevTools, feature toggles, and mock APIs for your web app. Can y...</description><pubDate>Sat, 06 Aug 2022 14:32:07 GMT</pubDate><category>Tweets</category></item><item><title>One of the most common causes of needless complexity that I see in code:...</title><link>https://coryhouse.dev/2022/08/06/tweet-1555992348902965248/</link><guid isPermaLink="true">https://coryhouse.dev/2022/08/06/tweet-1555992348902965248/</guid><description>One of the most common causes of needless complexity that I see in code: Inconsistent terminology It&apos;s easy to accidentally use different terms for...</description><pubDate>Sat, 06 Aug 2022 19:00:59 GMT</pubDate><category>Tweets</category></item><item><title>Imagine a skill that empowers you to build anything you can imagine, all by...</title><link>https://coryhouse.dev/2022/08/07/tweet-1556280061732454403/</link><guid isPermaLink="true">https://coryhouse.dev/2022/08/07/tweet-1556280061732454403/</guid><description>Imagine a skill that empowers you to build anything you can imagine, all by yourself, for free. No career comes closer to achieving this amazing dr...</description><pubDate>Sun, 07 Aug 2022 14:04:15 GMT</pubDate><category>Tweets</category></item><item><title>2022 Frontend security in 1 tweet: 1</title><link>https://coryhouse.dev/2022/08/14/tweet-1558845973018906624/</link><guid isPermaLink="true">https://coryhouse.dev/2022/08/14/tweet-1558845973018906624/</guid><description>2022 Frontend security in 1 tweet: 1. Use HTTPs 2. Server render 3. Store JWT/token in &apos;secure&apos;, &apos;samesite&apos;, &apos;httponly&apos; cookie (prevent XSS). 4. De...</description><pubDate>Sun, 14 Aug 2022 16:00:16 GMT</pubDate><category>Tweets</category></item><item><title>The React ecosystem: Dozens of state management libraries Dozens of mature...</title><link>https://coryhouse.dev/2022/08/15/tweet-1559171830874837001/</link><guid isPermaLink="true">https://coryhouse.dev/2022/08/15/tweet-1559171830874837001/</guid><description>The React ecosystem: Dozens of state management libraries Dozens of mature component libraries Multiple routing libraries Many mature frameworks Na...</description><pubDate>Mon, 15 Aug 2022 13:35:07 GMT</pubDate><category>Tweets</category></item><item><title>Sometimes, it&apos;s handy to render specific content in @nextjs on the server or...</title><link>https://coryhouse.dev/2022/08/16/tweet-1559570624368054272/</link><guid isPermaLink="true">https://coryhouse.dev/2022/08/16/tweet-1559570624368054272/</guid><description>Sometimes, it&apos;s handy to render specific content in @nextjs on the server or the client. Here&apos;s a slick, declarative way to do so via a component....</description><pubDate>Tue, 16 Aug 2022 15:59:46 GMT</pubDate><category>Tweets</category></item><item><title>13 Reasons Software Development is a Unique, Amazing Career</title><link>https://coryhouse.dev/2022/08/17/13-reasons-software-development-is-a-unique-amazing-career/</link><guid isPermaLink="true">https://coryhouse.dev/2022/08/17/13-reasons-software-development-is-a-unique-amazing-career/</guid><description>1. Creative freedom. Product managers and designers specify *what* I should build. But, I get to decide *how* to build it. I choose my patterns, libraries, tech…</description><pubDate>Wed, 17 Aug 2022 14:20:11 GMT</pubDate><category>Uncategorized</category></item><item><title>Reusable component design tip: Honor the native HTML element&apos;s API</title><link>https://coryhouse.dev/2022/08/22/tweet-1561741362747396104/</link><guid isPermaLink="true">https://coryhouse.dev/2022/08/22/tweet-1561741362747396104/</guid><description>Reusable component design tip: Honor the native HTML element&apos;s API. If it accepts children, your reusable component probably should too. If it acce...</description><pubDate>Mon, 22 Aug 2022 15:45:31 GMT</pubDate><category>Tweets</category></item><item><title>Reusable component design tip: Make impossible states impossible</title><link>https://coryhouse.dev/2022/08/23/tweet-1562101356839817216/</link><guid isPermaLink="true">https://coryhouse.dev/2022/08/23/tweet-1562101356839817216/</guid><description>Reusable component design tip: Make impossible states impossible. 4 ways to make the impossible, impossible: 1. Use TypeScript. 2. Declare union ty...</description><pubDate>Tue, 23 Aug 2022 15:36:00 GMT</pubDate><category>Tweets</category></item><item><title>Just learned about localforage - An npm package that makes it easy to store...</title><link>https://coryhouse.dev/2022/08/24/tweet-1562418597246517248/</link><guid isPermaLink="true">https://coryhouse.dev/2022/08/24/tweet-1562418597246517248/</guid><description>Just learned about localforage - An npm package that makes it easy to store data in IndexDB, using a slick, localStorage like API. Supports 3 APIs:...</description><pubDate>Wed, 24 Aug 2022 12:36:36 GMT</pubDate><category>Tweets</category></item><item><title>Reusable component design tip: Extend the native root element&apos;s type, and...</title><link>https://coryhouse.dev/2022/08/25/tweet-1562775662724726786/</link><guid isPermaLink="true">https://coryhouse.dev/2022/08/25/tweet-1562775662724726786/</guid><description>Reusable component design tip: Extend the native root element&apos;s type, and pass native props to the root element via rest syntax. Benefits: 1. Your...</description><pubDate>Thu, 25 Aug 2022 12:15:27 GMT</pubDate><category>Tweets</category></item><item><title>In TypeScript, you can create a custom function to check an object&apos;s type</title><link>https://coryhouse.dev/2022/08/25/tweet-1562828148516933633/</link><guid isPermaLink="true">https://coryhouse.dev/2022/08/25/tweet-1562828148516933633/</guid><description>In TypeScript, you can create a custom function to check an object&apos;s type. This is called a &quot;User Defined Type Guard&quot; The function returns true if...</description><pubDate>Thu, 25 Aug 2022 15:44:01 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript tip: Consider generating types</title><link>https://coryhouse.dev/2022/08/27/tweet-1563503325391519745/</link><guid isPermaLink="true">https://coryhouse.dev/2022/08/27/tweet-1563503325391519745/</guid><description>TypeScript tip: Consider generating types. Example: I have a component library with 100 components. I want a union type that contains all the compo...</description><pubDate>Sat, 27 Aug 2022 12:26:55 GMT</pubDate><category>Tweets</category></item><item><title>Tired of writing JavaScript sort functions from scratch</title><link>https://coryhouse.dev/2022/08/29/tweet-1564226560760094722/</link><guid isPermaLink="true">https://coryhouse.dev/2022/08/29/tweet-1564226560760094722/</guid><description>Tired of writing JavaScript sort functions from scratch? (I always Google it). Here’s a package for writing concise sort functions in a clear, decl...</description><pubDate>Mon, 29 Aug 2022 12:20:48 GMT</pubDate><category>Tweets</category></item><item><title>My take on global state in React: 1</title><link>https://coryhouse.dev/2022/08/29/tweet-1564230512486629381/</link><guid isPermaLink="true">https://coryhouse.dev/2022/08/29/tweet-1564230512486629381/</guid><description>My take on global state in React: 1. Use react-query for remote state (HTTP calls). 2. Use context for low frequency updates. If I have other globa...</description><pubDate>Mon, 29 Aug 2022 12:36:30 GMT</pubDate><category>Tweets</category></item><item><title>Really impressed with React Router 6.4</title><link>https://coryhouse.dev/2022/09/02/tweet-1565691370060320771/</link><guid isPermaLink="true">https://coryhouse.dev/2022/09/02/tweet-1565691370060320771/</guid><description>Really impressed with React Router 6.4. Composing data and actions with routes makes so much sense. Happy that we can enjoy this pattern outside of...</description><pubDate>Fri, 02 Sep 2022 13:21:26 GMT</pubDate><category>Tweets</category></item><item><title>How I learned #TypeScript: 1</title><link>https://coryhouse.dev/2022/09/04/tweet-1566411715994083329/</link><guid isPermaLink="true">https://coryhouse.dev/2022/09/04/tweet-1566411715994083329/</guid><description>How I learned #TypeScript: 1. I read the docs. 2. @basarat book: https://basarat.gitbook.io/typescript/ 3. @swyx React cheat sheet: https://react-t...</description><pubDate>Sun, 04 Sep 2022 13:03:50 GMT</pubDate><category>Tweets</category></item><item><title>Years ago, I was a senior developer</title><link>https://coryhouse.dev/2022/09/04/tweet-1566449605549727751/</link><guid isPermaLink="true">https://coryhouse.dev/2022/09/04/tweet-1566449605549727751/</guid><description>Years ago, I was a senior developer. I was promoted to manager of development. Result? I was a lousy manager. In retrospect, I can see clearly why...</description><pubDate>Sun, 04 Sep 2022 15:34:23 GMT</pubDate><category>Tweets</category></item><item><title>What 20’s me wanted: Stuff</title><link>https://coryhouse.dev/2022/09/05/tweet-1566795052193652736/</link><guid isPermaLink="true">https://coryhouse.dev/2022/09/05/tweet-1566795052193652736/</guid><description>What 20’s me wanted: Stuff. Nicer car Nicer clothes Nicer home What 40’s me wants: Freedom. Work when I want, where I want, on what I want, with wh...</description><pubDate>Mon, 05 Sep 2022 14:27:04 GMT</pubDate><category>Tweets</category></item><item><title>I ❤️ GitHub actions</title><link>https://coryhouse.dev/2022/09/06/tweet-1567134536147795969/</link><guid isPermaLink="true">https://coryhouse.dev/2022/09/06/tweet-1567134536147795969/</guid><description>I ❤️ GitHub actions. I just set up a GitHub action that runs Cypress on each PR, and blocks merges until it passes. Setup time required: 3 minutes,...</description><pubDate>Tue, 06 Sep 2022 12:56:04 GMT</pubDate><category>Tweets</category></item><item><title>I ❤️ React</title><link>https://coryhouse.dev/2022/09/07/tweet-1567502647732625410/</link><guid isPermaLink="true">https://coryhouse.dev/2022/09/07/tweet-1567502647732625410/</guid><description>I ❤️ React. But, it’s not perfect. There are features you should avoid. Here’s “React: The Bad Parts” 👇</description><pubDate>Wed, 07 Sep 2022 13:18:48 GMT</pubDate><category>Tweets</category></item><item><title>Four TypesScript code smells: 1</title><link>https://coryhouse.dev/2022/09/10/tweet-1568631460306817024/</link><guid isPermaLink="true">https://coryhouse.dev/2022/09/10/tweet-1568631460306817024/</guid><description>Four TypesScript code smells: 1. Using “any” 2. Using “as” 3. Not validating HTTP responses (via tools like Zod) 4. Setting “strict” to false Why?...</description><pubDate>Sat, 10 Sep 2022 16:04:18 GMT</pubDate><category>Tweets</category></item><item><title>Tech I’ve learned in 2022: 1</title><link>https://coryhouse.dev/2022/09/11/tweet-1568974312203497472/</link><guid isPermaLink="true">https://coryhouse.dev/2022/09/11/tweet-1568974312203497472/</guid><description>Tech I’ve learned in 2022: 1. React 18 2. Next.js 12 3. Advanced TypeScript 4. trpc 5. pnpm 6. Turborepo 7. Cypress component testing 8. Playwright...</description><pubDate>Sun, 11 Sep 2022 14:46:40 GMT</pubDate><category>Tweets</category></item><item><title>Prefer async/await over promises or callbacks</title><link>https://coryhouse.dev/2022/09/12/tweet-1569306188516409346/</link><guid isPermaLink="true">https://coryhouse.dev/2022/09/12/tweet-1569306188516409346/</guid><description>Prefer async/await over promises or callbacks. ✅ Reads top down ✅ Typically more concise ✅ The func signature clearly says &quot;I return a promise&quot; (si...</description><pubDate>Mon, 12 Sep 2022 12:45:26 GMT</pubDate><category>Tweets</category></item><item><title>I hoped Web Components would take off</title><link>https://coryhouse.dev/2022/09/14/tweet-1569846073228726272/</link><guid isPermaLink="true">https://coryhouse.dev/2022/09/14/tweet-1569846073228726272/</guid><description>I hoped Web Components would take off. (I even wrote a course on them). They didn’t. Why? Because frameworks frequently innovate and improve. Stand...</description><pubDate>Wed, 14 Sep 2022 00:30:44 GMT</pubDate><category>Tweets</category></item><item><title>Situation: You have a big list of icons or images</title><link>https://coryhouse.dev/2022/09/15/tweet-1570401546600611845/</link><guid isPermaLink="true">https://coryhouse.dev/2022/09/15/tweet-1570401546600611845/</guid><description>Situation: You have a big list of icons or images. You want to dynamically display a few without importing them all. Solution: Create a lazy loadin...</description><pubDate>Thu, 15 Sep 2022 13:18:00 GMT</pubDate><category>Tweets</category></item><item><title>I work with around 25 companies every year</title><link>https://coryhouse.dev/2022/09/16/tweet-1570762689932324866/</link><guid isPermaLink="true">https://coryhouse.dev/2022/09/16/tweet-1570762689932324866/</guid><description>I work with around 25 companies every year. Three years ago, 90% of my clients used plain JavaScript. Today, 90% of my clients use TypeScript. The...</description><pubDate>Fri, 16 Sep 2022 13:13:03 GMT</pubDate><category>Tweets</category></item><item><title>In TypeScript, &quot;any&quot; is occasionally necessary when building reusable libraries</title><link>https://coryhouse.dev/2022/09/16/tweet-1570816418937176068/</link><guid isPermaLink="true">https://coryhouse.dev/2022/09/16/tweet-1570816418937176068/</guid><description>In TypeScript, &quot;any&quot; is occasionally necessary when building reusable libraries. But in app code, &quot;any&quot; is rarely necessary. I&apos;m reviewing an app t...</description><pubDate>Fri, 16 Sep 2022 16:46:33 GMT</pubDate><category>Tweets</category></item><item><title>I just did the Zod tutorial by @mattpocockuk Wow, this is so well done</title><link>https://coryhouse.dev/2022/09/17/tweet-1571153678685597696/</link><guid isPermaLink="true">https://coryhouse.dev/2022/09/17/tweet-1571153678685597696/</guid><description>I just did the Zod tutorial by @mattpocockuk Wow, this is so well done! Such a slick way to learn Zod basics. 👍 https://www.totaltypescript.com/tu...</description><pubDate>Sat, 17 Sep 2022 15:06:42 GMT</pubDate><category>Tweets</category></item><item><title>Zod question: How do you keep Zod and TypeScript in sync</title><link>https://coryhouse.dev/2022/09/17/tweet-1571160181148471297/</link><guid isPermaLink="true">https://coryhouse.dev/2022/09/17/tweet-1571160181148471297/</guid><description>Zod question: How do you keep Zod and TypeScript in sync? 2 options: 1. Derive TS types from your Zod schemas (via infer) 2. Generate Zod schemas f...</description><pubDate>Sat, 17 Sep 2022 15:32:32 GMT</pubDate><category>Tweets</category></item><item><title>The larger the dev team, the more important it is to have: ✅ Static types ✅...</title><link>https://coryhouse.dev/2022/09/18/tweet-1571495794938707969/</link><guid isPermaLink="true">https://coryhouse.dev/2022/09/18/tweet-1571495794938707969/</guid><description>The larger the dev team, the more important it is to have: ✅ Static types ✅ Automated tests and linting ✅ Automated code formatting ✅ Clear definit...</description><pubDate>Sun, 18 Sep 2022 13:46:09 GMT</pubDate><category>Tweets</category></item><item><title>Tech moves fast</title><link>https://coryhouse.dev/2022/09/18/tweet-1571586431453126658/</link><guid isPermaLink="true">https://coryhouse.dev/2022/09/18/tweet-1571586431453126658/</guid><description>Tech moves fast. Here&apos;s how I organize what I learn. 1. I store checklists, links, and notes in GitHub issues: https://github.com/coryhouse/reactjs...</description><pubDate>Sun, 18 Sep 2022 19:46:18 GMT</pubDate><category>Tweets</category></item><item><title>When I work in dynamic languages, I feel more stressed</title><link>https://coryhouse.dev/2022/09/19/tweet-1571845648651001859/</link><guid isPermaLink="true">https://coryhouse.dev/2022/09/19/tweet-1571845648651001859/</guid><description>When I work in dynamic languages, I feel more stressed. Why? Because I have to remember the data types and object shapes used by every function. Th...</description><pubDate>Mon, 19 Sep 2022 12:56:20 GMT</pubDate><category>Tweets</category></item><item><title>Wow, these GitHub Copilot stats are pretty compelling</title><link>https://coryhouse.dev/2022/09/19/tweet-1571893426110566401/</link><guid isPermaLink="true">https://coryhouse.dev/2022/09/19/tweet-1571893426110566401/</guid><description>Wow, these GitHub Copilot stats are pretty compelling. In a study of 95 devs, those using Copilot finished in 55% less time. Full study: https://sn...</description><pubDate>Mon, 19 Sep 2022 16:06:11 GMT</pubDate><category>Tweets</category></item><item><title>It’s easy to overlook issues in code reviews</title><link>https://coryhouse.dev/2022/09/20/tweet-1572201898085589000/</link><guid isPermaLink="true">https://coryhouse.dev/2022/09/20/tweet-1572201898085589000/</guid><description>It’s easy to overlook issues in code reviews. So, I use a high-level checklist: DRY Usable Secure Tested Robust Readable Accessible Performant Conf...</description><pubDate>Tue, 20 Sep 2022 12:31:57 GMT</pubDate><category>Tweets</category></item><item><title>How I test a pull request for &quot;Robustness&quot;: I enter malformed data</title><link>https://coryhouse.dev/2022/09/20/tweet-1572239678945755138/</link><guid isPermaLink="true">https://coryhouse.dev/2022/09/20/tweet-1572239678945755138/</guid><description>How I test a pull request for &quot;Robustness&quot;: I enter malformed data. I enter in a lot of data. I submit empty data. I slow the network. I disable th...</description><pubDate>Tue, 20 Sep 2022 15:02:04 GMT</pubDate><category>Tweets</category></item><item><title>This TypeScript story sounds familiar</title><link>https://coryhouse.dev/2022/09/21/tweet-1572575397082177536/</link><guid isPermaLink="true">https://coryhouse.dev/2022/09/21/tweet-1572575397082177536/</guid><description>This TypeScript story sounds familiar. Summary: 1. Adopt TypeScript. 2. Overuse &quot;any&quot;. 3. Think TypeScript is useless. 4. Later realize...the probl...</description><pubDate>Wed, 21 Sep 2022 13:16:06 GMT</pubDate><category>Tweets</category></item><item><title>React: The Good Parts™ Core API: 1</title><link>https://coryhouse.dev/2022/09/22/tweet-1572941305625583617/</link><guid isPermaLink="true">https://coryhouse.dev/2022/09/22/tweet-1572941305625583617/</guid><description>React: The Good Parts™ Core API: 1. Function components 2. JSX 3. useState 4. useReducer 5. useRef 6. lazy 7. Suspense Ecosystem: 1. TypeScript 2....</description><pubDate>Thu, 22 Sep 2022 13:30:05 GMT</pubDate><category>Tweets</category></item><item><title>Just converted a test suite from Jest to Vitest</title><link>https://coryhouse.dev/2022/09/22/tweet-1572974794940743685/</link><guid isPermaLink="true">https://coryhouse.dev/2022/09/22/tweet-1572974794940743685/</guid><description>Just converted a test suite from Jest to Vitest. The process: 1. Create vite.config.ts. Enable globals. 2. Replace “jest” with “vi” in tests. Resul...</description><pubDate>Thu, 22 Sep 2022 15:43:10 GMT</pubDate><category>Tweets</category></item><item><title>I’m creating a new course</title><link>https://coryhouse.dev/2022/09/23/tweet-1573311517411667968/</link><guid isPermaLink="true">https://coryhouse.dev/2022/09/23/tweet-1573311517411667968/</guid><description>I’m creating a new course! 🎉 “React: The Good Parts” Idea: 1. Learn modern React quickly. 2. Build a realistic app from scratch. 3. Use only React...</description><pubDate>Fri, 23 Sep 2022 14:01:11 GMT</pubDate><category>Tweets</category></item><item><title>Tip: Using TypeScript in VS Code</title><link>https://coryhouse.dev/2022/09/27/tweet-1574719609986764800/</link><guid isPermaLink="true">https://coryhouse.dev/2022/09/27/tweet-1574719609986764800/</guid><description>Tip: Using TypeScript in VS Code? Here are 5 places to check for TS compiler errors. And watch out, many of these spots but may be hidden at times....</description><pubDate>Tue, 27 Sep 2022 11:16:26 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;ve been working in React for nearly a decade</title><link>https://coryhouse.dev/2022/09/28/tweet-1575086527298011136/</link><guid isPermaLink="true">https://coryhouse.dev/2022/09/28/tweet-1575086527298011136/</guid><description>I&apos;ve been working in React for nearly a decade. But over the years my approach has radically evolved. Classes ➡️ functions Mixins ➡️ hooks prop-typ...</description><pubDate>Wed, 28 Sep 2022 11:34:26 GMT</pubDate><category>Tweets</category></item><item><title>My React folder pattern: 1</title><link>https://coryhouse.dev/2022/09/29/tweet-1575464978831769600/</link><guid isPermaLink="true">https://coryhouse.dev/2022/09/29/tweet-1575464978831769600/</guid><description>My React folder pattern: 1. The component folder structure mimics the routing structure. Result? Easy to find! 2. Exception: Reusable components in...</description><pubDate>Thu, 29 Sep 2022 12:38:16 GMT</pubDate><category>Tweets</category></item><item><title>Tailwind feels as logical as Prettier</title><link>https://coryhouse.dev/2022/09/30/tweet-1575792435786964993/</link><guid isPermaLink="true">https://coryhouse.dev/2022/09/30/tweet-1575792435786964993/</guid><description>Tailwind feels as logical as Prettier. Prettier ✅ Save time by auto-formatting code ✅ Eliminate decision fatigue ✅ Easily switch projects ✅ Code fa...</description><pubDate>Fri, 30 Sep 2022 10:19:28 GMT</pubDate><category>Tweets</category></item><item><title>Problem: How do I find unused packages in package.json</title><link>https://coryhouse.dev/2022/10/02/tweet-1576604828322914304/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/02/tweet-1576604828322914304/</guid><description>Problem: How do I find unused packages in package.json? Answer: Use depcheck. It reports unused packages, and reports packages that should be insta...</description><pubDate>Sun, 02 Oct 2022 16:07:37 GMT</pubDate><category>Tweets</category></item><item><title>Types are tests with better ergonomics</title><link>https://coryhouse.dev/2022/10/03/tweet-1576948832343949313/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/03/tweet-1576948832343949313/</guid><description>Types are tests with better ergonomics. Types provide faster feedback, inline, with less code than the equivalent test would require. Types don&apos;t r...</description><pubDate>Mon, 03 Oct 2022 14:54:34 GMT</pubDate><category>Tweets</category></item><item><title>React tip: Avoid using useEffect to sync state</title><link>https://coryhouse.dev/2022/10/04/tweet-1577356164446277633/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/04/tweet-1577356164446277633/</guid><description>React tip: Avoid using useEffect to sync state. Instead: 1. Derive values on render 2. Handle logic in events I just eliminated these 3 useEffect c...</description><pubDate>Tue, 04 Oct 2022 17:53:10 GMT</pubDate><category>Tweets</category></item><item><title>Code coverage can lie</title><link>https://coryhouse.dev/2022/10/06/tweet-1578008627952091136/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/06/tweet-1578008627952091136/</guid><description>Code coverage can lie. 100% coverage doesn’t mean all code is covered. One solution: Mutation testing. Mutation testing changes the code to assure...</description><pubDate>Thu, 06 Oct 2022 13:05:49 GMT</pubDate><category>Tweets</category></item><item><title>React tip: Group related props</title><link>https://coryhouse.dev/2022/10/06/tweet-1578096993930739713/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/06/tweet-1578096993930739713/</guid><description>React tip: Group related props. Example: If two props are optional, but both must be set if used, group them via an object. This way, the related p...</description><pubDate>Thu, 06 Oct 2022 18:56:57 GMT</pubDate><category>Tweets</category></item><item><title>Problem: When using a third party component library, it&apos;s common to set the...</title><link>https://coryhouse.dev/2022/10/07/tweet-1578399586896445441/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/07/tweet-1578399586896445441/</guid><description>Problem: When using a third party component library, it&apos;s common to set the same props each time you use a component. Solution: Wrap it. Benefits:...</description><pubDate>Fri, 07 Oct 2022 14:59:21 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript tip: Read “extends” as &quot;equals&quot;, “assignable to”, or “subset of”</title><link>https://coryhouse.dev/2022/10/09/tweet-1579107231777591297/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/09/tweet-1579107231777591297/</guid><description>TypeScript tip: Read “extends” as &quot;equals&quot;, “assignable to”, or “subset of”. So read this: function getKey&lt;K extends string&gt;(Val: any, key: a...</description><pubDate>Sun, 09 Oct 2022 13:51:17 GMT</pubDate><category>Tweets</category></item><item><title>5 ways to unit test a React component today: 1</title><link>https://coryhouse.dev/2022/10/09/tweet-1579133554864234496/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/09/tweet-1579133554864234496/</guid><description>5 ways to unit test a React component today: 1. @fbjest with @TestingLib 2. @vitest_dev with @TestingLib 3. @storybookjs with 1 or 2 above 4. @Cypr...</description><pubDate>Sun, 09 Oct 2022 15:35:53 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript tip: Prefer type declarations to type assertions</title><link>https://coryhouse.dev/2022/10/11/tweet-1579837649363558401/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/11/tweet-1579837649363558401/</guid><description>TypeScript tip: Prefer type declarations to type assertions. Type assertions ignore excess properties. 👎 Type declarations check for excess proper...</description><pubDate>Tue, 11 Oct 2022 14:13:42 GMT</pubDate><category>Tweets</category></item><item><title>Code smell: Frequently checking for null/undefined</title><link>https://coryhouse.dev/2022/10/12/tweet-1580146526823022592/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/12/tweet-1580146526823022592/</guid><description>Code smell: Frequently checking for null/undefined. The root cause: Inconsistent data/settings. When data is inconsistent, I normalize it before us...</description><pubDate>Wed, 12 Oct 2022 10:41:04 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m reviewing a React codebase that uses Redux to cache HTTP responses</title><link>https://coryhouse.dev/2022/10/13/tweet-1580544358155419648/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/13/tweet-1580544358155419648/</guid><description>I&apos;m reviewing a React codebase that uses Redux to cache HTTP responses. It feels needlessly complex, and risky. And, there&apos;s no cache invalidation...</description><pubDate>Thu, 13 Oct 2022 13:01:54 GMT</pubDate><category>Tweets</category></item><item><title>One of my favorite VS Code plugins: Code spell checker</title><link>https://coryhouse.dev/2022/10/14/tweet-1580902350193328128/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/14/tweet-1580902350193328128/</guid><description>One of my favorite VS Code plugins: Code spell checker. I&apos;ve been shocked at how many spelling errors it has caught in the last few weeks. It has h...</description><pubDate>Fri, 14 Oct 2022 12:44:26 GMT</pubDate><category>Tweets</category></item><item><title>I’m really enjoying @turborepo</title><link>https://coryhouse.dev/2022/10/14/tweet-1580923528596946944/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/14/tweet-1580923528596946944/</guid><description>I’m really enjoying @turborepo. It’s a game changer. With Turbo, I have an incentive to break my repo down into many small, focused packages. This...</description><pubDate>Fri, 14 Oct 2022 14:08:36 GMT</pubDate><category>Tweets</category></item><item><title>Compiling #TypeScript is slow</title><link>https://coryhouse.dev/2022/10/15/tweet-1581261374461980672/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/15/tweet-1581261374461980672/</guid><description>Compiling #TypeScript is slow. My solutions: 1. Don&apos;t run tsc during dev. (Lean on editor) 2. Use incremental flag when watching files. 3. Decompos...</description><pubDate>Sat, 15 Oct 2022 12:31:04 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript tip: Avoid making a property optional when the property isn’t...</title><link>https://coryhouse.dev/2022/10/16/tweet-1581638360543600640/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/16/tweet-1581638360543600640/</guid><description>TypeScript tip: Avoid making a property optional when the property isn’t valid in a certain case. Instead, declare 2 separate types, and use Omit t...</description><pubDate>Sun, 16 Oct 2022 13:29:05 GMT</pubDate><category>Tweets</category></item><item><title>Naming is hard</title><link>https://coryhouse.dev/2022/10/16/tweet-1581796001215836160/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/16/tweet-1581796001215836160/</guid><description>Naming is hard. The solution? Nouns vs verbs. Start these with a verb: Functions ➡️ getUser Ticket titles ➡️ Fix log out Commit messages ➡️ Fix bug...</description><pubDate>Sun, 16 Oct 2022 23:55:29 GMT</pubDate><category>Tweets</category></item><item><title>Hiring a company to do software development is risky</title><link>https://coryhouse.dev/2022/10/17/tweet-1581999739184513025/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/17/tweet-1581999739184513025/</guid><description>Hiring a company to do software development is risky. Why? Because &quot;Done&quot; is hard to define. Consider aspects of software quality: Fast Secure Usab...</description><pubDate>Mon, 17 Oct 2022 13:25:04 GMT</pubDate><category>Tweets</category></item><item><title>React’s “use” hook in 1 tweet: Works like “await”</title><link>https://coryhouse.dev/2022/10/18/tweet-1582358326075043841/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/18/tweet-1582358326075043841/</guid><description>React’s “use” hook in 1 tweet: Works like “await”. Wraps promises (and soon other things). The component replays when the promise resolves. Only fo...</description><pubDate>Tue, 18 Oct 2022 13:09:58 GMT</pubDate><category>Tweets</category></item><item><title>I finally bought a Thunderbolt 4 dock</title><link>https://coryhouse.dev/2022/10/18/tweet-1582373113186385920/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/18/tweet-1582373113186385920/</guid><description>I finally bought a Thunderbolt 4 dock. Loving it. All this connects to my M1 MacBook Pro via 1 cable: 1. 4K/60hz monitor 2. 4K SLR webcam 3. Audien...</description><pubDate>Tue, 18 Oct 2022 14:08:43 GMT</pubDate><category>Tweets</category></item><item><title>Prediction: React&apos;s upcoming `use` hook will be overused, just like...</title><link>https://coryhouse.dev/2022/10/19/tweet-1582722567344861184/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/19/tweet-1582722567344861184/</guid><description>Prediction: React&apos;s upcoming `use` hook will be overused, just like useEffect is today. Like `useEffect`, `use` should mainly be used &quot;behind the s...</description><pubDate>Wed, 19 Oct 2022 13:17:20 GMT</pubDate><category>Tweets</category></item><item><title>Two places I see useEffect overuse today: 1</title><link>https://coryhouse.dev/2022/10/20/tweet-1583053203200831488/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/20/tweet-1583053203200831488/</guid><description>Two places I see useEffect overuse today: 1. Fetching via HTTP. Solution? Use react-query, React Router loader, or fetch on the server if in Next,...</description><pubDate>Thu, 20 Oct 2022 11:11:10 GMT</pubDate><category>Tweets</category></item><item><title>In a monorepo</title><link>https://coryhouse.dev/2022/10/20/tweet-1583127688302108672/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/20/tweet-1583127688302108672/</guid><description>In a monorepo? I just learned about syncpack. It&apos;s a simple way to enforce that all the monorepo packages use the same dependency versions. You can...</description><pubDate>Thu, 20 Oct 2022 16:07:08 GMT</pubDate><category>Tweets</category></item><item><title>React state tip: Group related state into a single useState call (via an object)</title><link>https://coryhouse.dev/2022/10/21/tweet-1583411982887026689/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/21/tweet-1583411982887026689/</guid><description>React state tip: Group related state into a single useState call (via an object). Benefits: ✅ Less code ✅ Better readability ✅ Groups related items...</description><pubDate>Fri, 21 Oct 2022 10:56:49 GMT</pubDate><category>Tweets</category></item><item><title>There are good reasons to create a folder</title><link>https://coryhouse.dev/2022/10/22/tweet-1583813348373647360/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/22/tweet-1583813348373647360/</guid><description>There are good reasons to create a folder. But, here’s a bad reason: To create many files with the same name. Avoid: 👎 /user/api.js /product/api.j...</description><pubDate>Sat, 22 Oct 2022 13:31:42 GMT</pubDate><category>Tweets</category></item><item><title>React is usually plenty fast by default</title><link>https://coryhouse.dev/2022/10/23/tweet-1584183790716342279/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/23/tweet-1584183790716342279/</guid><description>React is usually plenty fast by default. I find performance optimizations are rarely necessary. If a React app is slow, a common culprit is renderi...</description><pubDate>Sun, 23 Oct 2022 14:03:43 GMT</pubDate><category>Tweets</category></item><item><title>A messy codebase contains countless examples that shouldn&apos;t be copied</title><link>https://coryhouse.dev/2022/10/24/tweet-1584531270436278272/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/24/tweet-1584531270436278272/</guid><description>A messy codebase contains countless examples that shouldn&apos;t be copied. Result? Hiring more developers often just creates tech debt, faster. 👎 A co...</description><pubDate>Mon, 24 Oct 2022 13:04:28 GMT</pubDate><category>Tweets</category></item><item><title>Performance jargon: LCP: Largest Contentful Paint - How long it takes for...</title><link>https://coryhouse.dev/2022/10/24/tweet-1584562543317553152/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/24/tweet-1584562543317553152/</guid><description>Performance jargon: LCP: Largest Contentful Paint - How long it takes for the largest piece of content to show. FID: First Input Delay - How long i...</description><pubDate>Mon, 24 Oct 2022 15:08:44 GMT</pubDate><category>Tweets</category></item><item><title>4 React anti-patterns: 1</title><link>https://coryhouse.dev/2022/10/25/tweet-1584883279874117633/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/25/tweet-1584883279874117633/</guid><description>4 React anti-patterns: 1. Syncing state that can be derived on render via useEffect. 2. Using useMemo/useCallback everywhere. 3. Putting nearly all...</description><pubDate>Tue, 25 Oct 2022 12:23:14 GMT</pubDate><category>Tweets</category></item><item><title>useCallback is often the result of a needless useEffect</title><link>https://coryhouse.dev/2022/10/25/tweet-1584954268867784704/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/25/tweet-1584954268867784704/</guid><description>useCallback is often the result of a needless useEffect. Often a useEffect can replaced by an event handler (onClick) Often a useEffect can be remo...</description><pubDate>Tue, 25 Oct 2022 17:05:19 GMT</pubDate><category>Tweets</category></item><item><title>Situation: Your team’s codebase contains an anti-pattern</title><link>https://coryhouse.dev/2022/10/26/tweet-1585247347067727880/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/26/tweet-1585247347067727880/</guid><description>Situation: Your team’s codebase contains an anti-pattern. How do you keep the anti-pattern from spreading? My approach: 1. Fix all spots 2. Educate...</description><pubDate>Wed, 26 Oct 2022 12:29:54 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript tip: When migrating a web app to TypeScript, strongly type HTTP...</title><link>https://coryhouse.dev/2022/10/26/tweet-1585391101393141760/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/26/tweet-1585391101393141760/</guid><description>TypeScript tip: When migrating a web app to TypeScript, strongly type HTTP responses first. HTTP responses tend to be passed throughout the app. So...</description><pubDate>Wed, 26 Oct 2022 22:01:08 GMT</pubDate><category>Tweets</category></item><item><title>A simple ruleset for handling React state: 1</title><link>https://coryhouse.dev/2022/10/28/tweet-1585989899995344896/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/28/tweet-1585989899995344896/</guid><description>A simple ruleset for handling React state: 1. Start local. 2. Children need it? Pass state down via props. 3. Parent/siblings need it? Cut and past...</description><pubDate>Fri, 28 Oct 2022 13:40:33 GMT</pubDate><category>Tweets</category></item><item><title>Naming tip: &quot;data&quot; is rarely a good variable name</title><link>https://coryhouse.dev/2022/10/28/tweet-1586029385324580865/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/28/tweet-1586029385324580865/</guid><description>Naming tip: &quot;data&quot; is rarely a good variable name. Most apps contain *many* types of data, so prefer a more descriptive name.</description><pubDate>Fri, 28 Oct 2022 16:17:27 GMT</pubDate><category>Tweets</category></item><item><title>⚛️ React tip: If state values are related, and must be kept in sync, create...</title><link>https://coryhouse.dev/2022/10/29/tweet-1586341638489931776/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/29/tweet-1586341638489931776/</guid><description>⚛️ React tip: If state values are related, and must be kept in sync, create the &quot;derived&quot; value on render. Example: If you have data and filteredDa...</description><pubDate>Sat, 29 Oct 2022 12:58:14 GMT</pubDate><category>Tweets</category></item><item><title>This 7 second video from @kentcdodds may be the single most compelling sales...</title><link>https://coryhouse.dev/2022/10/29/tweet-1586399622926585858/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/29/tweet-1586399622926585858/</guid><description>This 7 second video from @kentcdodds may be the single most compelling sales pitch I&apos;ve seen for @remix_run. Strong types, all the way from the DB...</description><pubDate>Sat, 29 Oct 2022 16:48:38 GMT</pubDate><category>Tweets</category></item><item><title>React in 2014: ✅Make SPAs</title><link>https://coryhouse.dev/2022/10/30/tweet-1586704800988684288/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/30/tweet-1586704800988684288/</guid><description>React in 2014: ✅Make SPAs. ✅Use create-react-app. React in 2022: ✅Make SPAs, native mobile, static, MPAs, and hybrid apps. ✅Use Vite, Next, Remix,...</description><pubDate>Sun, 30 Oct 2022 13:01:18 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript tip: Sometimes a type&apos;s name conflicts with an existing identifier</title><link>https://coryhouse.dev/2022/10/30/tweet-1586865516395876359/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/30/tweet-1586865516395876359/</guid><description>TypeScript tip: Sometimes a type&apos;s name conflicts with an existing identifier. When this happens, I alias the type&apos;s name: import { Link as LinkTyp...</description><pubDate>Sun, 30 Oct 2022 23:39:56 GMT</pubDate><category>Tweets</category></item><item><title>⚛️10 reasons to prefer useReducer over useState: 1</title><link>https://coryhouse.dev/2022/10/31/tweet-1587072435689603075/</link><guid isPermaLink="true">https://coryhouse.dev/2022/10/31/tweet-1587072435689603075/</guid><description>⚛️10 reasons to prefer useReducer over useState: 1. Separates reads from writes. 2. Avoids useState pitfalls. You should use functional setState to...</description><pubDate>Mon, 31 Oct 2022 13:22:09 GMT</pubDate><category>Tweets</category></item><item><title>I just created my first React Server Component with @nextjs 13</title><link>https://coryhouse.dev/2022/11/01/tweet-1587442962946039808/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/01/tweet-1587442962946039808/</guid><description>I just created my first React Server Component with @nextjs 13! 😍 Here&apos;s a 90 second summary of how it works. I like how elegant the API is. I awa...</description><pubDate>Tue, 01 Nov 2022 13:54:30 GMT</pubDate><category>Tweets</category></item><item><title>Why render React Server Components</title><link>https://coryhouse.dev/2022/11/01/tweet-1587471528270118914/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/01/tweet-1587471528270118914/</guid><description>Why render React Server Components? Performance. 1. Faster fetches. The server typically has a faster internet connection than your users.💨 2. Fet...</description><pubDate>Tue, 01 Nov 2022 15:48:00 GMT</pubDate><category>Tweets</category></item><item><title>Server rendering JS is suddenly popular</title><link>https://coryhouse.dev/2022/11/02/tweet-1587804689562746883/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/02/tweet-1587804689562746883/</guid><description>Server rendering JS is suddenly popular. It’s not a coincidence. Smart people finally figured out how to: 1. Render JS-based components on the serv...</description><pubDate>Wed, 02 Nov 2022 13:51:52 GMT</pubDate><category>Tweets</category></item><item><title>Yet another reason to convert your old React class components to functions:...</title><link>https://coryhouse.dev/2022/11/03/tweet-1588132168466894854/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/03/tweet-1588132168466894854/</guid><description>Yet another reason to convert your old React class components to functions: React Server Components only work with function components. (Chart from...</description><pubDate>Thu, 03 Nov 2022 11:33:09 GMT</pubDate><category>Tweets</category></item><item><title>React should deprecate class components</title><link>https://coryhouse.dev/2022/11/03/tweet-1588175459371479040/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/03/tweet-1588175459371479040/</guid><description>React should deprecate class components. They’ve languished long enough. React’s API keeps growing. And many modern libraries assume you’re using h...</description><pubDate>Thu, 03 Nov 2022 14:25:11 GMT</pubDate><category>Tweets</category></item><item><title>My favorite thing about file-based routing: The folder structure corresponds...</title><link>https://coryhouse.dev/2022/11/04/tweet-1588532505426423809/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/04/tweet-1588532505426423809/</guid><description>My favorite thing about file-based routing: The folder structure corresponds to the URL. This avoids decision fatigue, and makes files easy to find...</description><pubDate>Fri, 04 Nov 2022 14:03:57 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript tip: It&apos;s often helpful to access a union type at runtime</title><link>https://coryhouse.dev/2022/11/04/tweet-1588560073256992769/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/04/tweet-1588560073256992769/</guid><description>TypeScript tip: It&apos;s often helpful to access a union type at runtime. Solution? 1. Declare an array const 2. Use typeof to derive a union from the...</description><pubDate>Fri, 04 Nov 2022 15:53:30 GMT</pubDate><category>Tweets</category></item><item><title>Problem: A TypeScript codebase with &quot;any&quot; everywhere</title><link>https://coryhouse.dev/2022/11/04/tweet-1588660387259781123/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/04/tweet-1588660387259781123/</guid><description>Problem: A TypeScript codebase with &quot;any&quot; everywhere. My first move: 1. Strongly type all HTTP calls. This ripples throughout the code in a good wa...</description><pubDate>Fri, 04 Nov 2022 22:32:06 GMT</pubDate><category>Tweets</category></item><item><title>Claim: &quot;I don&apos;t have time to write tests or types&quot;</title><link>https://coryhouse.dev/2022/11/05/tweet-1588865843232116736/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/05/tweet-1588865843232116736/</guid><description>Claim: &quot;I don&apos;t have time to write tests or types&quot;. Reality: They&apos;ll save you time. Skipping types and tests may save a little time today. But it w...</description><pubDate>Sat, 05 Nov 2022 12:08:31 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript decision: How should a function that calls fetch be typed</title><link>https://coryhouse.dev/2022/11/05/tweet-1588913928687738881/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/05/tweet-1588913928687738881/</guid><description>TypeScript decision: How should a function that calls fetch be typed? Options: 1. Type the return statement 2. Type the function&apos;s signature 3. Typ...</description><pubDate>Sat, 05 Nov 2022 15:19:35 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m trying to use @playwrightweb instead of Cypress</title><link>https://coryhouse.dev/2022/11/06/tweet-1589260976456859648/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/06/tweet-1589260976456859648/</guid><description>I&apos;m trying to use @playwrightweb instead of Cypress. I like that Playwright has @TestingLib queries built in. But, they work differently. getBy* qu...</description><pubDate>Sun, 06 Nov 2022 14:18:38 GMT</pubDate><category>Tweets</category></item><item><title>My definition of a TypeScript-friendly library: I don’t have to “opt-in” to...</title><link>https://coryhouse.dev/2022/11/07/tweet-1589589579610267648/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/07/tweet-1589589579610267648/</guid><description>My definition of a TypeScript-friendly library: I don’t have to “opt-in” to types. It’s automatic. I call APIs, enjoy rich autocomplete support, an...</description><pubDate>Mon, 07 Nov 2022 12:04:23 GMT</pubDate><category>Tweets</category></item><item><title>Poll: Do you believe it’s important to validate fetch call response shapes...</title><link>https://coryhouse.dev/2022/11/08/tweet-1589972540176629760/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/08/tweet-1589972540176629760/</guid><description>Poll: Do you believe it’s important to validate fetch call response shapes *at runtime* via tools like Zod, io-ts, etc? (Remember, TypeScript doesn...</description><pubDate>Tue, 08 Nov 2022 13:26:08 GMT</pubDate><category>Tweets</category></item><item><title>Healthy team habit: Create Architectural Decision Records (ADR) ADRs...</title><link>https://coryhouse.dev/2022/11/09/tweet-1590345396936925186/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/09/tweet-1590345396936925186/</guid><description>Healthy team habit: Create Architectural Decision Records (ADR) ADRs document big decisions. Benefits: ✅ Everyone understands how the decision was...</description><pubDate>Wed, 09 Nov 2022 14:07:44 GMT</pubDate><category>Tweets</category></item><item><title>“We don’t do code reviews</title><link>https://coryhouse.dev/2022/11/11/tweet-1591084298941366273/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/11/tweet-1591084298941366273/</guid><description>“We don’t do code reviews. We trust our developers.” &lt;insert epic eye roll here&gt; No one should be blindly trusted. No one is beyond making a...</description><pubDate>Fri, 11 Nov 2022 15:03:52 GMT</pubDate><category>Tweets</category></item><item><title>How to ship a feature faster: Skip tests</title><link>https://coryhouse.dev/2022/11/13/tweet-1591821924057092096/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/13/tweet-1591821924057092096/</guid><description>How to ship a feature faster: Skip tests. Skip types. Skip docs. Skip code reviews. Skip error handling. Cut corners on security. Ignore performanc...</description><pubDate>Sun, 13 Nov 2022 15:54:55 GMT</pubDate><category>Tweets</category></item><item><title>I’ve found it’s typically worthwhile to mock API’s for front end development</title><link>https://coryhouse.dev/2022/11/15/tweet-1592596317137940480/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/15/tweet-1592596317137940480/</guid><description>I’ve found it’s typically worthwhile to mock API’s for front end development. Doing so makes UI development faster, and makes automated testing lig...</description><pubDate>Tue, 15 Nov 2022 19:12:05 GMT</pubDate><category>Tweets</category></item><item><title>My 3 step bug fix process: 1</title><link>https://coryhouse.dev/2022/11/16/tweet-1592742054337003520/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/16/tweet-1592742054337003520/</guid><description>My 3 step bug fix process: 1. Write a test that asserts the correct behavior. See the test fail, due to the bug. ❌ 2. Fix the bug. 🐞 3. See the te...</description><pubDate>Wed, 16 Nov 2022 04:51:12 GMT</pubDate><category>Tweets</category></item><item><title>I believe in comprehensive code coverage</title><link>https://coryhouse.dev/2022/11/16/tweet-1592873592949440513/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/16/tweet-1592873592949440513/</guid><description>I believe in comprehensive code coverage. But, I don’t believe in mandating code coverage minimums. Mandating 90% test coverage leads to the team g...</description><pubDate>Wed, 16 Nov 2022 13:33:53 GMT</pubDate><category>Tweets</category></item><item><title>Common mistake: Moving to the next feature before truly finishing the...</title><link>https://coryhouse.dev/2022/11/17/tweet-1593072403550441472/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/17/tweet-1593072403550441472/</guid><description>Common mistake: Moving to the next feature before truly finishing the current feature. Teams that do this create many partially working, buggy, poo...</description><pubDate>Thu, 17 Nov 2022 02:43:53 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript poll: Which approach to declaring React prop types do you prefer</title><link>https://coryhouse.dev/2022/11/18/tweet-1593460361352445952/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/18/tweet-1593460361352445952/</guid><description>TypeScript poll: Which approach to declaring React prop types do you prefer? Poll in next tweet...👇</description><pubDate>Fri, 18 Nov 2022 04:25:29 GMT</pubDate><category>Tweets</category></item><item><title>Tip: Avoid explicit booleans</title><link>https://coryhouse.dev/2022/11/18/tweet-1593479168117071873/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/18/tweet-1593479168117071873/</guid><description>Tip: Avoid explicit booleans. For example, avoid this: if (x &gt; y) { return true } else { return false } Instead, do this: return x &gt; y;</description><pubDate>Fri, 18 Nov 2022 05:40:13 GMT</pubDate><category>Tweets</category></item><item><title>I prefer building REST APIs in TypeScript</title><link>https://coryhouse.dev/2022/11/19/tweet-1594103630625353728/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/19/tweet-1594103630625353728/</guid><description>I prefer building REST APIs in TypeScript. Why? Because I can use the types to keep 6 separate things in sync: 1. The API request shape 2. The API...</description><pubDate>Sat, 19 Nov 2022 23:01:37 GMT</pubDate><category>Tweets</category></item><item><title>Problem: In React, it&apos;s often tricky to hunt down the component that&apos;s...</title><link>https://coryhouse.dev/2022/11/20/tweet-1594348217625628674/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/20/tweet-1594348217625628674/</guid><description>Problem: In React, it&apos;s often tricky to hunt down the component that&apos;s rendering a piece of UI. Solution: LocatorJS (A Chrome plugin) I&apos;ve been usi...</description><pubDate>Sun, 20 Nov 2022 15:13:31 GMT</pubDate><category>Tweets</category></item><item><title>Had a wonderful time in LA this week training a team on modern React</title><link>https://coryhouse.dev/2022/11/20/tweet-1594470040157523968/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/20/tweet-1594470040157523968/</guid><description>Had a wonderful time in LA this week training a team on modern React. With so much new good stuff in the React ecosystem we had a lot of ground to...</description><pubDate>Sun, 20 Nov 2022 23:17:36 GMT</pubDate><category>Tweets</category></item><item><title>How to write unreadable code: Put all code in one giant function</title><link>https://coryhouse.dev/2022/11/21/tweet-1594705592156921858/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/21/tweet-1594705592156921858/</guid><description>How to write unreadable code: Put all code in one giant function. Use short, unclear names. Embrace deep indentation. Require the reader to hold do...</description><pubDate>Mon, 21 Nov 2022 14:53:36 GMT</pubDate><category>Tweets</category></item><item><title>A wasteful pattern: APIs that return PascalCase JSON</title><link>https://coryhouse.dev/2022/11/23/tweet-1595425955882860544/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/23/tweet-1595425955882860544/</guid><description>A wasteful pattern: APIs that return PascalCase JSON. The workaround: 1. Convert JSON to camelCase on the client. 2. Convert JSON back to PascalCas...</description><pubDate>Wed, 23 Nov 2022 14:36:04 GMT</pubDate><category>Tweets</category></item><item><title>I have a wonderful wife and 3 healthy, amazing kids</title><link>https://coryhouse.dev/2022/11/24/tweet-1595775668633145344/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/24/tweet-1595775668633145344/</guid><description>I have a wonderful wife and 3 healthy, amazing kids. We enjoy multiple trips with friends each year. I’m in the best shape of my life. I run a succ...</description><pubDate>Thu, 24 Nov 2022 13:45:42 GMT</pubDate><category>Tweets</category></item><item><title>ESLint should report *ZERO* warnings or errors on CI</title><link>https://coryhouse.dev/2022/11/24/tweet-1595826664264667139/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/24/tweet-1595826664264667139/</guid><description>ESLint should report *ZERO* warnings or errors on CI. If one occurs, it should break the build. If warnings/errors are ignored, then ESLint becomes...</description><pubDate>Thu, 24 Nov 2022 17:08:20 GMT</pubDate><category>Tweets</category></item><item><title>I just cleaned up a JS project</title><link>https://coryhouse.dev/2022/11/25/tweet-1596154452276576257/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/25/tweet-1596154452276576257/</guid><description>I just cleaned up a JS project. Before: Over 3,000 ESLint warnings/errors. 😬 After: Zero warnings/errors. 😀 How? 1. I fixed many spots quickly vi...</description><pubDate>Fri, 25 Nov 2022 14:50:51 GMT</pubDate><category>Tweets</category></item><item><title>Just learned you can use underscores as separators in JavaScript numbers</title><link>https://coryhouse.dev/2022/11/26/tweet-1596495131192033282/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/26/tweet-1596495131192033282/</guid><description>Just learned you can use underscores as separators in JavaScript numbers. This improves the readability of large values. #javascript</description><pubDate>Sat, 26 Nov 2022 13:24:35 GMT</pubDate><category>Tweets</category></item><item><title>4 ways to handle multiple promises in #JavaScript How I choose: 1</title><link>https://coryhouse.dev/2022/11/26/tweet-1596534347473080324/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/26/tweet-1596534347473080324/</guid><description>4 ways to handle multiple promises in #JavaScript How I choose: 1. Promise.all - I want all, but reject if any reject. 2. Promise.allSettled - I wa...</description><pubDate>Sat, 26 Nov 2022 16:00:25 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript tip: Many optional properties are a code smell</title><link>https://coryhouse.dev/2022/11/27/tweet-1596861970170671104/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/27/tweet-1596861970170671104/</guid><description>TypeScript tip: Many optional properties are a code smell. Why? Because it reduces type safety. Example, I joined a project where every REST API ca...</description><pubDate>Sun, 27 Nov 2022 13:42:16 GMT</pubDate><category>Tweets</category></item><item><title>I just radically simplified a fetch call</title><link>https://coryhouse.dev/2022/11/27/tweet-1596944108794548224/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/27/tweet-1596944108794548224/</guid><description>I just radically simplified a fetch call. Before: 26 lines. After: 6 lines. Here are 8 ways to simplify a fetch function.</description><pubDate>Sun, 27 Nov 2022 19:08:39 GMT</pubDate><category>Tweets</category></item><item><title>Problem: JavaScript’s Date is lousy</title><link>https://coryhouse.dev/2022/11/28/tweet-1597232074523824131/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/28/tweet-1597232074523824131/</guid><description>Problem: JavaScript’s Date is lousy. So we often need to use a library instead. Solution: Temporal. Temporal is a new top-level namespace. Temporal...</description><pubDate>Mon, 28 Nov 2022 14:12:56 GMT</pubDate><category>Tweets</category></item><item><title>I think the term &quot;prop drilling&quot; encourages React developers to overuse...</title><link>https://coryhouse.dev/2022/11/29/tweet-1597575317488824320/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/29/tweet-1597575317488824320/</guid><description>I think the term &quot;prop drilling&quot; encourages React developers to overuse tools like Context and Redux. &quot;Prop drilling&quot; is just passing arguments dow...</description><pubDate>Tue, 29 Nov 2022 12:56:51 GMT</pubDate><category>Tweets</category></item><item><title>Just learned a new JavaScript array method: findLast It returns the last...</title><link>https://coryhouse.dev/2022/11/29/tweet-1597662760808374274/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/29/tweet-1597662760808374274/</guid><description>Just learned a new JavaScript array method: findLast It returns the last element in an array that matches. More on MDN: https://developer.mozilla.o...</description><pubDate>Tue, 29 Nov 2022 18:44:19 GMT</pubDate><category>Tweets</category></item><item><title>I’m a big Cypress fan, so I’m shocked to say this: I just switched to...</title><link>https://coryhouse.dev/2022/11/30/tweet-1597954687705104385/</link><guid isPermaLink="true">https://coryhouse.dev/2022/11/30/tweet-1597954687705104385/</guid><description>I’m a big Cypress fan, so I’m shocked to say this: I just switched to @playwrightweb. Here are 16 reasons I switched: 1. WAY Faster. ~2X faster wit...</description><pubDate>Wed, 30 Nov 2022 14:04:20 GMT</pubDate><category>Tweets</category></item><item><title>Yesterday I shared why I&apos;m switching from Cypress to Playwright</title><link>https://coryhouse.dev/2022/12/01/tweet-1598314364033024001/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/01/tweet-1598314364033024001/</guid><description>Yesterday I shared why I&apos;m switching from Cypress to Playwright. But Cypress is solid too. Here are 4 Cypress benefits: 1. More concise syntax. In...</description><pubDate>Thu, 01 Dec 2022 13:53:34 GMT</pubDate><category>Tweets</category></item><item><title>⚛️ 3 keys to fast React app tests: 1</title><link>https://coryhouse.dev/2022/12/02/tweet-1598512049755230208/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/02/tweet-1598512049755230208/</guid><description>⚛️ 3 keys to fast React app tests: 1. Mock HTTP calls (Use @ApiMocking) 2. Test the prod build. React&apos;s prod build is MUCH faster. (see below) 3. P...</description><pubDate>Fri, 02 Dec 2022 02:59:06 GMT</pubDate><category>Tweets</category></item><item><title>This isn’t error handling: .catch((error) =&gt; { console.log(error); });...</title><link>https://coryhouse.dev/2022/12/02/tweet-1598678951739772934/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/02/tweet-1598678951739772934/</guid><description>This isn’t error handling: .catch((error) =&gt; { console.log(error); }); That’s error swallowing. 😬 The user doesn’t watch the console. So, they...</description><pubDate>Fri, 02 Dec 2022 14:02:18 GMT</pubDate><category>Tweets</category></item><item><title>⚛️ My React component unit testing strategy: Test each prop</title><link>https://coryhouse.dev/2022/12/02/tweet-1598731408524316673/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/02/tweet-1598731408524316673/</guid><description>⚛️ My React component unit testing strategy: Test each prop. Approach: 1. Split my VSCode window. I put the file under test on the left, and the te...</description><pubDate>Fri, 02 Dec 2022 17:30:45 GMT</pubDate><category>Tweets</category></item><item><title>This resonates</title><link>https://coryhouse.dev/2022/12/02/tweet-1598773691210407936/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/02/tweet-1598773691210407936/</guid><description>This resonates. For me, writing software feels like creating art. It&apos;s a creative process. The act puts me in a state of flow. It&apos;s naturally rewar...</description><pubDate>Fri, 02 Dec 2022 20:18:46 GMT</pubDate><category>Tweets</category></item><item><title>Just learned JavaScript has logical OR assignment and logical AND assignment</title><link>https://coryhouse.dev/2022/12/03/tweet-1599030479420022784/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/03/tweet-1599030479420022784/</guid><description>Just learned JavaScript has logical OR assignment and logical AND assignment! 🔥 Logical AND assignment: x &amp;&amp;= &quot;x is truthy&quot; // assigns if...</description><pubDate>Sat, 03 Dec 2022 13:19:09 GMT</pubDate><category>Tweets</category></item><item><title>Modern JavaScript has over 50 operators</title><link>https://coryhouse.dev/2022/12/04/tweet-1599382734232637441/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/04/tweet-1599382734232637441/</guid><description>Modern JavaScript has over 50 operators. 🤯 + += = &amp; &amp;= |= ^ ^= , -- / /= == ** **= &gt; &gt;= () ++ != &lt;&lt; &lt;&lt;= &lt; &lt;= &amp;...</description><pubDate>Sun, 04 Dec 2022 12:38:53 GMT</pubDate><category>Tweets</category></item><item><title>Coding in 2002: The more effective you are at written communication, the...</title><link>https://coryhouse.dev/2022/12/04/tweet-1599521476800978944/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/04/tweet-1599521476800978944/</guid><description>Coding in 2002: The more effective you are at written communication, the more effective you are as a developer. Coding in 2022: Same. AI doesn&apos;t ch...</description><pubDate>Sun, 04 Dec 2022 21:50:12 GMT</pubDate><category>Tweets</category></item><item><title>Problem: package.json doesn’t support comments</title><link>https://coryhouse.dev/2022/12/05/tweet-1599750653105958917/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/05/tweet-1599750653105958917/</guid><description>Problem: package.json doesn’t support comments. Solution: Create a key that starts with // and ends with the target key. Put the comment in the val...</description><pubDate>Mon, 05 Dec 2022 13:00:52 GMT</pubDate><category>Tweets</category></item><item><title>1992: Get answers in books 2002: Get answers on forums 2012: Get answers on...</title><link>https://coryhouse.dev/2022/12/05/tweet-1599835294215245824/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/05/tweet-1599835294215245824/</guid><description>1992: Get answers in books 2002: Get answers on forums 2012: Get answers on StackOverflow 2022: Get answers from AI We’re finding answers faster. �...</description><pubDate>Mon, 05 Dec 2022 18:37:12 GMT</pubDate><category>Tweets</category></item><item><title>I thought I knew Flexbox well, but I learned a few new tricks in this...</title><link>https://coryhouse.dev/2022/12/06/tweet-1599962114545754112/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/06/tweet-1599962114545754112/</guid><description>I thought I knew Flexbox well, but I learned a few new tricks in this excellent post by @JoshWComeau. The interactive demos are fantastic. https://...</description><pubDate>Tue, 06 Dec 2022 03:01:08 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Using an open source component library often leads to bloat and...</title><link>https://coryhouse.dev/2022/12/07/tweet-1600301675360575488/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/07/tweet-1600301675360575488/</guid><description>Problem: Using an open source component library often leads to bloat and inconsistency. Why? Because each app has opinions. Each app needs to use t...</description><pubDate>Wed, 07 Dec 2022 01:30:26 GMT</pubDate><category>Tweets</category></item><item><title>JavaScript tip: You might not need an if statement or a ternary</title><link>https://coryhouse.dev/2022/12/08/tweet-1600868678714916865/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/08/tweet-1600868678714916865/</guid><description>JavaScript tip: You might not need an if statement or a ternary. JS has Nullish coalescing assignment. Example: user.age ??= &apos;unknown age&apos;; More: h...</description><pubDate>Thu, 08 Dec 2022 15:03:30 GMT</pubDate><category>Tweets</category></item><item><title>Okay, @ApiMocking has become a fundamental part of my dev and testing workflow</title><link>https://coryhouse.dev/2022/12/08/tweet-1601001734511685634/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/08/tweet-1601001734511685634/</guid><description>Okay, @ApiMocking has become a fundamental part of my dev and testing workflow. I don’t worry about endpoints or DBs being down or slow. I don’t wo...</description><pubDate>Thu, 08 Dec 2022 23:52:13 GMT</pubDate><category>Tweets</category></item><item><title>Server-rendering React is becoming popular</title><link>https://coryhouse.dev/2022/12/09/tweet-1601298154212982784/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/09/tweet-1601298154212982784/</guid><description>Server-rendering React is becoming popular. Why? Performance. Server-side rendering is faster because: 1. Fetches start earlier 2. Fetches run in p...</description><pubDate>Fri, 09 Dec 2022 19:30:05 GMT</pubDate><category>Tweets</category></item><item><title>Prefer SPA: Internal app Behind a login Flakey internet Heavily interactive...</title><link>https://coryhouse.dev/2022/12/10/tweet-1601575828189753345/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/10/tweet-1601575828189753345/</guid><description>Prefer SPA: Internal app Behind a login Flakey internet Heavily interactive Favor faster subsequent page loads Have BFF/GraphQL/dedicated APIs Pref...</description><pubDate>Sat, 10 Dec 2022 13:53:27 GMT</pubDate><category>Tweets</category></item><item><title>What’s a big pain point for you as a React developer</title><link>https://coryhouse.dev/2022/12/11/tweet-1601961585236393985/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/11/tweet-1601961585236393985/</guid><description>What’s a big pain point for you as a React developer? What do you wish was easier, faster, more powerful, or more reliable? #react</description><pubDate>Sun, 11 Dec 2022 15:26:19 GMT</pubDate><category>Tweets</category></item><item><title>⚛️ 10 ways to fetch data in React: Next 13: React server component Next 12:...</title><link>https://coryhouse.dev/2022/12/12/tweet-1602307131830583297/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/12/tweet-1602307131830583297/</guid><description>⚛️ 10 ways to fetch data in React: Next 13: React server component Next 12: getServerSideProps, getStaticProps Remix / React Router / React locatio...</description><pubDate>Mon, 12 Dec 2022 14:19:24 GMT</pubDate><category>Tweets</category></item><item><title>Claim: “React Server Components (RSC) are just PHP”</title><link>https://coryhouse.dev/2022/12/13/tweet-1602673489013575681/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/13/tweet-1602673489013575681/</guid><description>Claim: “React Server Components (RSC) are just PHP”. Reality: RSC is special because it finally means we can use the *same tech* to render componen...</description><pubDate>Tue, 13 Dec 2022 14:35:10 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Changing code temporarily to support local development</title><link>https://coryhouse.dev/2022/12/14/tweet-1603019820332711942/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/14/tweet-1603019820332711942/</guid><description>Problem: Changing code temporarily to support local development. The risk: Accidentally committing the change. Solution: Read an environment variab...</description><pubDate>Wed, 14 Dec 2022 13:31:22 GMT</pubDate><category>Tweets</category></item><item><title>Console noise is a problem</title><link>https://coryhouse.dev/2022/12/14/tweet-1603068008846725121/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/14/tweet-1603068008846725121/</guid><description>Console noise is a problem. Examples: ESLint warnings and errors Dependency warnings Security warnings Console logs in the browser Automated test w...</description><pubDate>Wed, 14 Dec 2022 16:42:51 GMT</pubDate><category>Tweets</category></item><item><title>A sad irony: Some software projects fail simply because the team tried to...</title><link>https://coryhouse.dev/2022/12/16/tweet-1603545314740273159/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/16/tweet-1603545314740273159/</guid><description>A sad irony: Some software projects fail simply because the team tried to move too fast. They didn&apos;t stop to ask: &quot;Should we slow down and create a...</description><pubDate>Fri, 16 Dec 2022 00:19:30 GMT</pubDate><category>Tweets</category></item><item><title>Wow, just asked ChatGPT to convert some old Enzyme tests to use @TestingLib...</title><link>https://coryhouse.dev/2022/12/16/tweet-1603883318205980673/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/16/tweet-1603883318205980673/</guid><description>Wow, just asked ChatGPT to convert some old Enzyme tests to use @TestingLib instead. It did an impressive job! Just a few minor tweaks were needed!...</description><pubDate>Fri, 16 Dec 2022 22:42:36 GMT</pubDate><category>Tweets</category></item><item><title>Tip: npm scripts can reference env vars as variables: &quot;start&quot;: &quot;node...</title><link>https://coryhouse.dev/2022/12/17/tweet-1604146402510000128/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/17/tweet-1604146402510000128/</guid><description>Tip: npm scripts can reference env vars as variables: &quot;start&quot;: &quot;node ./hello.js $PORT&quot; The $PORT above reads the PORT env variable. You can pass en...</description><pubDate>Sat, 17 Dec 2022 16:08:00 GMT</pubDate><category>Tweets</category></item><item><title>Writing code involves countless architectural decisions</title><link>https://coryhouse.dev/2022/12/18/tweet-1604497430963183617/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/18/tweet-1604497430963183617/</guid><description>Writing code involves countless architectural decisions. Architecture is a given. Good architecture is not. So, the real question is: Are devs maki...</description><pubDate>Sun, 18 Dec 2022 15:22:52 GMT</pubDate><category>Tweets</category></item><item><title>A unit test shouldn’t: 🚫 Call a DB 🚫 Run a browser 🚫 Make an HTTP call 🚫...</title><link>https://coryhouse.dev/2022/12/18/tweet-1604549844667875330/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/18/tweet-1604549844667875330/</guid><description>A unit test shouldn’t: 🚫 Call a DB 🚫 Run a browser 🚫 Make an HTTP call 🚫 Rely on stuff on other machines A unit test should pass without a netw...</description><pubDate>Sun, 18 Dec 2022 18:51:08 GMT</pubDate><category>Tweets</category></item><item><title>5 types of tests: 1</title><link>https://coryhouse.dev/2022/12/19/tweet-1604844949668773889/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/19/tweet-1604844949668773889/</guid><description>5 types of tests: 1. Unit: Test 1 thing, alone 2. Integration: Test a few things, together 3. End-to-end (e2e): Test that everything works together...</description><pubDate>Mon, 19 Dec 2022 14:23:47 GMT</pubDate><category>Tweets</category></item><item><title>Using Cypress, but wanna try Playwright</title><link>https://coryhouse.dev/2022/12/19/tweet-1604970768659464193/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/19/tweet-1604970768659464193/</guid><description>Using Cypress, but wanna try Playwright? Here&apos;s a new handy REPL for converting Cypress tests to Playwright. 1. Paste your existing Cypress test on...</description><pubDate>Mon, 19 Dec 2022 22:43:44 GMT</pubDate><category>Tweets</category></item><item><title>How many records can you sort/filter/paginate in a web browser</title><link>https://coryhouse.dev/2022/12/20/tweet-1605260249308762112/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/20/tweet-1605260249308762112/</guid><description>How many records can you sort/filter/paginate in a web browser? I&apos;ve successfully implemented client-side sort/filter/paginate with around 2,000 re...</description><pubDate>Tue, 20 Dec 2022 17:54:02 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Your page has many DOM elements, and you want it to render faster</title><link>https://coryhouse.dev/2022/12/21/tweet-1605653264053125120/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/21/tweet-1605653264053125120/</guid><description>Problem: Your page has many DOM elements, and you want it to render faster. Solution: Use CSS content-visibility to avoid painting off-screen items...</description><pubDate>Wed, 21 Dec 2022 19:55:44 GMT</pubDate><category>Tweets</category></item><item><title>On some teams, writing good code feels like swimming upstream</title><link>https://coryhouse.dev/2022/12/22/tweet-1605995146218115072/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/22/tweet-1605995146218115072/</guid><description>On some teams, writing good code feels like swimming upstream. I&apos;ve joined teams with: No CI No types No linting Lax code reviews No automated test...</description><pubDate>Thu, 22 Dec 2022 18:34:15 GMT</pubDate><category>Tweets</category></item><item><title>Tip: Store sharable state in the URL</title><link>https://coryhouse.dev/2022/12/24/tweet-1606659422922674178/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/24/tweet-1606659422922674178/</guid><description>Tip: Store sharable state in the URL. Examples: Filter Sort Search Page number Toggles Record IDs Why put these things in the URL? ✅I can share the...</description><pubDate>Sat, 24 Dec 2022 14:33:51 GMT</pubDate><category>Tweets</category></item><item><title>Common software dev mistakes are at the extremes: 1</title><link>https://coryhouse.dev/2022/12/26/tweet-1607412975505227776/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/26/tweet-1607412975505227776/</guid><description>Common software dev mistakes are at the extremes: 1. Under-engineering 2. Over-engineering Under-engineering: No CI No reviews Weak types Hard codi...</description><pubDate>Mon, 26 Dec 2022 16:28:12 GMT</pubDate><category>Tweets</category></item><item><title>13 ways to be a lousy developer: - Don&apos;t volunteer to help others</title><link>https://coryhouse.dev/2022/12/28/tweet-1608094089186086913/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/28/tweet-1608094089186086913/</guid><description>13 ways to be a lousy developer: - Don&apos;t volunteer to help others. - Don’t try to get better or learn. - Don&apos;t test code before opening a PR. - Rub...</description><pubDate>Wed, 28 Dec 2022 13:34:42 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You want to re-throw a JavaScript error to provide a friendlier error</title><link>https://coryhouse.dev/2022/12/30/tweet-1608795552644476928/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/30/tweet-1608795552644476928/</guid><description>Problem: You want to re-throw a JavaScript error to provide a friendlier error. But, you want to keep the original error details too. Solution: Inc...</description><pubDate>Fri, 30 Dec 2022 12:02:04 GMT</pubDate><category>Tweets</category></item><item><title>Vercel converted the BBC site to @nextjs</title><link>https://coryhouse.dev/2022/12/31/tweet-1609023938486575112/</link><guid isPermaLink="true">https://coryhouse.dev/2022/12/31/tweet-1609023938486575112/</guid><description>Vercel converted the BBC site to @nextjs. The results: ✅ Removed 20,000+ lines of code ✅ Removed 30+ dependencies (React Router, Express, Babel...)...</description><pubDate>Sat, 31 Dec 2022 03:09:35 GMT</pubDate><category>Tweets</category></item><item><title>A simple, but often overlooked benefit of using the URL for state: It avoids...</title><link>https://coryhouse.dev/2023/01/01/tweet-1609547342436499456/</link><guid isPermaLink="true">https://coryhouse.dev/2023/01/01/tweet-1609547342436499456/</guid><description>A simple, but often overlooked benefit of using the URL for state: It avoids having to pass around state. Why? The URL is global. It&apos;s easily reada...</description><pubDate>Sun, 01 Jan 2023 13:49:25 GMT</pubDate><category>Tweets</category></item><item><title>Problem: &quot;Our code isn&apos;t testable&quot;</title><link>https://coryhouse.dev/2023/01/02/tweet-1609949627058425858/</link><guid isPermaLink="true">https://coryhouse.dev/2023/01/02/tweet-1609949627058425858/</guid><description>Problem: &quot;Our code isn&apos;t testable&quot;. The path forward: 1. Write tests for new code. 2. Write end-to-end tests for the &quot;happy path&quot;. Start 1 and 2 to...</description><pubDate>Mon, 02 Jan 2023 16:27:57 GMT</pubDate><category>Tweets</category></item><item><title>Client-side security boils down to one simple rule: Never trust the client</title><link>https://coryhouse.dev/2023/01/03/tweet-1610296131501670401/</link><guid isPermaLink="true">https://coryhouse.dev/2023/01/03/tweet-1610296131501670401/</guid><description>Client-side security boils down to one simple rule: Never trust the client. Assume the user will: - Manipulate the URL - Call endpoints directly wi...</description><pubDate>Tue, 03 Jan 2023 15:24:50 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You want to send messages between tabs, frames, iframes, or windows</title><link>https://coryhouse.dev/2023/01/04/tweet-1610639746182836224/</link><guid isPermaLink="true">https://coryhouse.dev/2023/01/04/tweet-1610639746182836224/</guid><description>Problem: You want to send messages between tabs, frames, iframes, or windows. Solution: The Broadcast channel API. More: https://developer.mozilla....</description><pubDate>Wed, 04 Jan 2023 14:10:14 GMT</pubDate><category>Tweets</category></item><item><title>Sometimes, a performance problem is actually a design problem</title><link>https://coryhouse.dev/2023/01/05/tweet-1611028146286903298/</link><guid isPermaLink="true">https://coryhouse.dev/2023/01/05/tweet-1611028146286903298/</guid><description>Sometimes, a performance problem is actually a design problem. Example: “How do we fix the performance of this page showing 1,000+ items?&quot; Answer:...</description><pubDate>Thu, 05 Jan 2023 15:53:36 GMT</pubDate><category>Tweets</category></item><item><title>Tip: Don&apos;t lie to TypeScript</title><link>https://coryhouse.dev/2023/01/06/tweet-1611362963281313792/</link><guid isPermaLink="true">https://coryhouse.dev/2023/01/06/tweet-1611362963281313792/</guid><description>Tip: Don&apos;t lie to TypeScript. Lying to #TypeScript reduces type safety. Examples: - Setting &quot;id&quot; to 0 to represent an unsaved record. - Making &quot;id&quot;...</description><pubDate>Fri, 06 Jan 2023 14:04:02 GMT</pubDate><category>Tweets</category></item><item><title>A common software development mistake: Going too wide or too narrow</title><link>https://coryhouse.dev/2023/01/07/tweet-1611725545984638976/</link><guid isPermaLink="true">https://coryhouse.dev/2023/01/07/tweet-1611725545984638976/</guid><description>A common software development mistake: Going too wide or too narrow. Too wide = “Let’s partially implement lots of features.” Too narrow = “Let’s f...</description><pubDate>Sat, 07 Jan 2023 14:04:49 GMT</pubDate><category>Tweets</category></item><item><title>Problem: A PR is too big and contains unrelated changes</title><link>https://coryhouse.dev/2023/01/08/tweet-1612134616336416769/</link><guid isPermaLink="true">https://coryhouse.dev/2023/01/08/tweet-1612134616336416769/</guid><description>Problem: A PR is too big and contains unrelated changes. Solution: 1. Prefix the big PR&apos;s name with &quot;WIP&quot; so the team knows it&apos;s not ready. 2. Open...</description><pubDate>Sun, 08 Jan 2023 17:10:19 GMT</pubDate><category>Tweets</category></item><item><title>Problem: TypeScript errors are typed &quot;unknown&quot;</title><link>https://coryhouse.dev/2023/01/08/tweet-1612222617141878784/</link><guid isPermaLink="true">https://coryhouse.dev/2023/01/08/tweet-1612222617141878784/</guid><description>Problem: TypeScript errors are typed &quot;unknown&quot;. Solution: Throw custom errors. They&apos;re easy to inspect. How: 1. Create an ErrorBase class. 2. Creat...</description><pubDate>Sun, 08 Jan 2023 23:00:00 GMT</pubDate><category>Tweets</category></item><item><title>A common mistake: Types with many optional properties</title><link>https://coryhouse.dev/2023/01/09/tweet-1612458353564979200/</link><guid isPermaLink="true">https://coryhouse.dev/2023/01/09/tweet-1612458353564979200/</guid><description>A common mistake: Types with many optional properties. Why? Because the property is often required in some cases. So, optional properties often red...</description><pubDate>Mon, 09 Jan 2023 14:36:44 GMT</pubDate><category>Tweets</category></item><item><title>Just switched a project from plain fetch to ky</title><link>https://coryhouse.dev/2023/01/09/tweet-1612484788216299521/</link><guid isPermaLink="true">https://coryhouse.dev/2023/01/09/tweet-1612484788216299521/</guid><description>Just switched a project from plain fetch to ky. I really like the result. 🔥 ✅ MUCH less code ✅ Treats non-2xx status codes as errors (don&apos;t have t...</description><pubDate>Mon, 09 Jan 2023 16:21:46 GMT</pubDate><category>Tweets</category></item><item><title>Pre-commit hooks are a waste of time</title><link>https://coryhouse.dev/2023/01/10/tweet-1612804261821259776/</link><guid isPermaLink="true">https://coryhouse.dev/2023/01/10/tweet-1612804261821259776/</guid><description>Pre-commit hooks are a waste of time. Why? Because they enforce standards too early. Pre-commit hooks make us wait for a quality check on every com...</description><pubDate>Tue, 10 Jan 2023 13:31:15 GMT</pubDate><category>Tweets</category></item><item><title>I don&apos;t write unit tests much anymore</title><link>https://coryhouse.dev/2023/01/13/tweet-1614025954199998465/</link><guid isPermaLink="true">https://coryhouse.dev/2023/01/13/tweet-1614025954199998465/</guid><description>I don&apos;t write unit tests much anymore. GitHub Copilot writes them for me. 🔥 Here&apos;s how: 1. Create a well-named function. 2. Create a test file. 3....</description><pubDate>Fri, 13 Jan 2023 22:25:49 GMT</pubDate><category>Tweets</category></item><item><title>Employers shooting themselves in the foot: “We don’t allow using GitHub...</title><link>https://coryhouse.dev/2023/01/14/tweet-1614327501526007808/</link><guid isPermaLink="true">https://coryhouse.dev/2023/01/14/tweet-1614327501526007808/</guid><description>Employers shooting themselves in the foot: “We don’t allow using GitHub Copilot because it collects usage data.” If your competitor uses AI, (and t...</description><pubDate>Sat, 14 Jan 2023 18:24:03 GMT</pubDate><category>Tweets</category></item><item><title>Monorepos are great…to a point</title><link>https://coryhouse.dev/2023/01/14/tweet-1614388358154801152/</link><guid isPermaLink="true">https://coryhouse.dev/2023/01/14/tweet-1614388358154801152/</guid><description>Monorepos are great…to a point. Grouping apps that use the same tech in one repo makes a lot of sense. Why? Because they can share a lot of code an...</description><pubDate>Sat, 14 Jan 2023 22:25:53 GMT</pubDate><category>Tweets</category></item><item><title>⚛️ React code smell: Multiple setState calls in a row</title><link>https://coryhouse.dev/2023/01/16/tweet-1614987108053131267/</link><guid isPermaLink="true">https://coryhouse.dev/2023/01/16/tweet-1614987108053131267/</guid><description>⚛️ React code smell: Multiple setState calls in a row. This is often a sign that state should be unified, or that one value value can be derived fr...</description><pubDate>Mon, 16 Jan 2023 14:05:06 GMT</pubDate><category>Tweets</category></item><item><title>React Router 6.4 introduced loaders</title><link>https://coryhouse.dev/2023/01/16/tweet-1615125193747316736/</link><guid isPermaLink="true">https://coryhouse.dev/2023/01/16/tweet-1615125193747316736/</guid><description>React Router 6.4 introduced loaders. The big idea: Fetch everything for the route in parallel. What I&apos;ve noticed: In most apps, each route has one...</description><pubDate>Mon, 16 Jan 2023 23:13:48 GMT</pubDate><category>Tweets</category></item><item><title>Concern: “Infinite scroll is bad because the user can’t ever access the...</title><link>https://coryhouse.dev/2023/01/17/tweet-1615336852894134273/</link><guid isPermaLink="true">https://coryhouse.dev/2023/01/17/tweet-1615336852894134273/</guid><description>Concern: “Infinite scroll is bad because the user can’t ever access the footer.” Solution: Implement the infinite scroll in a div that fills only p...</description><pubDate>Tue, 17 Jan 2023 13:14:51 GMT</pubDate><category>Tweets</category></item><item><title>The big idea of BDD/Cucumber tests: “Write tests in plain English so...</title><link>https://coryhouse.dev/2023/01/18/tweet-1615725656268230656/</link><guid isPermaLink="true">https://coryhouse.dev/2023/01/18/tweet-1615725656268230656/</guid><description>The big idea of BDD/Cucumber tests: “Write tests in plain English so non-devs can help write the tests.” I’ve seen this attempted at many companies...</description><pubDate>Wed, 18 Jan 2023 14:59:49 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Tailwind styles get long sometimes</title><link>https://coryhouse.dev/2023/01/18/tweet-1615790145751367712/</link><guid isPermaLink="true">https://coryhouse.dev/2023/01/18/tweet-1615790145751367712/</guid><description>Problem: Tailwind styles get long sometimes. Solution: Install the Inline Fold extension in VS Code. It auto-collapses classes. Click the 3 dots to...</description><pubDate>Wed, 18 Jan 2023 19:16:05 GMT</pubDate><category>Tweets</category></item><item><title>15 reasons I enjoy @tailwindcss: 1</title><link>https://coryhouse.dev/2023/01/19/tweet-1616065927912591360/</link><guid isPermaLink="true">https://coryhouse.dev/2023/01/19/tweet-1616065927912591360/</guid><description>15 reasons I enjoy @tailwindcss: 1. I don’t have to spend time naming classes. 2. I can jump into a project that uses it immediately. 3. The final...</description><pubDate>Thu, 19 Jan 2023 13:31:56 GMT</pubDate><category>Tweets</category></item><item><title>In code reviews, I’m far more impressed with surprising simplicity than...</title><link>https://coryhouse.dev/2023/01/19/tweet-1616166439018287104/</link><guid isPermaLink="true">https://coryhouse.dev/2023/01/19/tweet-1616166439018287104/</guid><description>In code reviews, I’m far more impressed with surprising simplicity than perplexing complexity. Surprising simplicity is hard to achieve. Perplexing...</description><pubDate>Thu, 19 Jan 2023 20:11:20 GMT</pubDate><category>Tweets</category></item><item><title>Code review habit: If a simple change is necessary, I just change it</title><link>https://coryhouse.dev/2023/01/20/tweet-1616446186184908805/</link><guid isPermaLink="true">https://coryhouse.dev/2023/01/20/tweet-1616446186184908805/</guid><description>Code review habit: If a simple change is necessary, I just change it. Examples: - Typo - Grammar issue - Naming issue If I think it’s controversial...</description><pubDate>Fri, 20 Jan 2023 14:42:57 GMT</pubDate><category>Tweets</category></item><item><title>A surprising irony about working in TypeScript: The better I get at it, the...</title><link>https://coryhouse.dev/2023/01/20/tweet-1616534961992990746/</link><guid isPermaLink="true">https://coryhouse.dev/2023/01/20/tweet-1616534961992990746/</guid><description>A surprising irony about working in TypeScript: The better I get at it, the fewer types I declare. I declare types at the “edges” of my app: ✅Endpo...</description><pubDate>Fri, 20 Jan 2023 20:35:43 GMT</pubDate><category>Tweets</category></item><item><title>One of the most wonderful benefits of public speaking: It raises the bar for...</title><link>https://coryhouse.dev/2023/01/22/tweet-1617278515581157378/</link><guid isPermaLink="true">https://coryhouse.dev/2023/01/22/tweet-1617278515581157378/</guid><description>One of the most wonderful benefits of public speaking: It raises the bar for what you consider stressful. After speaking to a crowd, most other soc...</description><pubDate>Sun, 22 Jan 2023 21:50:20 GMT</pubDate><category>Tweets</category></item><item><title>An epidemic problem in software development: Resume driven development</title><link>https://coryhouse.dev/2023/01/24/tweet-1617865049737134080/</link><guid isPermaLink="true">https://coryhouse.dev/2023/01/24/tweet-1617865049737134080/</guid><description>An epidemic problem in software development: Resume driven development. What it looks like: Developers suggest the tech they want to learn, instead...</description><pubDate>Tue, 24 Jan 2023 12:41:00 GMT</pubDate><category>Tweets</category></item><item><title>Ideally, onboarding a new developer on a JS project requires only 2...</title><link>https://coryhouse.dev/2023/01/25/tweet-1618229695937667075/</link><guid isPermaLink="true">https://coryhouse.dev/2023/01/25/tweet-1618229695937667075/</guid><description>Ideally, onboarding a new developer on a JS project requires only 2 commands: npm install npm start If more steps are required, it&apos;s often a sign t...</description><pubDate>Wed, 25 Jan 2023 12:49:59 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;ve spent the last week in the UK</title><link>https://coryhouse.dev/2023/01/26/tweet-1618729783835369473/</link><guid isPermaLink="true">https://coryhouse.dev/2023/01/26/tweet-1618729783835369473/</guid><description>I&apos;ve spent the last week in the UK. Number of pickup trucks I&apos;ve seen? Nearly zero. So my fellow Americans, if you think you need a truck, ask your...</description><pubDate>Thu, 26 Jan 2023 21:57:09 GMT</pubDate><category>Tweets</category></item><item><title>Unsurprisingly true: Having automated tests primarily created and maintained...</title><link>https://coryhouse.dev/2023/01/27/tweet-1619110949658546178/</link><guid isPermaLink="true">https://coryhouse.dev/2023/01/27/tweet-1619110949658546178/</guid><description>Unsurprisingly true: Having automated tests primarily created and maintained by QA or an outside party isn’t correlated with IT performance. - “Acc...</description><pubDate>Fri, 27 Jan 2023 23:11:46 GMT</pubDate><category>Tweets</category></item><item><title>Branches should ideally have a short lifetime, less than a day</title><link>https://coryhouse.dev/2023/01/28/tweet-1619387830773637120/</link><guid isPermaLink="true">https://coryhouse.dev/2023/01/28/tweet-1619387830773637120/</guid><description>Branches should ideally have a short lifetime, less than a day. - “Accelerate” book How: ✅ Break tasks down. ✅ Pair or review code via conversation...</description><pubDate>Sat, 28 Jan 2023 17:32:00 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You need to deep clone a JavaScript object</title><link>https://coryhouse.dev/2023/01/30/tweet-1620030346552287233/</link><guid isPermaLink="true">https://coryhouse.dev/2023/01/30/tweet-1620030346552287233/</guid><description>Problem: You need to deep clone a JavaScript object. Solution: structuredClone. It clones nearly everything including dates, array, blobs, Error, a...</description><pubDate>Mon, 30 Jan 2023 12:05:07 GMT</pubDate><category>Tweets</category></item><item><title>The closer developers are to end users, the better</title><link>https://coryhouse.dev/2023/01/30/tweet-1620108259511390208/</link><guid isPermaLink="true">https://coryhouse.dev/2023/01/30/tweet-1620108259511390208/</guid><description>The closer developers are to end users, the better. Why? End user feedback increases empathy, motivates developers, shortens the feedback loop, and...</description><pubDate>Mon, 30 Jan 2023 17:14:43 GMT</pubDate><category>Tweets</category></item><item><title>Goal: Wrap React Router&apos;s Route component so I can avoid having to wrap 50+...</title><link>https://coryhouse.dev/2023/01/31/tweet-1620460789416210435/</link><guid isPermaLink="true">https://coryhouse.dev/2023/01/31/tweet-1620460789416210435/</guid><description>Goal: Wrap React Router&apos;s Route component so I can avoid having to wrap 50+ lazy loaded routes in Suspense. This doesn&apos;t work because React Router...</description><pubDate>Tue, 31 Jan 2023 16:35:33 GMT</pubDate><category>Tweets</category></item><item><title>Wow, just found Deno Lint, a Rust-based alternative to ESLint</title><link>https://coryhouse.dev/2023/02/01/tweet-1620750592183525377/</link><guid isPermaLink="true">https://coryhouse.dev/2023/02/01/tweet-1620750592183525377/</guid><description>Wow, just found Deno Lint, a Rust-based alternative to ESLint. The performance difference is staggering. Example project: ESLint: 11.8 seconds Dino...</description><pubDate>Wed, 01 Feb 2023 11:47:07 GMT</pubDate><category>Tweets</category></item><item><title>As an “old” developer, I’m driven by two conflicting ideas: 1</title><link>https://coryhouse.dev/2023/02/03/tweet-1621570757867311112/</link><guid isPermaLink="true">https://coryhouse.dev/2023/02/03/tweet-1621570757867311112/</guid><description>As an “old” developer, I’m driven by two conflicting ideas: 1. I have a sense of urgency to help teams avoid the mistakes I’ve made over the last 2...</description><pubDate>Fri, 03 Feb 2023 18:06:10 GMT</pubDate><category>Tweets</category></item><item><title>Today I woke up in Germany</title><link>https://coryhouse.dev/2023/02/03/tweet-1621599340656459776/</link><guid isPermaLink="true">https://coryhouse.dev/2023/02/03/tweet-1621599340656459776/</guid><description>Today I woke up in Germany. I had brunch in Paris. Lunch in Detroit. And I’m excited to have dinner with my family in Kansas City. Modern travel ne...</description><pubDate>Fri, 03 Feb 2023 19:59:45 GMT</pubDate><category>Tweets</category></item><item><title>A key dev team role: Architect</title><link>https://coryhouse.dev/2023/02/04/tweet-1621871619676246020/</link><guid isPermaLink="true">https://coryhouse.dev/2023/02/04/tweet-1621871619676246020/</guid><description>A key dev team role: Architect. Duties: -Foster reuse -Enforce consistency -Standardize solutions -Select technologies and patterns -Review changes...</description><pubDate>Sat, 04 Feb 2023 14:01:41 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You want to assure your unit test doesn&apos;t produce console errors</title><link>https://coryhouse.dev/2023/02/06/tweet-1622595548267319297/</link><guid isPermaLink="true">https://coryhouse.dev/2023/02/06/tweet-1622595548267319297/</guid><description>Problem: You want to assure your unit test doesn&apos;t produce console errors. Solution: Assert that console error hasn&apos;t been called after each test....</description><pubDate>Mon, 06 Feb 2023 13:58:19 GMT</pubDate><category>Tweets</category></item><item><title>Pre-commit hook used well: ✅ Fast ✅ Focused (Lint changed files, auto-fix) ✅...</title><link>https://coryhouse.dev/2023/02/07/tweet-1622953307236102147/</link><guid isPermaLink="true">https://coryhouse.dev/2023/02/07/tweet-1622953307236102147/</guid><description>Pre-commit hook used well: ✅ Fast ✅ Focused (Lint changed files, auto-fix) ✅ Necessary (Assure secrets aren’t committed) Pre-commit hook used poorl...</description><pubDate>Tue, 07 Feb 2023 13:39:56 GMT</pubDate><category>Tweets</category></item><item><title>When I teach teams React, I teach WAY more than just React: Debugging...</title><link>https://coryhouse.dev/2023/02/08/tweet-1623456702967455748/</link><guid isPermaLink="true">https://coryhouse.dev/2023/02/08/tweet-1623456702967455748/</guid><description>When I teach teams React, I teach WAY more than just React: Debugging TypeScript State, form, and styling patterns and libs React frameworks Compon...</description><pubDate>Wed, 08 Feb 2023 23:00:15 GMT</pubDate><category>Tweets</category></item><item><title>A developer who immediately approves PRs is a liability</title><link>https://coryhouse.dev/2023/02/09/tweet-1623681354671001600/</link><guid isPermaLink="true">https://coryhouse.dev/2023/02/09/tweet-1623681354671001600/</guid><description>A developer who immediately approves PRs is a liability. Why? Because they eliminate an opportunity for a *real* review. A fake reviewer glances at...</description><pubDate>Thu, 09 Feb 2023 13:52:56 GMT</pubDate><category>Tweets</category></item><item><title>Tailwind tradeoffs in one tweet: Are you willing to: Learn some class names...</title><link>https://coryhouse.dev/2023/02/09/tweet-1623704433359028224/</link><guid isPermaLink="true">https://coryhouse.dev/2023/02/09/tweet-1623704433359028224/</guid><description>Tailwind tradeoffs in one tweet: Are you willing to: Learn some class names 👎 Accept noisier HTML 👎 In exchange for: Smaller bundles 👍 No more n...</description><pubDate>Thu, 09 Feb 2023 15:24:38 GMT</pubDate><category>Tweets</category></item><item><title>Claim: &quot;Pair programming replaces code reviews&quot; Are you willing to drive...</title><link>https://coryhouse.dev/2023/02/10/tweet-1624042209786961924/</link><guid isPermaLink="true">https://coryhouse.dev/2023/02/10/tweet-1624042209786961924/</guid><description>Claim: &quot;Pair programming replaces code reviews&quot; Are you willing to drive across a bridge that was never inspected just because two people built it...</description><pubDate>Fri, 10 Feb 2023 13:46:50 GMT</pubDate><category>Tweets</category></item><item><title>Just switched a large project from create-react-app to Vite</title><link>https://coryhouse.dev/2023/02/10/tweet-1624123251650592785/</link><guid isPermaLink="true">https://coryhouse.dev/2023/02/10/tweet-1624123251650592785/</guid><description>Just switched a large project from create-react-app to Vite. With create-react-app: start: 25 sec Hot reload: 2.8 sec With Vite: start: 2 sec 🔥 Ho...</description><pubDate>Fri, 10 Feb 2023 19:08:52 GMT</pubDate><category>Tweets</category></item><item><title>Software death spiral: “We don’t have automated tests, so we need many...</title><link>https://coryhouse.dev/2023/02/11/tweet-1624427801024598018/</link><guid isPermaLink="true">https://coryhouse.dev/2023/02/11/tweet-1624427801024598018/</guid><description>Software death spiral: “We don’t have automated tests, so we need many environments with slow, manual checks in each.” 😬 Virtuous cycle: “We have...</description><pubDate>Sat, 11 Feb 2023 15:19:02 GMT</pubDate><category>Tweets</category></item><item><title>General rule: The fewer environments a web app has, the better</title><link>https://coryhouse.dev/2023/02/12/tweet-1624606496364367872/</link><guid isPermaLink="true">https://coryhouse.dev/2023/02/12/tweet-1624606496364367872/</guid><description>General rule: The fewer environments a web app has, the better. Why? Environments = overhead. Environments are a sign of manual processes. They exi...</description><pubDate>Sun, 12 Feb 2023 03:09:07 GMT</pubDate><category>Tweets</category></item><item><title>Concern: Isn&apos;t deploying multiple times a day risky</title><link>https://coryhouse.dev/2023/02/13/tweet-1625164457503596546/</link><guid isPermaLink="true">https://coryhouse.dev/2023/02/13/tweet-1625164457503596546/</guid><description>Concern: Isn&apos;t deploying multiple times a day risky? Solution: Make it less risky. How: ✅Automate checks ✅Monitor prod for issues ✅Use feature togg...</description><pubDate>Mon, 13 Feb 2023 16:06:15 GMT</pubDate><category>Tweets</category></item><item><title>Tip: When naming a variable that stores a list, avoid needless suffixes</title><link>https://coryhouse.dev/2023/02/13/tweet-1625261053641621504/</link><guid isPermaLink="true">https://coryhouse.dev/2023/02/13/tweet-1625261053641621504/</guid><description>Tip: When naming a variable that stores a list, avoid needless suffixes. Avoid: 🚫userData 🚫userList 🚫userArray 🚫userItems Instead, keep it simp...</description><pubDate>Mon, 13 Feb 2023 22:30:05 GMT</pubDate><category>Tweets</category></item><item><title>Habit: When I open a PR, I review the diff myself first</title><link>https://coryhouse.dev/2023/02/14/tweet-1625497669560070144/</link><guid isPermaLink="true">https://coryhouse.dev/2023/02/14/tweet-1625497669560070144/</guid><description>Habit: When I open a PR, I review the diff myself first. I ask: Is this change well tested? Are docs necessary? Any hacks I need to resolve? Any fo...</description><pubDate>Tue, 14 Feb 2023 14:10:19 GMT</pubDate><category>Tweets</category></item><item><title>Security misconception: “We can’t put a primary key in the URL because a...</title><link>https://coryhouse.dev/2023/02/14/tweet-1625643895555080193/</link><guid isPermaLink="true">https://coryhouse.dev/2023/02/14/tweet-1625643895555080193/</guid><description>Security misconception: “We can’t put a primary key in the URL because a malicious user may change the URL to request a record they aren’t supposed...</description><pubDate>Tue, 14 Feb 2023 23:51:22 GMT</pubDate><category>Tweets</category></item><item><title>The REAL reason manual testing doesn&apos;t scale: When people quit, domain...</title><link>https://coryhouse.dev/2023/02/15/tweet-1625661790506954755/</link><guid isPermaLink="true">https://coryhouse.dev/2023/02/15/tweet-1625661790506954755/</guid><description>The REAL reason manual testing doesn&apos;t scale: When people quit, domain knowledge walks out the door. Suddenly, no one knows how parts of the app ar...</description><pubDate>Wed, 15 Feb 2023 01:02:28 GMT</pubDate><category>Tweets</category></item><item><title>Trunk based development can accelerate velocity and reduce overhead</title><link>https://coryhouse.dev/2023/02/15/tweet-1625877721350799362/</link><guid isPermaLink="true">https://coryhouse.dev/2023/02/15/tweet-1625877721350799362/</guid><description>Trunk based development can accelerate velocity and reduce overhead. But, the team must be mature enough to handle it. Necessary foundation: ✅ Comp...</description><pubDate>Wed, 15 Feb 2023 15:20:30 GMT</pubDate><category>Tweets</category></item><item><title>// TODO: Thing we’ll never get around to doing</title><link>https://coryhouse.dev/2023/02/16/tweet-1626199401763930116/</link><guid isPermaLink="true">https://coryhouse.dev/2023/02/16/tweet-1626199401763930116/</guid><description>// TODO: Thing we’ll never get around to doing. If it’s worth doing, do it now or open a ticket. Why a ticket? 1. TODO comments are often forgotten...</description><pubDate>Thu, 16 Feb 2023 12:38:45 GMT</pubDate><category>Tweets</category></item><item><title>React tip: Keep state as &quot;low&quot; as possible</title><link>https://coryhouse.dev/2023/02/18/tweet-1626940633611919360/</link><guid isPermaLink="true">https://coryhouse.dev/2023/02/18/tweet-1626940633611919360/</guid><description>React tip: Keep state as &quot;low&quot; as possible. Example: If state is just passed down to one child, it&apos;s too high. Solution: Move the state down to the...</description><pubDate>Sat, 18 Feb 2023 13:44:08 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript tip: Variable names and type names should typically correspond</title><link>https://coryhouse.dev/2023/02/19/tweet-1627300331104391169/</link><guid isPermaLink="true">https://coryhouse.dev/2023/02/19/tweet-1627300331104391169/</guid><description>TypeScript tip: Variable names and type names should typically correspond. If the variable&apos;s name doesn&apos;t look like it &quot;fits&quot; with the type, ask: -...</description><pubDate>Sun, 19 Feb 2023 13:33:27 GMT</pubDate><category>Tweets</category></item><item><title>Problem: If an app makes multiple GraphQL calls on the same page, all the...</title><link>https://coryhouse.dev/2023/02/20/tweet-1627695678276370436/</link><guid isPermaLink="true">https://coryhouse.dev/2023/02/20/tweet-1627695678276370436/</guid><description>Problem: If an app makes multiple GraphQL calls on the same page, all the GraphQL calls look the same in the network tab. My approach: Click on eac...</description><pubDate>Mon, 20 Feb 2023 15:44:25 GMT</pubDate><category>Tweets</category></item><item><title>Wow, just upgraded to the iPhone 14 Pro and the 120hz screen is wonderful</title><link>https://coryhouse.dev/2023/02/21/tweet-1628155245422338048/</link><guid isPermaLink="true">https://coryhouse.dev/2023/02/21/tweet-1628155245422338048/</guid><description>Wow, just upgraded to the iPhone 14 Pro and the 120hz screen is wonderful. Scrolling is buttery smooth - and text stays crisp while scrolling. Now...</description><pubDate>Tue, 21 Feb 2023 22:10:34 GMT</pubDate><category>Tweets</category></item><item><title>Idea: Open a software development agency with one simple premise: “Our...</title><link>https://coryhouse.dev/2023/02/22/tweet-1628401775047737347/</link><guid isPermaLink="true">https://coryhouse.dev/2023/02/22/tweet-1628401775047737347/</guid><description>Idea: Open a software development agency with one simple premise: “Our developers work directly with you.” No docs. No formal design. No layers in...</description><pubDate>Wed, 22 Feb 2023 14:30:12 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript tip: Use “never” to assure every case in a switch is handled</title><link>https://coryhouse.dev/2023/02/24/tweet-1629112655498604544/</link><guid isPermaLink="true">https://coryhouse.dev/2023/02/24/tweet-1629112655498604544/</guid><description>TypeScript tip: Use “never” to assure every case in a switch is handled. With this example, if a case is missing, TypeScript fails to compile. 👍 #...</description><pubDate>Fri, 24 Feb 2023 13:34:59 GMT</pubDate><category>Tweets</category></item><item><title>Automate checks that can be automated</title><link>https://coryhouse.dev/2023/02/25/tweet-1629502286190768131/</link><guid isPermaLink="true">https://coryhouse.dev/2023/02/25/tweet-1629502286190768131/</guid><description>Automate checks that can be automated. ✅ Code compiles ✅ Tests pass ✅ Formatted ✅ Honors code standards Then our code reviews can focus on checks t...</description><pubDate>Sat, 25 Feb 2023 15:23:14 GMT</pubDate><category>Tweets</category></item><item><title>Habit for creating smaller PRs, sooner: Suffix branch names with &quot;phase-x&quot;...</title><link>https://coryhouse.dev/2023/02/26/tweet-1629961232630308864/</link><guid isPermaLink="true">https://coryhouse.dev/2023/02/26/tweet-1629961232630308864/</guid><description>Habit for creating smaller PRs, sooner: Suffix branch names with &quot;phase-x&quot; Example: ticket-1-phase-1-improve-naming ticket-1-phase-2-improve-perfor...</description><pubDate>Sun, 26 Feb 2023 21:46:55 GMT</pubDate><category>Tweets</category></item><item><title>The problem with a team of only junior developers: Anti-patterns proliferate</title><link>https://coryhouse.dev/2023/02/27/tweet-1630203153848102912/</link><guid isPermaLink="true">https://coryhouse.dev/2023/02/27/tweet-1630203153848102912/</guid><description>The problem with a team of only junior developers: Anti-patterns proliferate. One dev does it the &quot;hard&quot; way, or the &quot;wrong&quot; way, and the others co...</description><pubDate>Mon, 27 Feb 2023 13:48:14 GMT</pubDate><category>Tweets</category></item><item><title>In databases, normalization is important</title><link>https://coryhouse.dev/2023/02/28/tweet-1630561276630904832/</link><guid isPermaLink="true">https://coryhouse.dev/2023/02/28/tweet-1630561276630904832/</guid><description>In databases, normalization is important. It avoids wasting space, and more importantly, avoids out-of-sync data. On the UI, the same principle hol...</description><pubDate>Tue, 28 Feb 2023 13:31:17 GMT</pubDate><category>Tweets</category></item><item><title>If coding is hard, we&apos;re probably trying to move to fast</title><link>https://coryhouse.dev/2023/02/28/tweet-1630617530258669568/</link><guid isPermaLink="true">https://coryhouse.dev/2023/02/28/tweet-1630617530258669568/</guid><description>If coding is hard, we&apos;re probably trying to move to fast. Signs we&apos;re trying to move too fast: 🚫 Rework 🚫 Inconsistency 🚫 Unclear tickets 🚫 Bad...</description><pubDate>Tue, 28 Feb 2023 17:14:49 GMT</pubDate><category>Tweets</category></item><item><title>JS arrow functions are great</title><link>https://coryhouse.dev/2023/03/01/tweet-1630943583657250818/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/01/tweet-1630943583657250818/</guid><description>JS arrow functions are great. ✅ Concise ✅ Optional implicit return ✅ Don’t have their own “this” context But, I don’t recommended using them everyw...</description><pubDate>Wed, 01 Mar 2023 14:50:26 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;ve been asked to fix a broken page, inherited from an outside dev team</title><link>https://coryhouse.dev/2023/03/02/tweet-1631315085049184257/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/02/tweet-1631315085049184257/</guid><description>I&apos;ve been asked to fix a broken page, inherited from an outside dev team. Heavy use of &quot;any&quot;. No tests. I just came across these 2 lines, and I&apos;m s...</description><pubDate>Thu, 02 Mar 2023 15:26:39 GMT</pubDate><category>Tweets</category></item><item><title>Habit: I talk to myself while coding</title><link>https://coryhouse.dev/2023/03/03/tweet-1631664933212495872/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/03/tweet-1631664933212495872/</guid><description>Habit: I talk to myself while coding. I find coding is easier when I verbalize my thinking. I basically pretend I’m teaching. This forces me to con...</description><pubDate>Fri, 03 Mar 2023 14:36:49 GMT</pubDate><category>Tweets</category></item><item><title>The world is filled with code that barely works: 🚩Slow 🚩Insecure...</title><link>https://coryhouse.dev/2023/03/03/tweet-1631800062320824325/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/03/tweet-1631800062320824325/</guid><description>The world is filled with code that barely works: 🚩Slow 🚩Insecure 🚩Inefficient 🚩Unreadable 🚩Inaccessible 🚩Requires pristine input 🚩No error h...</description><pubDate>Fri, 03 Mar 2023 23:33:46 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You’re using TypeScript and you don’t want to manually define types...</title><link>https://coryhouse.dev/2023/03/04/tweet-1632018298861658114/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/04/tweet-1632018298861658114/</guid><description>Problem: You’re using TypeScript and you don’t want to manually define types for each REST endpoint response. Solution: quicktype. Paste JSON into...</description><pubDate>Sat, 04 Mar 2023 14:00:58 GMT</pubDate><category>Tweets</category></item><item><title>Types</title><link>https://coryhouse.dev/2023/03/04/tweet-1632038534935707648/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/04/tweet-1632038534935707648/</guid><description>Types. Are. Important. I&apos;m working with a codebase littered with weights. It&apos;s written in TypeScript, but weight unit is stored as a &quot;string&quot;. 👎 R...</description><pubDate>Sat, 04 Mar 2023 15:21:23 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You’re testing in Playwright, and using Mock Service Worker (msw)...</title><link>https://coryhouse.dev/2023/03/05/tweet-1632381652251947008/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/05/tweet-1632381652251947008/</guid><description>Problem: You’re testing in Playwright, and using Mock Service Worker (msw) with to mock endpoints. You want to customize the msw responses for each...</description><pubDate>Sun, 05 Mar 2023 14:04:48 GMT</pubDate><category>Tweets</category></item><item><title>Just learned about transform tools</title><link>https://coryhouse.dev/2023/03/05/tweet-1632424379001851904/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/05/tweet-1632424379001851904/</guid><description>Just learned about transform tools. This site converts a huge number of formats. JSON GraphQL TypeScript Zod YAML TOML CSS Tailwind OpenAPI schema...</description><pubDate>Sun, 05 Mar 2023 16:54:35 GMT</pubDate><category>Tweets</category></item><item><title>To me, TypeScript is easily the most attractive language for implementing...</title><link>https://coryhouse.dev/2023/03/06/tweet-1632763636056719368/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/06/tweet-1632763636056719368/</guid><description>To me, TypeScript is easily the most attractive language for implementing web services. Why? Because we can build the UI and services *in the same...</description><pubDate>Mon, 06 Mar 2023 15:22:40 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m working with a SPA that has a dedicated backend composed of over a dozen...</title><link>https://coryhouse.dev/2023/03/07/tweet-1633160966580891658/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/07/tweet-1633160966580891658/</guid><description>I&apos;m working with a SPA that has a dedicated backend composed of over a dozen microservices. Each service has its own repo, and its own DB, even tho...</description><pubDate>Tue, 07 Mar 2023 17:41:31 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You need to make a breaking change, but can’t update all call sites...</title><link>https://coryhouse.dev/2023/03/08/tweet-1633522349147316261/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/08/tweet-1633522349147316261/</guid><description>Problem: You need to make a breaking change, but can’t update all call sites at once. Solution: Expand, migrate, contract. 1. Expand. Add the new A...</description><pubDate>Wed, 08 Mar 2023 17:37:32 GMT</pubDate><category>Tweets</category></item><item><title>If managers fixate on deadlines rather than quality, the staff will too</title><link>https://coryhouse.dev/2023/03/09/tweet-1633823122678853633/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/09/tweet-1633823122678853633/</guid><description>If managers fixate on deadlines rather than quality, the staff will too. Developers assure they make deadlines by: 🚩Copy/pasting 🚩Cutting corners...</description><pubDate>Thu, 09 Mar 2023 13:32:42 GMT</pubDate><category>Tweets</category></item><item><title>React-query tip: You don&apos;t have to mess with error handling on each query</title><link>https://coryhouse.dev/2023/03/09/tweet-1633875496760135681/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/09/tweet-1633875496760135681/</guid><description>React-query tip: You don&apos;t have to mess with error handling on each query. Instead, you can automatically fallback to the nearest error boundary if...</description><pubDate>Thu, 09 Mar 2023 17:00:49 GMT</pubDate><category>Tweets</category></item><item><title>Some teams struggle because there’s too much friction in making improvements</title><link>https://coryhouse.dev/2023/03/09/tweet-1633944409111683072/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/09/tweet-1633944409111683072/</guid><description>Some teams struggle because there’s too much friction in making improvements. If a dev has to create a ticket, sell management, size the task, and...</description><pubDate>Thu, 09 Mar 2023 21:34:39 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Sometimes people use needless curly braces around static values</title><link>https://coryhouse.dev/2023/03/10/tweet-1633981446221078534/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/10/tweet-1633981446221078534/</guid><description>Problem: Sometimes people use needless curly braces around static values. Solution: Automatically remove needless curly braces via ESLint. Rule: ht...</description><pubDate>Fri, 10 Mar 2023 00:01:49 GMT</pubDate><category>Tweets</category></item><item><title>Avoid Sprints</title><link>https://coryhouse.dev/2023/03/10/tweet-1634175905793732609/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/10/tweet-1634175905793732609/</guid><description>Avoid Sprints. Sprints create an arbitrary deadline every x days. This creates estimation overhead, and fosters short-term thinking. 👎 Instead: 1....</description><pubDate>Fri, 10 Mar 2023 12:54:32 GMT</pubDate><category>Tweets</category></item><item><title>You don’t need a daily standup</title><link>https://coryhouse.dev/2023/03/11/tweet-1634572956746776577/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/11/tweet-1634572956746776577/</guid><description>You don’t need a daily standup. But you do need to communicate often. You don’t need formal retrospectives. But you do need to regularly discuss im...</description><pubDate>Sat, 11 Mar 2023 15:12:16 GMT</pubDate><category>Tweets</category></item><item><title>You don’t need an architect</title><link>https://coryhouse.dev/2023/03/12/tweet-1634902902627241991/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/12/tweet-1634902902627241991/</guid><description>You don’t need an architect. But you do need at least one person who thinks architecturally. Common titles: Team lead Senior Dev Architect Principa...</description><pubDate>Sun, 12 Mar 2023 13:03:21 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You have TypeScript types, but want to use Zod too (for *runtime*...</title><link>https://coryhouse.dev/2023/03/13/tweet-1635283358703054856/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/13/tweet-1635283358703054856/</guid><description>Problem: You have TypeScript types, but want to use Zod too (for *runtime* validation) Solution: 1. Paste your TS type into transform tools to gene...</description><pubDate>Mon, 13 Mar 2023 14:15:09 GMT</pubDate><category>Tweets</category></item><item><title>Problem: If you lazy load routes, React Router&apos;s loaders won&apos;t run until...</title><link>https://coryhouse.dev/2023/03/14/tweet-1635614449766891520/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/14/tweet-1635614449766891520/</guid><description>Problem: If you lazy load routes, React Router&apos;s loaders won&apos;t run until after the lazy route downloads and parses. Solution: 1. Add a &quot;lazy&quot; prope...</description><pubDate>Tue, 14 Mar 2023 12:10:47 GMT</pubDate><category>Tweets</category></item><item><title>Problem: A function is confusing, but you need to enhance it to support a...</title><link>https://coryhouse.dev/2023/03/16/tweet-1636394471565807616/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/16/tweet-1636394471565807616/</guid><description>Problem: A function is confusing, but you need to enhance it to support a new feature. Solution: Write unit tests that document the *current* behav...</description><pubDate>Thu, 16 Mar 2023 15:50:19 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Sometimes devs accidentally reorder imports while coding</title><link>https://coryhouse.dev/2023/03/16/tweet-1636404061799956496/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/16/tweet-1636404061799956496/</guid><description>Problem: Sometimes devs accidentally reorder imports while coding. This leads to needless diffs. Solution: eslint-plugin-import&apos;s import/order rule...</description><pubDate>Thu, 16 Mar 2023 16:28:25 GMT</pubDate><category>Tweets</category></item><item><title>Tip: Avoid AWS CodeCommit</title><link>https://coryhouse.dev/2023/03/16/tweet-1636501416314322949/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/16/tweet-1636501416314322949/</guid><description>Tip: Avoid AWS CodeCommit. One of my clients just switched from AWS CodeCommit to GitHub. I couldn&apos;t be happier. Doing code reviews and configuring...</description><pubDate>Thu, 16 Mar 2023 22:55:17 GMT</pubDate><category>Tweets</category></item><item><title>Problem: localStorage isn’t strongly typed</title><link>https://coryhouse.dev/2023/03/17/tweet-1636715053410861058/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/17/tweet-1636715053410861058/</guid><description>Problem: localStorage isn’t strongly typed. You read and write to it via a string key, and the value returned is always a string. 👎 Solution: 1 In...</description><pubDate>Fri, 17 Mar 2023 13:04:12 GMT</pubDate><category>Tweets</category></item><item><title>I quit my job a few years ago so I could be an independent consultant</title><link>https://coryhouse.dev/2023/03/18/tweet-1637099474433581057/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/18/tweet-1637099474433581057/</guid><description>I quit my job a few years ago so I could be an independent consultant. The difference in my daily routine is amazing. Before, as a full-time dev: 6...</description><pubDate>Sat, 18 Mar 2023 14:31:45 GMT</pubDate><category>Tweets</category></item><item><title>Avoid Sprints</title><link>https://coryhouse.dev/2023/03/19/avoid-sprints/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/19/avoid-sprints/</guid><description>Sprints create an arbitrary deadline every x days. This creates estimation overhead, and fosters short-term thinking. Instead: 1. Break work down into small tic…</description><pubDate>Sun, 19 Mar 2023 17:23:22 GMT</pubDate><category>Uncategorized</category></item><item><title>A common mistake in React: Mixing fetching, formatting, logic, and JSX</title><link>https://coryhouse.dev/2023/03/19/tweet-1637268295500939266/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/19/tweet-1637268295500939266/</guid><description>A common mistake in React: Mixing fetching, formatting, logic, and JSX. This works fine in small components. But it’s hard to maintain and test as...</description><pubDate>Sun, 19 Mar 2023 01:42:35 GMT</pubDate><category>Tweets</category></item><item><title>Claim: “Employment is safer than independence.” Reality: A job isn’t safer</title><link>https://coryhouse.dev/2023/03/19/tweet-1637482780325031936/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/19/tweet-1637482780325031936/</guid><description>Claim: “Employment is safer than independence.” Reality: A job isn’t safer. You can be let go at any time. So what’s actually safe? Competence. Be...</description><pubDate>Sun, 19 Mar 2023 15:54:52 GMT</pubDate><category>Tweets</category></item><item><title>&quot;I’ve been employed in tech for years, but I’ve almost never worked&quot;</title><link>https://coryhouse.dev/2023/03/19/tweet-1637563099778613254/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/19/tweet-1637563099778613254/</guid><description>&quot;I’ve been employed in tech for years, but I’ve almost never worked&quot;. This post mentions a surprising cause: Scrum. Scrum encourages sizing tasks a...</description><pubDate>Sun, 19 Mar 2023 21:14:02 GMT</pubDate><category>Tweets</category></item><item><title>React tip: Tired of manually wrapping React components just so you can add...</title><link>https://coryhouse.dev/2023/03/20/tweet-1637798635030167554/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/20/tweet-1637798635030167554/</guid><description>React tip: Tired of manually wrapping React components just so you can add styles? Check out stylemapper. With stylemapper, you call &quot;styled&quot;, spec...</description><pubDate>Mon, 20 Mar 2023 12:49:58 GMT</pubDate><category>Tweets</category></item><item><title>Using &quot;any&quot; in a TypeScript library is occasionally necessary</title><link>https://coryhouse.dev/2023/03/20/tweet-1637860950815514624/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/20/tweet-1637860950815514624/</guid><description>Using &quot;any&quot; in a TypeScript library is occasionally necessary. Using &quot;any&quot; in an app&apos;s TypeScript code is rarely necessary. So, an &quot;any&quot; in app cod...</description><pubDate>Mon, 20 Mar 2023 16:57:35 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Sometimes functions are needlessly marked async</title><link>https://coryhouse.dev/2023/03/21/tweet-1638159639677132804/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/21/tweet-1638159639677132804/</guid><description>Problem: Sometimes functions are needlessly marked async. Solution: typescript-eslint/require-await. This ESLint rule finds functions where the asy...</description><pubDate>Tue, 21 Mar 2023 12:44:28 GMT</pubDate><category>Tweets</category></item><item><title>Generally, prefer TypeScript union types over enums</title><link>https://coryhouse.dev/2023/03/21/tweet-1638278299829915650/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/21/tweet-1638278299829915650/</guid><description>Generally, prefer TypeScript union types over enums. But, here&apos;s a rare case where enum is preferable: If you’re calling a function that accepts a...</description><pubDate>Tue, 21 Mar 2023 20:35:59 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript misconception: “If I need to rename a union type, the usages...</title><link>https://coryhouse.dev/2023/03/22/tweet-1638542888123367425/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/22/tweet-1638542888123367425/</guid><description>TypeScript misconception: “If I need to rename a union type, the usages won’t get updated.” Reality: All usages of the union type can be safely upd...</description><pubDate>Wed, 22 Mar 2023 14:07:21 GMT</pubDate><category>Tweets</category></item><item><title>I typically run the app when reviewing a PR</title><link>https://coryhouse.dev/2023/03/22/tweet-1638564776975511562/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/22/tweet-1638564776975511562/</guid><description>I typically run the app when reviewing a PR. Here&apos;s why: ✅Helps me see the user experience. ✅Seeing the UX helps me read the code, because it helps...</description><pubDate>Wed, 22 Mar 2023 15:34:20 GMT</pubDate><category>Tweets</category></item><item><title>Tip: Clone your repo multiple times</title><link>https://coryhouse.dev/2023/03/23/tweet-1638706883488804864/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/23/tweet-1638706883488804864/</guid><description>Tip: Clone your repo multiple times. Then you can have the multiple editors open to different branches. Result? Quickly switch context and compare...</description><pubDate>Thu, 23 Mar 2023 00:59:01 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript tip: Try to avoid optional fields</title><link>https://coryhouse.dev/2023/03/23/tweet-1638885318966366210/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/23/tweet-1638885318966366210/</guid><description>TypeScript tip: Try to avoid optional fields. They cause two problems: 1. They reduce type safety. 2. There&apos;s no type-safe way to enforce when the...</description><pubDate>Thu, 23 Mar 2023 12:48:03 GMT</pubDate><category>Tweets</category></item><item><title>I recently joined a struggling team for part-time consulting</title><link>https://coryhouse.dev/2023/03/23/tweet-1639027956306591746/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/23/tweet-1639027956306591746/</guid><description>I recently joined a struggling team for part-time consulting. After some coaching and code reviews, things are going smoothly! Here are 6 key impro...</description><pubDate>Thu, 23 Mar 2023 22:14:51 GMT</pubDate><category>Tweets</category></item><item><title>“I once attended a planning meeting in which it was discussed for 20 minutes...</title><link>https://coryhouse.dev/2023/03/24/tweet-1639239075642187776/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/24/tweet-1639239075642187776/</guid><description>“I once attended a planning meeting in which it was discussed for 20 minutes whether a task should be included in the next sprint. The task could b...</description><pubDate>Fri, 24 Mar 2023 12:13:45 GMT</pubDate><category>Tweets</category></item><item><title>Around 2005, I had a job where I was paid well to do nearly nothing</title><link>https://coryhouse.dev/2023/03/24/tweet-1639261375099809798/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/24/tweet-1639261375099809798/</guid><description>Around 2005, I had a job where I was paid well to do nearly nothing. I worked for a large telecom company on a team called “test operations”. My jo...</description><pubDate>Fri, 24 Mar 2023 13:42:22 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You&apos;re doing a code review and have a suggested change that&apos;s hard...</title><link>https://coryhouse.dev/2023/03/24/tweet-1639383825317875719/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/24/tweet-1639383825317875719/</guid><description>Problem: You&apos;re doing a code review and have a suggested change that&apos;s hard to describe. Solution: Open a PR against the PR. If a suggested change...</description><pubDate>Fri, 24 Mar 2023 21:48:56 GMT</pubDate><category>Tweets</category></item><item><title>Good news: You can deep clone objects in the browser via structuredClone</title><link>https://coryhouse.dev/2023/03/25/tweet-1639598746613710849/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/25/tweet-1639598746613710849/</guid><description>Good news: You can deep clone objects in the browser via structuredClone! 🎉 Bad news: Spread syntax is 34x faster than stucturedClone. ⚠️ structur...</description><pubDate>Sat, 25 Mar 2023 12:02:58 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Feature flags are handy, but it’s easy to forget to remove them later</title><link>https://coryhouse.dev/2023/03/26/tweet-1639975667713409030/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/26/tweet-1639975667713409030/</guid><description>Problem: Feature flags are handy, but it’s easy to forget to remove them later. This leads to needless overhead, complexity, and risk. Solution: Wr...</description><pubDate>Sun, 26 Mar 2023 13:00:43 GMT</pubDate><category>Tweets</category></item><item><title>Problem: TypeScript only exists at compile-time</title><link>https://coryhouse.dev/2023/03/27/tweet-1640333083957239812/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/27/tweet-1640333083957239812/</guid><description>Problem: TypeScript only exists at compile-time. At runtime, it&apos;s plain JS. So, when the type is only known at runtime, TypeScript can&apos;t protect yo...</description><pubDate>Mon, 27 Mar 2023 12:40:57 GMT</pubDate><category>Tweets</category></item><item><title>Claim: “We need sprints to break work down and hit deadlines.” Reality: We...</title><link>https://coryhouse.dev/2023/03/28/tweet-1640714600160305152/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/28/tweet-1640714600160305152/</guid><description>Claim: “We need sprints to break work down and hit deadlines.” Reality: We need to frequently release small tickets so we can estimate velocity. We...</description><pubDate>Tue, 28 Mar 2023 13:56:58 GMT</pubDate><category>Tweets</category></item><item><title>Problem: A ticket is too big</title><link>https://coryhouse.dev/2023/03/28/tweet-1640773327240175623/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/28/tweet-1640773327240175623/</guid><description>Problem: A ticket is too big. Solution: Decompose it. Example: “Create contact us page.” How to decompose it: 1. Design page and write content. 2....</description><pubDate>Tue, 28 Mar 2023 17:50:19 GMT</pubDate><category>Tweets</category></item><item><title>Independence is wonderful</title><link>https://coryhouse.dev/2023/03/29/tweet-1641076631576928256/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/29/tweet-1641076631576928256/</guid><description>Independence is wonderful. But it has its downsides too. Here are the key tradeoffs I’ve learned… 10 things I love about being independent: ✅ No al...</description><pubDate>Wed, 29 Mar 2023 13:55:33 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You want to start a new ticket, but you’re waiting for a related PR...</title><link>https://coryhouse.dev/2023/03/30/tweet-1641440670585094148/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/30/tweet-1641440670585094148/</guid><description>Problem: You want to start a new ticket, but you’re waiting for a related PR to be merged. Solution: Create a branch off the PR branch. Now your ne...</description><pubDate>Thu, 30 Mar 2023 14:02:07 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript tip: If a type is only used by one file, colocate the type with...</title><link>https://coryhouse.dev/2023/03/31/tweet-1641788684038025216/</link><guid isPermaLink="true">https://coryhouse.dev/2023/03/31/tweet-1641788684038025216/</guid><description>TypeScript tip: If a type is only used by one file, colocate the type with the file. This clarifies the close relationship, reduces file navigation...</description><pubDate>Fri, 31 Mar 2023 13:04:59 GMT</pubDate><category>Tweets</category></item><item><title>Continuous integration: ✅ No PRs ✅ No branches ✅ No gating code reviews ✅...</title><link>https://coryhouse.dev/2023/04/01/tweet-1642153733525057537/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/01/tweet-1642153733525057537/</guid><description>Continuous integration: ✅ No PRs ✅ No branches ✅ No gating code reviews ✅ Commit directly into trunk Frequent Integration: ✅ Small PRs ✅ Simple, sh...</description><pubDate>Sat, 01 Apr 2023 13:15:34 GMT</pubDate><category>Tweets</category></item><item><title>Continuous integration (CI) is a spectrum</title><link>https://coryhouse.dev/2023/04/02/tweet-1642539514798260224/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/02/tweet-1642539514798260224/</guid><description>Continuous integration (CI) is a spectrum. The question is, how frequently should we integrate our code changes? Options from most to least continu...</description><pubDate>Sun, 02 Apr 2023 14:48:31 GMT</pubDate><category>Tweets</category></item><item><title>A common mistake: Partially implementing many features</title><link>https://coryhouse.dev/2023/04/03/tweet-1642875284364963846/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/03/tweet-1642875284364963846/</guid><description>A common mistake: Partially implementing many features. This causes multiple problems: 1. Creates confusion about what is done. 2. Hinders future r...</description><pubDate>Mon, 03 Apr 2023 13:02:45 GMT</pubDate><category>Tweets</category></item><item><title>GitHub code review tip: In diff view, there’s a copy path button next to...</title><link>https://coryhouse.dev/2023/04/04/tweet-1643228268093382658/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/04/tweet-1643228268093382658/</guid><description>GitHub code review tip: In diff view, there’s a copy path button next to each filename. So to quickly open a file in VS Code: 1. Click the copy fil...</description><pubDate>Tue, 04 Apr 2023 12:25:23 GMT</pubDate><category>Tweets</category></item><item><title>My new favorite VS Code extension: GitHub Pull Requests and Issues</title><link>https://coryhouse.dev/2023/04/05/tweet-1643591579385446400/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/05/tweet-1643591579385446400/</guid><description>My new favorite VS Code extension: GitHub Pull Requests and Issues. Review pull requests in VS Code! Benefits: 1. See and checkout PRs 2. See chang...</description><pubDate>Wed, 05 Apr 2023 12:29:03 GMT</pubDate><category>Tweets</category></item><item><title>5 years ago, I had a full time job</title><link>https://coryhouse.dev/2023/04/06/tweet-1643944728663150596/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/06/tweet-1643944728663150596/</guid><description>5 years ago, I had a full time job. So did nearly everyone I knew. But, I knew an independent. He inspired me. I took the leap, and quit. After I w...</description><pubDate>Thu, 06 Apr 2023 11:52:20 GMT</pubDate><category>Tweets</category></item><item><title>10 JavaScript/TypeScript features I avoid:</title><link>https://coryhouse.dev/2023/04/07/tweet-1644326515348258818/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/07/tweet-1644326515348258818/</guid><description>10 JavaScript/TypeScript features I avoid: ?. ?: as var let any else class enum switch They’re not always a problem. But, they’re overused, and can...</description><pubDate>Fri, 07 Apr 2023 13:09:26 GMT</pubDate><category>Tweets</category></item><item><title>I taught a team React this week</title><link>https://coryhouse.dev/2023/04/08/tweet-1644697154076782593/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/08/tweet-1644697154076782593/</guid><description>I taught a team React this week. My teaching style is unique: We build an app that’s tailored to their company’s requirements, from scratch, togeth...</description><pubDate>Sat, 08 Apr 2023 13:42:13 GMT</pubDate><category>Tweets</category></item><item><title>Problem: A long ternary is hard to read</title><link>https://coryhouse.dev/2023/04/08/tweet-1644774155642863616/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/08/tweet-1644774155642863616/</guid><description>Problem: A long ternary is hard to read. Solution: Extract two functions. (This is especially useful when there&apos;s a lot of JSX around a ternary)</description><pubDate>Sat, 08 Apr 2023 18:48:11 GMT</pubDate><category>Tweets</category></item><item><title>A sign you may benefit from useReducer: You&apos;re making multiple setState...</title><link>https://coryhouse.dev/2023/04/09/tweet-1645055575909072896/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/09/tweet-1645055575909072896/</guid><description>A sign you may benefit from useReducer: You&apos;re making multiple setState calls in a row. With useReducer, multiple pieces of state can be updated vi...</description><pubDate>Sun, 09 Apr 2023 13:26:27 GMT</pubDate><category>Tweets</category></item><item><title>Problem: With react-query, we may declare inconsistent query keys</title><link>https://coryhouse.dev/2023/04/10/tweet-1645400112120619009/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/10/tweet-1645400112120619009/</guid><description>Problem: With react-query, we may declare inconsistent query keys. That leads to cache misses and duplicated cache entries. 👎 Solution: 1. Wrap ea...</description><pubDate>Mon, 10 Apr 2023 12:15:31 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Your team is using VS Code, and you want to make it easy for all...</title><link>https://coryhouse.dev/2023/04/10/tweet-1645459301249458177/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/10/tweet-1645459301249458177/</guid><description>Problem: Your team is using VS Code, and you want to make it easy for all your developers to use the same extensions. Solution: Create .vscode/exte...</description><pubDate>Mon, 10 Apr 2023 16:10:43 GMT</pubDate><category>Tweets</category></item><item><title>React-query tip: You probably don’t need initialData or presetData</title><link>https://coryhouse.dev/2023/04/11/tweet-1645760456508727297/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/11/tweet-1645760456508727297/</guid><description>React-query tip: You probably don’t need initialData or presetData. If you set these, isLoading is always false. Solution: Return early. Display a...</description><pubDate>Tue, 11 Apr 2023 12:07:24 GMT</pubDate><category>Tweets</category></item><item><title>I’m loving Playwright’s new UI mode: npx playwright test --ui It opens a UI...</title><link>https://coryhouse.dev/2023/04/12/tweet-1646178365290819587/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/12/tweet-1646178365290819587/</guid><description>I’m loving Playwright’s new UI mode: npx playwright test --ui It opens a UI where I can: ✅ Run a test ✅ See the test run in browser ✅ Enable watch...</description><pubDate>Wed, 12 Apr 2023 15:48:01 GMT</pubDate><category>Tweets</category></item><item><title>Situation: You have two projects, a UI and a REST API</title><link>https://coryhouse.dev/2023/04/13/tweet-1646493806915645442/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/13/tweet-1646493806915645442/</guid><description>Situation: You have two projects, a UI and a REST API. The UI and API are written in different languages, so different devs do UI vs API dev. The U...</description><pubDate>Thu, 13 Apr 2023 12:41:28 GMT</pubDate><category>Tweets</category></item><item><title>In React components, I group related items and declare things in a...</title><link>https://coryhouse.dev/2023/04/13/tweet-1646578107959091201/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/13/tweet-1646578107959091201/</guid><description>In React components, I group related items and declare things in a consistent order. My approach: 1. state 2. derived state 3. other hook calls 4....</description><pubDate>Thu, 13 Apr 2023 18:16:27 GMT</pubDate><category>Tweets</category></item><item><title>Is there an ESLint rule to warn when a &quot;bad&quot; variable name is used</title><link>https://coryhouse.dev/2023/04/13/tweet-1646598623268880384/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/13/tweet-1646598623268880384/</guid><description>Is there an ESLint rule to warn when a &quot;bad&quot; variable name is used? Example: I&apos;d like it to warn when &quot;data&quot; is used. There&apos;s typically a more desc...</description><pubDate>Thu, 13 Apr 2023 19:37:58 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Your dev team makes spelling mistakes in code</title><link>https://coryhouse.dev/2023/04/14/tweet-1646885657107746816/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/14/tweet-1646885657107746816/</guid><description>Problem: Your dev team makes spelling mistakes in code. Solution: CSpell CSpell has a command line interface. So, run it against your entire codeba...</description><pubDate>Fri, 14 Apr 2023 14:38:32 GMT</pubDate><category>Tweets</category></item><item><title>10 technologies I use with nearly every React app: 1</title><link>https://coryhouse.dev/2023/04/14/tweet-1646920801294114835/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/14/tweet-1646920801294114835/</guid><description>10 technologies I use with nearly every React app: 1. TypeScript 2. Zod 3. Playwright 4. Storybook 5. react-query 6. Jest or Vitest 7. Testing Libr...</description><pubDate>Fri, 14 Apr 2023 16:58:11 GMT</pubDate><category>Tweets</category></item><item><title>Why I prefer const: It encourages a single, immutable declaration</title><link>https://coryhouse.dev/2023/04/15/tweet-1647218051991977985/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/15/tweet-1647218051991977985/</guid><description>Why I prefer const: It encourages a single, immutable declaration. This is often simpler. Note how the logic using let below is much more syntax an...</description><pubDate>Sat, 15 Apr 2023 12:39:22 GMT</pubDate><category>Tweets</category></item><item><title>Problem: A component is hard to test because it displays many different...</title><link>https://coryhouse.dev/2023/04/16/tweet-1647638817782878208/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/16/tweet-1647638817782878208/</guid><description>Problem: A component is hard to test because it displays many different messages in different scenarios. Solution: 1. Put the test data in a well-n...</description><pubDate>Sun, 16 Apr 2023 16:31:20 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You want to run multiple npm scripts at the same time</title><link>https://coryhouse.dev/2023/04/17/tweet-1647931620299603968/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/17/tweet-1647931620299603968/</guid><description>Problem: You want to run multiple npm scripts at the same time. Solution: 1. Use npm-run-all. 2. Give related scripts a common prefix. Then you can...</description><pubDate>Mon, 17 Apr 2023 11:54:50 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;ve been coding for 20+ years</title><link>https://coryhouse.dev/2023/04/17/tweet-1648010354306195480/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/17/tweet-1648010354306195480/</guid><description>I&apos;ve been coding for 20+ years. For the first 10 years, I thought automated tests were a waste of time. Then, I dug in, practiced, and got good at...</description><pubDate>Mon, 17 Apr 2023 17:07:41 GMT</pubDate><category>Tweets</category></item><item><title>I find GitHub CoPilot more useful for programming tasks than ChatGPT</title><link>https://coryhouse.dev/2023/04/18/tweet-1648152044178493442/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/18/tweet-1648152044178493442/</guid><description>I find GitHub CoPilot more useful for programming tasks than ChatGPT. Two reasons why: 1. Better ergonomics. I need not leave my editor. 2. Richer...</description><pubDate>Tue, 18 Apr 2023 02:30:43 GMT</pubDate><category>Tweets</category></item><item><title>If I’m coding alone, I may skip writing tests if the project is small enough...</title><link>https://coryhouse.dev/2023/04/18/tweet-1648302725224906755/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/18/tweet-1648302725224906755/</guid><description>If I’m coding alone, I may skip writing tests if the project is small enough that I can hold the entire project in my head. But, when coding as a t...</description><pubDate>Tue, 18 Apr 2023 12:29:28 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You want to ensure environment variables are declared and...</title><link>https://coryhouse.dev/2023/04/18/tweet-1648346461455675392/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/18/tweet-1648346461455675392/</guid><description>Problem: You want to ensure environment variables are declared and referenced properly in all environments. And you want autocomplete support. Solu...</description><pubDate>Tue, 18 Apr 2023 15:23:15 GMT</pubDate><category>Tweets</category></item><item><title>Problem: If a function accepts two arguments of the same type, people may...</title><link>https://coryhouse.dev/2023/04/20/tweet-1649036949930360834/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/20/tweet-1649036949930360834/</guid><description>Problem: If a function accepts two arguments of the same type, people may pass arguments in the wrong order. Solution: Accept an object instead. Th...</description><pubDate>Thu, 20 Apr 2023 13:07:01 GMT</pubDate><category>Tweets</category></item><item><title>Challenge: Can you think of a single decision in software that has no tradeoffs</title><link>https://coryhouse.dev/2023/04/21/tweet-1649414202585501697/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/21/tweet-1649414202585501697/</guid><description>Challenge: Can you think of a single decision in software that has no tradeoffs? All upside. No cost or downsides.</description><pubDate>Fri, 21 Apr 2023 14:06:05 GMT</pubDate><category>Tweets</category></item><item><title>Why I review PR&apos;s in my IDE: It’s easier to see if files are in the right spot</title><link>https://coryhouse.dev/2023/04/22/tweet-1649788468157902851/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/22/tweet-1649788468157902851/</guid><description>Why I review PR&apos;s in my IDE: It’s easier to see if files are in the right spot. In a code review diff, I can’t easily see where a file sits *relati...</description><pubDate>Sat, 22 Apr 2023 14:53:17 GMT</pubDate><category>Tweets</category></item><item><title>React tip: Avoid extracting event handlers to separate functions if they&apos;re...</title><link>https://coryhouse.dev/2023/04/22/tweet-1649876292618055681/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/22/tweet-1649876292618055681/</guid><description>React tip: Avoid extracting event handlers to separate functions if they&apos;re only called once. Benefits of declaring inline: ✅ Less code ✅ Automatic...</description><pubDate>Sat, 22 Apr 2023 20:42:16 GMT</pubDate><category>Tweets</category></item><item><title>As a developer, I know I’m not a designer</title><link>https://coryhouse.dev/2023/04/23/tweet-1650130863193980929/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/23/tweet-1650130863193980929/</guid><description>As a developer, I know I’m not a designer. But that doesn’t mean I should blindly implement designs. I push back on designs that are: 🚫 Insecure �...</description><pubDate>Sun, 23 Apr 2023 13:33:50 GMT</pubDate><category>Tweets</category></item><item><title>Problem: If you rename a file by only changing its casing, Git won&apos;t “see”...</title><link>https://coryhouse.dev/2023/04/24/tweet-1650485815141711872/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/24/tweet-1650485815141711872/</guid><description>Problem: If you rename a file by only changing its casing, Git won&apos;t “see” the change. Solution: Use git mv. Example: git mv useraccount.js userAcc...</description><pubDate>Mon, 24 Apr 2023 13:04:17 GMT</pubDate><category>Tweets</category></item><item><title>I knew time zones were complex</title><link>https://coryhouse.dev/2023/04/24/tweet-1650631965291212800/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/24/tweet-1650631965291212800/</guid><description>I knew time zones were complex. I never knew the mess was this bad. This short video was a real eye-opener. In summary, never try to handle time zo...</description><pubDate>Mon, 24 Apr 2023 22:45:02 GMT</pubDate><category>Tweets</category></item><item><title>Why I’m so excited about React’s server components: I can do full stack...</title><link>https://coryhouse.dev/2023/04/25/tweet-1650654484865994753/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/25/tweet-1650654484865994753/</guid><description>Why I’m so excited about React’s server components: I can do full stack development with just React. I don’t need to build REST/GraphQL APIs anymor...</description><pubDate>Tue, 25 Apr 2023 00:14:31 GMT</pubDate><category>Tweets</category></item><item><title>If you’ve only worked with React, Vue, Angular, etc, you might think every...</title><link>https://coryhouse.dev/2023/04/25/tweet-1650864660168736768/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/25/tweet-1650864660168736768/</guid><description>If you’ve only worked with React, Vue, Angular, etc, you might think every app needs a REST/GraphQL API. That’s not true. Many web apps call the DB...</description><pubDate>Tue, 25 Apr 2023 14:09:41 GMT</pubDate><category>Tweets</category></item><item><title>Hard truth: Some devs are WAY more productive</title><link>https://coryhouse.dev/2023/04/26/tweet-1651292136090763276/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/26/tweet-1651292136090763276/</guid><description>Hard truth: Some devs are WAY more productive. As a consultant, I work with dozens of teams. I see massive differences in developer output. Here&apos;s...</description><pubDate>Wed, 26 Apr 2023 18:28:19 GMT</pubDate><category>Tweets</category></item><item><title>Measuring developer productivity with 100% accuracy is impossible</title><link>https://coryhouse.dev/2023/04/27/tweet-1651586899155341314/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/27/tweet-1651586899155341314/</guid><description>Measuring developer productivity with 100% accuracy is impossible. Yet everyone “knows” when someone on the team is struggling or not pulling their...</description><pubDate>Thu, 27 Apr 2023 13:59:36 GMT</pubDate><category>Tweets</category></item><item><title>I use @playwrightweb or @Cypress_io to write 2 types of tests: 1</title><link>https://coryhouse.dev/2023/04/28/tweet-1651928606824620034/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/28/tweet-1651928606824620034/</guid><description>I use @playwrightweb or @Cypress_io to write 2 types of tests: 1. End-to-end tests Goal: Load each page to assure the app works against the real AP...</description><pubDate>Fri, 28 Apr 2023 12:37:25 GMT</pubDate><category>Tweets</category></item><item><title>All developer productivity stats are flawed, and can be gamed</title><link>https://coryhouse.dev/2023/04/29/tweet-1652315290498154501/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/29/tweet-1652315290498154501/</guid><description>All developer productivity stats are flawed, and can be gamed. But, like it or not, I’ve seen managers quietly monitor these 5 stats: Number of com...</description><pubDate>Sat, 29 Apr 2023 14:13:58 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You want to reset React state when a component’s props change</title><link>https://coryhouse.dev/2023/04/30/tweet-1652641989773410306/</link><guid isPermaLink="true">https://coryhouse.dev/2023/04/30/tweet-1652641989773410306/</guid><description>Problem: You want to reset React state when a component’s props change. Solution: Change the component’s key when the props change. When the key ch...</description><pubDate>Sun, 30 Apr 2023 11:52:09 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;ve seen well-functioning teams suddenly struggle just because an *extra*...</title><link>https://coryhouse.dev/2023/05/01/tweet-1652996479244550144/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/01/tweet-1652996479244550144/</guid><description>I&apos;ve seen well-functioning teams suddenly struggle just because an *extra* developer was added to the team. Hence, a rule: You can&apos;t add or remove...</description><pubDate>Mon, 01 May 2023 11:20:46 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript tip: Avoid prefixing interfaces with &quot;I&quot;</title><link>https://coryhouse.dev/2023/05/01/tweet-1653003968451170304/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/01/tweet-1653003968451170304/</guid><description>TypeScript tip: Avoid prefixing interfaces with &quot;I&quot;. The &quot;I&quot; prefix is a C# convention, but not a TypeScript convention. In TypeScript, prefixing w...</description><pubDate>Mon, 01 May 2023 11:50:32 GMT</pubDate><category>Tweets</category></item><item><title>I review TypeScript code daily</title><link>https://coryhouse.dev/2023/05/02/tweet-1653370052484235267/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/02/tweet-1653370052484235267/</guid><description>I review TypeScript code daily. Here are 6 suggestions I often make to improve types: ✅Eliminate any ✅Avoid optional fields ✅Avoid type assertions...</description><pubDate>Tue, 02 May 2023 12:05:13 GMT</pubDate><category>Tweets</category></item><item><title>“This code seems needless, but surely it’s here for a reason</title><link>https://coryhouse.dev/2023/05/03/tweet-1653732785654210563/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/03/tweet-1653732785654210563/</guid><description>“This code seems needless, but surely it’s here for a reason. We better not touch it”. Once code is merged, it’s hard to find unnecessary complexit...</description><pubDate>Wed, 03 May 2023 12:06:35 GMT</pubDate><category>Tweets</category></item><item><title>As a React developer: If I&apos;m copy/pasting JSX, I should probably create a...</title><link>https://coryhouse.dev/2023/05/03/tweet-1653804811463147520/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/03/tweet-1653804811463147520/</guid><description>As a React developer: If I&apos;m copy/pasting JSX, I should probably create a reusable component. If I&apos;m copy/pasting logic, I should probably create a...</description><pubDate>Wed, 03 May 2023 16:52:47 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript tip: Avoid specifying a type inside map</title><link>https://coryhouse.dev/2023/05/05/tweet-1654291904857554944/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/05/tweet-1654291904857554944/</guid><description>TypeScript tip: Avoid specifying a type inside map. The array&apos;s type automatically applies to the map function.</description><pubDate>Fri, 05 May 2023 01:08:20 GMT</pubDate><category>Tweets</category></item><item><title>If a function accepts a boolean, consider declaring two separate functions</title><link>https://coryhouse.dev/2023/05/05/tweet-1654460728307335168/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/05/tweet-1654460728307335168/</guid><description>If a function accepts a boolean, consider declaring two separate functions. Doing so improves readability and composability.</description><pubDate>Fri, 05 May 2023 12:19:10 GMT</pubDate><category>Tweets</category></item><item><title>Just got access to the GitHub Copilot Chat beta</title><link>https://coryhouse.dev/2023/05/05/tweet-1654579523495645186/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/05/tweet-1654579523495645186/</guid><description>Just got access to the GitHub Copilot Chat beta! 🎉 Now I can ask Copilot to perform tasks via chat. I predict this is how most developers will use...</description><pubDate>Fri, 05 May 2023 20:11:13 GMT</pubDate><category>Tweets</category></item><item><title>Before I quit my job, I did a “safe” trial run: I asked my boss for 90 days...</title><link>https://coryhouse.dev/2023/05/06/tweet-1654860690811764738/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/06/tweet-1654860690811764738/</guid><description>Before I quit my job, I did a “safe” trial run: I asked my boss for 90 days of unpaid leave. He accepted. In 90 days, I trained multiple companies,...</description><pubDate>Sat, 06 May 2023 14:48:29 GMT</pubDate><category>Tweets</category></item><item><title>Avoid centralizing TypeScript types</title><link>https://coryhouse.dev/2023/05/07/tweet-1655188355569659908/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/07/tweet-1655188355569659908/</guid><description>Avoid centralizing TypeScript types. Why: 🚫 Creates ownership ambiguity 🚫 Makes it less clear what the type is for 🚫 Makes it unclear when we ca...</description><pubDate>Sun, 07 May 2023 12:30:30 GMT</pubDate><category>Tweets</category></item><item><title>There are many ways to write unreliable software</title><link>https://coryhouse.dev/2023/05/08/tweet-1655551828233183233/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/08/tweet-1655551828233183233/</guid><description>There are many ways to write unreliable software. These 8 practices help me write reliable software. ✅Static types ✅Feature flags ✅Automated tests...</description><pubDate>Mon, 08 May 2023 12:34:49 GMT</pubDate><category>Tweets</category></item><item><title>React performance technique: Split a big component if some state is only...</title><link>https://coryhouse.dev/2023/05/09/tweet-1655915312972267527/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/09/tweet-1655915312972267527/</guid><description>React performance technique: Split a big component if some state is only used in a portion of the JSX. Splitting reduces the amount of JSX rendered...</description><pubDate>Tue, 09 May 2023 12:39:10 GMT</pubDate><category>Tweets</category></item><item><title>React performance tip: You probably don&apos;t need to optimize React&apos;s...</title><link>https://coryhouse.dev/2023/05/09/tweet-1656044392476561408/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/09/tweet-1656044392476561408/</guid><description>React performance tip: You probably don&apos;t need to optimize React&apos;s performance on your own. I&apos;ve been working in React for nearly a decade. I rarel...</description><pubDate>Tue, 09 May 2023 21:12:05 GMT</pubDate><category>Tweets</category></item><item><title>Technologies foster mindsets</title><link>https://coryhouse.dev/2023/05/10/tweet-1656290756275982337/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/10/tweet-1656290756275982337/</guid><description>Technologies foster mindsets. React: Think of your UI as nested components. React query: Think of query results as a global cache. TypeScript: Thin...</description><pubDate>Wed, 10 May 2023 13:31:03 GMT</pubDate><category>Tweets</category></item><item><title>Many companies create needless overhead and complexity by batching deployments</title><link>https://coryhouse.dev/2023/05/11/tweet-1656470107609071618/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/11/tweet-1656470107609071618/</guid><description>Many companies create needless overhead and complexity by batching deployments. “Can we finish by the next release date?” “Who needs to approve thi...</description><pubDate>Thu, 11 May 2023 01:23:44 GMT</pubDate><category>Tweets</category></item><item><title>Another reason to avoid prefixing TypeScript interfaces with &quot;I&quot;: It can...</title><link>https://coryhouse.dev/2023/05/11/tweet-1656637039733886977/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/11/tweet-1656637039733886977/</guid><description>Another reason to avoid prefixing TypeScript interfaces with &quot;I&quot;: It can lead to duplicated types, because types and interfaces are prefixed differ...</description><pubDate>Thu, 11 May 2023 12:27:03 GMT</pubDate><category>Tweets</category></item><item><title>A recipe for creating a TypeScript codebase that’s hard to maintain:...</title><link>https://coryhouse.dev/2023/05/11/tweet-1656725748378370066/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/11/tweet-1656725748378370066/</guid><description>A recipe for creating a TypeScript codebase that’s hard to maintain: Centralize all types Downsides: 🚫 We have to constantly jump between files 🚫...</description><pubDate>Thu, 11 May 2023 18:19:33 GMT</pubDate><category>Tweets</category></item><item><title>Problem: JavaScript&apos;s sort method mutates the existing array</title><link>https://coryhouse.dev/2023/05/11/tweet-1656790291905490945/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/11/tweet-1656790291905490945/</guid><description>Problem: JavaScript&apos;s sort method mutates the existing array. Solution: The new toSorted method. It returns a new array, and doesn&apos;t mutate the exi...</description><pubDate>Thu, 11 May 2023 22:36:01 GMT</pubDate><category>Tweets</category></item><item><title>Two related signs of a mature dev team: 1</title><link>https://coryhouse.dev/2023/05/12/tweet-1657001460196859906/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/12/tweet-1657001460196859906/</guid><description>Two related signs of a mature dev team: 1. Production bug fixes are rare. 2. When bug fixes occur, they&apos;re accompanied by an automated test that as...</description><pubDate>Fri, 12 May 2023 12:35:08 GMT</pubDate><category>Tweets</category></item><item><title>How to write reliable end-to-end tests: 1</title><link>https://coryhouse.dev/2023/05/12/tweet-1657030950256103426/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/12/tweet-1657030950256103426/</guid><description>How to write reliable end-to-end tests: 1. Use a DB with a static dataset. 2. If 1 isn’t possible, “smoke test”. Don’t assert specific data exists....</description><pubDate>Fri, 12 May 2023 14:32:19 GMT</pubDate><category>Tweets</category></item><item><title>React tip: Components designed for a single use should have only required props</title><link>https://coryhouse.dev/2023/05/12/tweet-1657119182503268375/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/12/tweet-1657119182503268375/</guid><description>React tip: Components designed for a single use should have only required props. An optional prop for a single use component is illogical. If the p...</description><pubDate>Fri, 12 May 2023 20:22:55 GMT</pubDate><category>Tweets</category></item><item><title>A test doesn&apos;t just make sure it works</title><link>https://coryhouse.dev/2023/05/13/tweet-1657405120844275712/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/13/tweet-1657405120844275712/</guid><description>A test doesn&apos;t just make sure it works. A test makes sure everyone understands how it should work. Tests are documentation.</description><pubDate>Sat, 13 May 2023 15:19:08 GMT</pubDate><category>Tweets</category></item><item><title>The big risk of using global state managers: Some teams think &quot;Let&apos;s put all...</title><link>https://coryhouse.dev/2023/05/13/tweet-1657426575300653060/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/13/tweet-1657426575300653060/</guid><description>The big risk of using global state managers: Some teams think &quot;Let&apos;s put all our state here.&quot; For example, I&apos;ve seen many teams use Redux to store...</description><pubDate>Sat, 13 May 2023 16:44:23 GMT</pubDate><category>Tweets</category></item><item><title>Here&apos;s the difference between amateurs and pros: My friend is a wood worker</title><link>https://coryhouse.dev/2023/05/14/tweet-1657737174417014784/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/14/tweet-1657737174417014784/</guid><description>Here&apos;s the difference between amateurs and pros: My friend is a wood worker. He noticed multiple problems with my cabinets. 🚫 Cheap hinges 🚫 Low...</description><pubDate>Sun, 14 May 2023 13:18:36 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Dead code</title><link>https://coryhouse.dev/2023/05/15/tweet-1658078124351913987/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/15/tweet-1658078124351913987/</guid><description>Problem: Dead code. (code that isn&apos;t called) 🚫 It&apos;s a sign of a bug 🚫 Creates a maintenance burden 🚫 Wastes time during refactoring 🚫 Adds nois...</description><pubDate>Mon, 15 May 2023 11:53:25 GMT</pubDate><category>Tweets</category></item><item><title>In JavaScript, I export on the same line as the declaration</title><link>https://coryhouse.dev/2023/05/16/tweet-1658448037608321024/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/16/tweet-1658448037608321024/</guid><description>In JavaScript, I export on the same line as the declaration. This avoids having to repeat the function&apos;s name in two spots. And I can see the funct...</description><pubDate>Tue, 16 May 2023 12:23:19 GMT</pubDate><category>Tweets</category></item><item><title>I prefer: ✅ Static types over dynamic types ✅ Functional programming over...</title><link>https://coryhouse.dev/2023/05/17/tweet-1658824439406948352/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/17/tweet-1658824439406948352/</guid><description>I prefer: ✅ Static types over dynamic types ✅ Functional programming over object oriented programming ✅ Automated tests over manual tests ✅ Integra...</description><pubDate>Wed, 17 May 2023 13:19:00 GMT</pubDate><category>Tweets</category></item><item><title>Had a lot of fun this week teaching React with TypeScript, React Query, Mock...</title><link>https://coryhouse.dev/2023/05/18/tweet-1658996469536284673/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/18/tweet-1658996469536284673/</guid><description>Had a lot of fun this week teaching React with TypeScript, React Query, Mock Service Worker, Tailwind, and Playwright here in my hometown of KC!</description><pubDate>Thu, 18 May 2023 00:42:35 GMT</pubDate><category>Tweets</category></item><item><title>Problem: A page has multiple dialogs, but only one dialog should be...</title><link>https://coryhouse.dev/2023/05/18/tweet-1659005394943983616/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/18/tweet-1659005394943983616/</guid><description>Problem: A page has multiple dialogs, but only one dialog should be displayed at any given time. Solution: Handle dialog state via one piece of sta...</description><pubDate>Thu, 18 May 2023 01:18:03 GMT</pubDate><category>Tweets</category></item><item><title>React: The Most Common Mistakes in 2023 I&apos;m presenting this talk at @kc_dc...</title><link>https://coryhouse.dev/2023/05/18/tweet-1659184103634214912/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/18/tweet-1659184103634214912/</guid><description>React: The Most Common Mistakes in 2023 I&apos;m presenting this talk at @kc_dc in July! The list: State: Needless state Global state overuse Syncing st...</description><pubDate>Thu, 18 May 2023 13:08:11 GMT</pubDate><category>Tweets</category></item><item><title>When you’re building a dialog, ask this: “Should users be able to share a...</title><link>https://coryhouse.dev/2023/05/19/tweet-1659541943293038596/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/19/tweet-1659541943293038596/</guid><description>When you’re building a dialog, ask this: “Should users be able to share a link to this dialog?” If so, store the open state for the dialog in the U...</description><pubDate>Fri, 19 May 2023 12:50:06 GMT</pubDate><category>Tweets</category></item><item><title>Situation: Multiple teams are collaborating to create a single, big React app</title><link>https://coryhouse.dev/2023/05/19/tweet-1659618313624797186/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/19/tweet-1659618313624797186/</guid><description>Situation: Multiple teams are collaborating to create a single, big React app. How would you handle it? 1. Cross-team monolith - All teams collabor...</description><pubDate>Fri, 19 May 2023 17:53:34 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript is the biggest improvement to my web dev experience in the last 5...</title><link>https://coryhouse.dev/2023/05/21/tweet-1660320008767930371/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/21/tweet-1660320008767930371/</guid><description>TypeScript is the biggest improvement to my web dev experience in the last 5 years. ✅ I feel less stressed. ✅ Reading code is easier. It&apos;s more exp...</description><pubDate>Sun, 21 May 2023 16:21:52 GMT</pubDate><category>Tweets</category></item><item><title>One of the hard parts of leaving a software development project: I can&apos;t see...</title><link>https://coryhouse.dev/2023/05/21/tweet-1660402214832152578/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/21/tweet-1660402214832152578/</guid><description>One of the hard parts of leaving a software development project: I can&apos;t see what I built anymore. If I built a building, I could drive by and smil...</description><pubDate>Sun, 21 May 2023 21:48:31 GMT</pubDate><category>Tweets</category></item><item><title>6 signs a dev team is out of control: 1</title><link>https://coryhouse.dev/2023/05/22/tweet-1660657066531336195/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/22/tweet-1660657066531336195/</guid><description>6 signs a dev team is out of control: 1. Few/no automated tests 2. Many lint warnings/errors 3. No Continuous Integration server 4. Frequent misspe...</description><pubDate>Mon, 22 May 2023 14:41:12 GMT</pubDate><category>Tweets</category></item><item><title>Web app testing tip: 1</title><link>https://coryhouse.dev/2023/05/24/tweet-1661402681456443396/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/24/tweet-1661402681456443396/</guid><description>Web app testing tip: 1. Store all your links and headers in an array 2. Use the array to generate your nav bar 3. Use the array to generate a test...</description><pubDate>Wed, 24 May 2023 16:04:01 GMT</pubDate><category>Tweets</category></item><item><title>A new reason I’m a fan of Tailwind: It’s AI friendly</title><link>https://coryhouse.dev/2023/05/25/tweet-1661724192931209216/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/25/tweet-1661724192931209216/</guid><description>A new reason I’m a fan of Tailwind: It’s AI friendly. I can ask an AI to create components with styles written in Tailwind. This idea doesn’t work...</description><pubDate>Thu, 25 May 2023 13:21:35 GMT</pubDate><category>Tweets</category></item><item><title>When I audit a project, I clean up first</title><link>https://coryhouse.dev/2023/05/27/tweet-1662422150588911618/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/27/tweet-1662422150588911618/</guid><description>When I audit a project, I clean up first. 1. Run cspell to fix spelling issues 2. Remove unused vars and imports 3. Remove &quot;dead&quot; code (commented o...</description><pubDate>Sat, 27 May 2023 11:35:01 GMT</pubDate><category>Tweets</category></item><item><title>As, a consultant, I’ve learned PRs are the most effective way to create...</title><link>https://coryhouse.dev/2023/05/27/tweet-1662561213782405120/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/27/tweet-1662561213782405120/</guid><description>As, a consultant, I’ve learned PRs are the most effective way to create actual change. If I ask for meetings, or suggest a change, the change won’t...</description><pubDate>Sat, 27 May 2023 20:47:36 GMT</pubDate><category>Tweets</category></item><item><title>The less experience a developer has, the harder their job is (because they...</title><link>https://coryhouse.dev/2023/05/28/tweet-1662791890477907968/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/28/tweet-1662791890477907968/</guid><description>The less experience a developer has, the harder their job is (because they accidentally make it hard). The more experience a developer has, the eas...</description><pubDate>Sun, 28 May 2023 12:04:14 GMT</pubDate><category>Tweets</category></item><item><title>Some developers love consistency too much</title><link>https://coryhouse.dev/2023/05/29/tweet-1663166812760965120/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/29/tweet-1663166812760965120/</guid><description>Some developers love consistency too much. Examples: “Always use let.” “Always use an arrow function instead and of a function declaration.” “Alway...</description><pubDate>Mon, 29 May 2023 12:54:02 GMT</pubDate><category>Tweets</category></item><item><title>Comprehensive test coverage is great</title><link>https://coryhouse.dev/2023/05/30/tweet-1663547772656828418/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/30/tweet-1663547772656828418/</guid><description>Comprehensive test coverage is great. But, focusing on code coverage metrics isn’t. Avoid “we require x percent code coverage”. Prefer “we write au...</description><pubDate>Tue, 30 May 2023 14:07:50 GMT</pubDate><category>Tweets</category></item><item><title>A single monorepo for an entire company rarely makes sense</title><link>https://coryhouse.dev/2023/05/30/tweet-1663683121038884865/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/30/tweet-1663683121038884865/</guid><description>A single monorepo for an entire company rarely makes sense. A separate repo for every team also rarely makes sense. The happy middle-ground? Put *r...</description><pubDate>Tue, 30 May 2023 23:05:40 GMT</pubDate><category>Tweets</category></item><item><title>Problem: TypeScript optional fields reduce type safety</title><link>https://coryhouse.dev/2023/05/31/tweet-1663891758005071879/</link><guid isPermaLink="true">https://coryhouse.dev/2023/05/31/tweet-1663891758005071879/</guid><description>Problem: TypeScript optional fields reduce type safety. Why? Because an optional field can&apos;t specify when the field is optional vs required. Soluti...</description><pubDate>Wed, 31 May 2023 12:54:43 GMT</pubDate><category>Tweets</category></item><item><title>I joined a struggling team in January</title><link>https://coryhouse.dev/2023/06/01/tweet-1664242374447357953/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/01/tweet-1664242374447357953/</guid><description>I joined a struggling team in January. Then: 🚫 No tests 🚫 Few lint rules 🚫 No CI config 🚫 Over 1,300 “any” in TypeScript 🚫 1,000’s of lines of...</description><pubDate>Thu, 01 Jun 2023 12:07:56 GMT</pubDate><category>Tweets</category></item><item><title>How I define a unit test: An automated test that tests 1 function or...</title><link>https://coryhouse.dev/2023/06/02/tweet-1664608818733494272/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/02/tweet-1664608818733494272/</guid><description>How I define a unit test: An automated test that tests 1 function or component, alone. I write unit tests for 2 cases: 1. Reusable, pure util funct...</description><pubDate>Fri, 02 Jun 2023 12:24:03 GMT</pubDate><category>Tweets</category></item><item><title>A well-designed REST API doesn&apos;t merely expose each DB table</title><link>https://coryhouse.dev/2023/06/02/tweet-1664664348726292482/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/02/tweet-1664664348726292482/</guid><description>A well-designed REST API doesn&apos;t merely expose each DB table. Doing so leads to: 🚫 Many HTTP calls 🚫 Returning data the UI doesn&apos;t need 🚫 A lot...</description><pubDate>Fri, 02 Jun 2023 16:04:43 GMT</pubDate><category>Tweets</category></item><item><title>If useEffect is the answer, I&apos;m probably asking the wrong question</title><link>https://coryhouse.dev/2023/06/03/tweet-1664982936381267971/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/03/tweet-1664982936381267971/</guid><description>If useEffect is the answer, I&apos;m probably asking the wrong question. Examples: &quot;How do I sync state?&quot; Don&apos;t. Derive it. &quot;How do I fetch with plain R...</description><pubDate>Sat, 03 Jun 2023 13:10:40 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Sometimes I make unrelated changes when working on a feature</title><link>https://coryhouse.dev/2023/06/04/tweet-1665335252519211009/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/04/tweet-1665335252519211009/</guid><description>Problem: Sometimes I make unrelated changes when working on a feature. (I notice nearby, related code that needs work, so I fix it). This can lead...</description><pubDate>Sun, 04 Jun 2023 12:30:39 GMT</pubDate><category>Tweets</category></item><item><title>Just refactored a React component</title><link>https://coryhouse.dev/2023/06/05/tweet-1665698865398284289/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/05/tweet-1665698865398284289/</guid><description>Just refactored a React component. I removed 50% of the code.🔥 What I did: 1. Unify 10 related useState into 1 useState object 2. Unify 10 onChang...</description><pubDate>Mon, 05 Jun 2023 12:35:31 GMT</pubDate><category>Tweets</category></item><item><title>Poll: Which code do you prefer for returning totals</title><link>https://coryhouse.dev/2023/06/05/tweet-1665818553885360130/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/05/tweet-1665818553885360130/</guid><description>Poll: Which code do you prefer for returning totals? 1. let and forEach 2. reduce Poll in next tweet...</description><pubDate>Mon, 05 Jun 2023 20:31:07 GMT</pubDate><category>Tweets</category></item><item><title>Reviewing code is one of the most rewarding things I do</title><link>https://coryhouse.dev/2023/06/06/tweet-1666224606879834112/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/06/tweet-1666224606879834112/</guid><description>Reviewing code is one of the most rewarding things I do. Why? Because I get to see developers grow. At first, junior developers have a lot of issue...</description><pubDate>Tue, 06 Jun 2023 23:24:37 GMT</pubDate><category>Tweets</category></item><item><title>Problem: In React Query, a mutation often needs access to the query&apos;s key so...</title><link>https://coryhouse.dev/2023/06/07/tweet-1666455020437401601/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/07/tweet-1666455020437401601/</guid><description>Problem: In React Query, a mutation often needs access to the query&apos;s key so it can clear cache. Solution: Put associated queries and mutations in...</description><pubDate>Wed, 07 Jun 2023 14:40:12 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Meetings are often needless, slow, expensive, and hard to schedule</title><link>https://coryhouse.dev/2023/06/07/tweet-1666477196033048577/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/07/tweet-1666477196033048577/</guid><description>Problem: Meetings are often needless, slow, expensive, and hard to schedule. My solution: Create a video instead. I make a clear proposal in a vide...</description><pubDate>Wed, 07 Jun 2023 16:08:19 GMT</pubDate><category>Tweets</category></item><item><title>A weird misuse of React’s context I just found: 1</title><link>https://coryhouse.dev/2023/06/08/tweet-1666794561224450049/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/08/tweet-1666794561224450049/</guid><description>A weird misuse of React’s context I just found: 1. The user clicks a record on a list page. 2. The record’s detail is fetched, then stored in conte...</description><pubDate>Thu, 08 Jun 2023 13:09:25 GMT</pubDate><category>Tweets</category></item><item><title>A bug I see in nearly every web app: If someone saves a stale record, it...</title><link>https://coryhouse.dev/2023/06/09/tweet-1667149221651177473/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/09/tweet-1667149221651177473/</guid><description>A bug I see in nearly every web app: If someone saves a stale record, it overwrites the newer DB record. 😬 Solution: 1. Provide &apos;updated&apos; time wit...</description><pubDate>Fri, 09 Jun 2023 12:38:43 GMT</pubDate><category>Tweets</category></item><item><title>The URL is often underused in web apps</title><link>https://coryhouse.dev/2023/06/09/tweet-1667206997513519112/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/09/tweet-1667206997513519112/</guid><description>The URL is often underused in web apps. I use the URL for state when the user may want to... ✅ Share the state ✅ Bookmark the page and maintain the...</description><pubDate>Fri, 09 Jun 2023 16:28:18 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Sometimes people disable an ESLint rule, then forget to remove the...</title><link>https://coryhouse.dev/2023/06/10/tweet-1667530425571442688/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/10/tweet-1667530425571442688/</guid><description>Problem: Sometimes people disable an ESLint rule, then forget to remove the disable when it’s no longer needed. Solution: Enable the report-unused-...</description><pubDate>Sat, 10 Jun 2023 13:53:29 GMT</pubDate><category>Tweets</category></item><item><title>Just learned about Million, a new alternative React virtual DOM</title><link>https://coryhouse.dev/2023/06/10/tweet-1667627693469310979/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/10/tweet-1667627693469310979/</guid><description>Just learned about Million, a new alternative React virtual DOM. Million diffs state instead of DOM. This is faster when there&apos;s a little state, bu...</description><pubDate>Sat, 10 Jun 2023 20:19:59 GMT</pubDate><category>Tweets</category></item><item><title>I’ve worked on teams with high quality, reliable, comprehensive tests</title><link>https://coryhouse.dev/2023/06/11/tweet-1667858603452121090/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/11/tweet-1667858603452121090/</guid><description>I’ve worked on teams with high quality, reliable, comprehensive tests. How good were our tests? I made changes *without even running the UI*. 🔥 I...</description><pubDate>Sun, 11 Jun 2023 11:37:33 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Git pre-commit hooks are slow, which is annoying when I commit...</title><link>https://coryhouse.dev/2023/06/12/tweet-1668237063743848448/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/12/tweet-1668237063743848448/</guid><description>Problem: Git pre-commit hooks are slow, which is annoying when I commit frequently. Solution: Skip them like this: git commit -m “message here” -n...</description><pubDate>Mon, 12 Jun 2023 12:41:24 GMT</pubDate><category>Tweets</category></item><item><title>Problem: If we allow ESLint warnings, the number of warnings will grow over time</title><link>https://coryhouse.dev/2023/06/12/tweet-1668271579392770051/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/12/tweet-1668271579392770051/</guid><description>Problem: If we allow ESLint warnings, the number of warnings will grow over time. Here why: 🚫 It’s hard to see when new warnings occur 🚫 Noisy ES...</description><pubDate>Mon, 12 Jun 2023 14:58:34 GMT</pubDate><category>Tweets</category></item><item><title>data is rarely the right variable name</title><link>https://coryhouse.dev/2023/06/12/tweet-1668352307350626341/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/12/tweet-1668352307350626341/</guid><description>data is rarely the right variable name. When in doubt, note the TypeScript type&apos;s name. Example: 🚫 function addItem(data: SelectedItem) 👍 functio...</description><pubDate>Mon, 12 Jun 2023 20:19:21 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript mistake: Needless “defensive” coding</title><link>https://coryhouse.dev/2023/06/13/tweet-1668607990457352193/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/13/tweet-1668607990457352193/</guid><description>TypeScript mistake: Needless “defensive” coding. Example: Making fields as optional “just in case”. Downsides: 🚫 Reduces clarity 🚫 Hurts type saf...</description><pubDate>Tue, 13 Jun 2023 13:15:20 GMT</pubDate><category>Tweets</category></item><item><title>Goal: Allow the user to select items in a list</title><link>https://coryhouse.dev/2023/06/14/tweet-1668946224198680578/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/14/tweet-1668946224198680578/</guid><description>Goal: Allow the user to select items in a list. Three state approaches, from worst, to best: 1. list and selectedList 👎 2. list and selectedIds 👎...</description><pubDate>Wed, 14 Jun 2023 11:39:22 GMT</pubDate><category>Tweets</category></item><item><title>Mindset that motivates me to go to the gym daily: Going to the gym is a...</title><link>https://coryhouse.dev/2023/06/14/tweet-1669070154334969856/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/14/tweet-1669070154334969856/</guid><description>Mindset that motivates me to go to the gym daily: Going to the gym is a privilege. Someday I may not have the time. Someday I may not have the mone...</description><pubDate>Wed, 14 Jun 2023 19:51:49 GMT</pubDate><category>Tweets</category></item><item><title>⚛️ React Tip: Don&apos;t nest React component declarations</title><link>https://coryhouse.dev/2023/06/15/tweet-1669312215587979264/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/15/tweet-1669312215587979264/</guid><description>⚛️ React Tip: Don&apos;t nest React component declarations. If you declare a React component in a React component, React creates a new instance of the c...</description><pubDate>Thu, 15 Jun 2023 11:53:41 GMT</pubDate><category>Tweets</category></item><item><title>Problem: When you deploy a new version of your SPA, users with a tab open...</title><link>https://coryhouse.dev/2023/06/15/tweet-1669372864800194560/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/15/tweet-1669372864800194560/</guid><description>Problem: When you deploy a new version of your SPA, users with a tab open will keep using the old SPA code. Solution: 1. Specify the app version in...</description><pubDate>Thu, 15 Jun 2023 15:54:41 GMT</pubDate><category>Tweets</category></item><item><title>Problem: When you deploy a new version of your SPA, users with a tab open...</title><link>https://coryhouse.dev/2023/06/16/tweet-1669722918392156162/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/16/tweet-1669722918392156162/</guid><description>Problem: When you deploy a new version of your SPA, users with a tab open will keep using the old SPA code. Yesterday, I shared one solution. Peopl...</description><pubDate>Fri, 16 Jun 2023 15:05:40 GMT</pubDate><category>Tweets</category></item><item><title>Yesterday, one of my clients had a problem</title><link>https://coryhouse.dev/2023/06/16/tweet-1669732000549289984/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/16/tweet-1669732000549289984/</guid><description>Yesterday, one of my clients had a problem. I tweeted my solution. It got over 6,000 engagements containing many thoughtful suggestions. Thank you...</description><pubDate>Fri, 16 Jun 2023 15:41:45 GMT</pubDate><category>Tweets</category></item><item><title>I used to think every pull request (PR) needed to be &quot;perfect&quot;</title><link>https://coryhouse.dev/2023/06/18/tweet-1670403824756965376/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/18/tweet-1670403824756965376/</guid><description>I used to think every pull request (PR) needed to be &quot;perfect&quot;. All win, no downsides. But sometimes a PR is many steps forward, and one step backw...</description><pubDate>Sun, 18 Jun 2023 12:11:21 GMT</pubDate><category>Tweets</category></item><item><title>6 months ago, I started consulting a team with 1,300+ &quot;any&quot; in their TypeScript</title><link>https://coryhouse.dev/2023/06/18/tweet-1670443001640878081/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/18/tweet-1670443001640878081/</guid><description>6 months ago, I started consulting a team with 1,300+ &quot;any&quot; in their TypeScript. Since then, we&apos;ve released tons of features, and dramatically impr...</description><pubDate>Sun, 18 Jun 2023 14:47:01 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Your web app is too big for one team to build</title><link>https://coryhouse.dev/2023/06/19/tweet-1670767476722868226/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/19/tweet-1670767476722868226/</guid><description>Problem: Your web app is too big for one team to build. Solution: Use Module Federation (MF) to compose apps. Here&apos;s how it works: 1. One team buil...</description><pubDate>Mon, 19 Jun 2023 12:16:22 GMT</pubDate><category>Tweets</category></item><item><title>React mistake: Declaring state too high</title><link>https://coryhouse.dev/2023/06/20/tweet-1671136555564511240/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/20/tweet-1671136555564511240/</guid><description>React mistake: Declaring state too high. Why it&apos;s a problem: 🚫 Needless extra code 🚫 Needless extra renders 🚫 Needless complexity for no benefit...</description><pubDate>Tue, 20 Jun 2023 12:42:57 GMT</pubDate><category>Tweets</category></item><item><title>I try to avoid introducing global state as long as I can</title><link>https://coryhouse.dev/2023/06/21/tweet-1671545401206353920/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/21/tweet-1671545401206353920/</guid><description>I try to avoid introducing global state as long as I can. Here’s why: The moment a system has global state, it tends to attract needless usage.</description><pubDate>Wed, 21 Jun 2023 15:47:34 GMT</pubDate><category>Tweets</category></item><item><title>I’m helping a company build a VERY big React app by composing many separate...</title><link>https://coryhouse.dev/2023/06/22/tweet-1671893414668038146/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/22/tweet-1671893414668038146/</guid><description>I’m helping a company build a VERY big React app by composing many separate React projects. 19 teams, and growing! I just audited the projects and...</description><pubDate>Thu, 22 Jun 2023 14:50:26 GMT</pubDate><category>Tweets</category></item><item><title>Just presented “React: The Most Common Mistakes in 2023” at @kc_dc</title><link>https://coryhouse.dev/2023/06/22/tweet-1671976925273661443/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/22/tweet-1671976925273661443/</guid><description>Just presented “React: The Most Common Mistakes in 2023” at @kc_dc. Here are the slides! http://bit.ly/react-kcdc-2023</description><pubDate>Thu, 22 Jun 2023 20:22:17 GMT</pubDate><category>Tweets</category></item><item><title>Microservices provide more team autonomy than Microfrontends</title><link>https://coryhouse.dev/2023/06/23/tweet-1672280175050883073/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/23/tweet-1672280175050883073/</guid><description>Microservices provide more team autonomy than Microfrontends. Here’s why: With Microservices, each microservice dev team can pick their own tech. W...</description><pubDate>Fri, 23 Jun 2023 16:27:17 GMT</pubDate><category>Tweets</category></item><item><title>&quot;Storing your unit test and the file under test in separate folders is like...</title><link>https://coryhouse.dev/2023/06/23/tweet-1672332823112368129/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/23/tweet-1672332823112368129/</guid><description>&quot;Storing your unit test and the file under test in separate folders is like storing your hand soap in the closet.&quot; -@scottsauber at @kc_dc Colocate...</description><pubDate>Fri, 23 Jun 2023 19:56:30 GMT</pubDate><category>Tweets</category></item><item><title>Limiting work-in-progress is useful</title><link>https://coryhouse.dev/2023/06/25/tweet-1672935881286533120/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/25/tweet-1672935881286533120/</guid><description>Limiting work-in-progress is useful. But, I’ve found the ideal number of tasks in progress is greater than one. Why? Because I often get stumped, b...</description><pubDate>Sun, 25 Jun 2023 11:52:50 GMT</pubDate><category>Tweets</category></item><item><title>Code reviews are a powerful way to improve code quality</title><link>https://coryhouse.dev/2023/06/26/tweet-1673324044580429825/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/26/tweet-1673324044580429825/</guid><description>Code reviews are a powerful way to improve code quality. But sometimes a code review is too late. Sometimes a code review exposes code that shouldn...</description><pubDate>Mon, 26 Jun 2023 13:35:15 GMT</pubDate><category>Tweets</category></item><item><title>React performance problems are rare</title><link>https://coryhouse.dev/2023/06/27/tweet-1673664052923342858/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/27/tweet-1673664052923342858/</guid><description>React performance problems are rare. So, if I have a performance problem, I typically did one of 4 things: 🚫 My component is too big (so I split i...</description><pubDate>Tue, 27 Jun 2023 12:06:20 GMT</pubDate><category>Tweets</category></item><item><title>The longer I work in TypeScript, the more this is clear to me: When building...</title><link>https://coryhouse.dev/2023/06/27/tweet-1673811392934060034/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/27/tweet-1673811392934060034/</guid><description>The longer I work in TypeScript, the more this is clear to me: When building apps with TypeScript, if my code is hard to type, my design is probabl...</description><pubDate>Tue, 27 Jun 2023 21:51:48 GMT</pubDate><category>Tweets</category></item><item><title>Three misconceptions I’ve noticed among people who don’t “get” Tailwind: 1</title><link>https://coryhouse.dev/2023/06/28/tweet-1673889561259155462/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/28/tweet-1673889561259155462/</guid><description>Three misconceptions I’ve noticed among people who don’t “get” Tailwind: 1. People think it’s “inline styles”. (It’s not. It’s utility classes that...</description><pubDate>Wed, 28 Jun 2023 03:02:25 GMT</pubDate><category>Tweets</category></item><item><title>If your frontend approach doesn’t offer a way to abstract repeated HTML,...</title><link>https://coryhouse.dev/2023/06/28/tweet-1674031885217849347/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/28/tweet-1674031885217849347/</guid><description>If your frontend approach doesn’t offer a way to abstract repeated HTML, then you should avoid Tailwind. But if you don’t have a way to abstract re...</description><pubDate>Wed, 28 Jun 2023 12:27:58 GMT</pubDate><category>Tweets</category></item><item><title>The cascade in CSS is like inheritance in Object-Oriented programming</title><link>https://coryhouse.dev/2023/06/28/tweet-1674045603116990467/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/28/tweet-1674045603116990467/</guid><description>The cascade in CSS is like inheritance in Object-Oriented programming. It sounds like a good idea at first, but it often causes more problems than...</description><pubDate>Wed, 28 Jun 2023 13:22:28 GMT</pubDate><category>Tweets</category></item><item><title>I strive to use consistent names when passing React props</title><link>https://coryhouse.dev/2023/06/29/tweet-1674404171477295107/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/29/tweet-1674404171477295107/</guid><description>I strive to use consistent names when passing React props. Consistent naming makes the code easier to read and navigate. Examples: ✅ Pass a piece o...</description><pubDate>Thu, 29 Jun 2023 13:07:18 GMT</pubDate><category>Tweets</category></item><item><title>Problem: TypeScript and ESLint display errors using a red underline, so you...</title><link>https://coryhouse.dev/2023/06/29/tweet-1674456771031707655/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/29/tweet-1674456771031707655/</guid><description>Problem: TypeScript and ESLint display errors using a red underline, so you can’t tell if it’s a type or lint issue at a glance. Solution: Use only...</description><pubDate>Thu, 29 Jun 2023 16:36:18 GMT</pubDate><category>Tweets</category></item><item><title>Refactoring is rarely “necessary” or “urgent”</title><link>https://coryhouse.dev/2023/06/30/tweet-1674757265486651392/</link><guid isPermaLink="true">https://coryhouse.dev/2023/06/30/tweet-1674757265486651392/</guid><description>Refactoring is rarely “necessary” or “urgent”. Yet refactoring is important because code is read often, and patterns proliferate. If we only change...</description><pubDate>Fri, 30 Jun 2023 12:30:22 GMT</pubDate><category>Tweets</category></item><item><title>Confession: Years ago, my life was dominated by fear</title><link>https://coryhouse.dev/2023/07/01/tweet-1675135453668823042/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/01/tweet-1675135453668823042/</guid><description>Confession: Years ago, my life was dominated by fear. I was so scared of failure that I was afraid to speak up. I was afraid to try things that mig...</description><pubDate>Sat, 01 Jul 2023 13:33:09 GMT</pubDate><category>Tweets</category></item><item><title>When I’m stuck on a hard programming problem the most ineffective thing I...</title><link>https://coryhouse.dev/2023/07/02/tweet-1675509214796562432/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/02/tweet-1675509214796562432/</guid><description>When I’m stuck on a hard programming problem the most ineffective thing I can do is sit at the keyboard and hope a good idea arrives. So instead, I...</description><pubDate>Sun, 02 Jul 2023 14:18:20 GMT</pubDate><category>Tweets</category></item><item><title>You don’t need to get rich to radically change your life</title><link>https://coryhouse.dev/2023/07/03/tweet-1675950486548099073/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/03/tweet-1675950486548099073/</guid><description>You don’t need to get rich to radically change your life. You just need save enough that you can afford to not make money for a little while. Here’...</description><pubDate>Mon, 03 Jul 2023 19:31:48 GMT</pubDate><category>Tweets</category></item><item><title>A common mistake: “I don’t like that person, so I won’t agree with anything...</title><link>https://coryhouse.dev/2023/07/03/tweet-1676002779867881475/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/03/tweet-1676002779867881475/</guid><description>A common mistake: “I don’t like that person, so I won’t agree with anything they say.” Example: “I don’t like Uncle Bob. So, DRY is dumb”. A person...</description><pubDate>Mon, 03 Jul 2023 22:59:36 GMT</pubDate><category>Tweets</category></item><item><title>Good programming advice can be taken too far: DRY - “I don’t repeat...</title><link>https://coryhouse.dev/2023/07/04/tweet-1676209191797633026/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/04/tweet-1676209191797633026/</guid><description>Good programming advice can be taken too far: DRY - “I don’t repeat anything, ever” Single responsibility - “Every function I write is one line” TD...</description><pubDate>Tue, 04 Jul 2023 12:39:48 GMT</pubDate><category>Tweets</category></item><item><title>“Move fast and break things.” This can be a useful mantra early in a...</title><link>https://coryhouse.dev/2023/07/05/tweet-1676614146463236097/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/05/tweet-1676614146463236097/</guid><description>“Move fast and break things.” This can be a useful mantra early in a software project. But, once real users and real data are impacted, it’s typica...</description><pubDate>Wed, 05 Jul 2023 15:28:57 GMT</pubDate><category>Tweets</category></item><item><title>A lead who understands and is responsible for the entire system is critical</title><link>https://coryhouse.dev/2023/07/05/tweet-1676710674339180544/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/05/tweet-1676710674339180544/</guid><description>A lead who understands and is responsible for the entire system is critical. Here’s why: ✅ They can spot needless complexity ✅ They can see when a...</description><pubDate>Wed, 05 Jul 2023 21:52:31 GMT</pubDate><category>Tweets</category></item><item><title>I thought TypeScript was a waste of time</title><link>https://coryhouse.dev/2023/07/06/tweet-1676977441804283904/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/06/tweet-1676977441804283904/</guid><description>I thought TypeScript was a waste of time. I thought it was more complexity than it was worth. I thought Microsoft was just trying to make JavaScrip...</description><pubDate>Thu, 06 Jul 2023 15:32:33 GMT</pubDate><category>Tweets</category></item><item><title>Software development is an interest of mine</title><link>https://coryhouse.dev/2023/07/07/tweet-1677295508732141570/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/07/tweet-1677295508732141570/</guid><description>Software development is an interest of mine. I enjoy reading, experimenting, and getting better. But, it’s not *inherently* interesting. It’s inter...</description><pubDate>Fri, 07 Jul 2023 12:36:26 GMT</pubDate><category>Tweets</category></item><item><title>Using &quot;!&quot; in TypeScript is often a hack that reduces type safety</title><link>https://coryhouse.dev/2023/07/07/tweet-1677386140352139264/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/07/tweet-1677386140352139264/</guid><description>Using &quot;!&quot; in TypeScript is often a hack that reduces type safety. Instead, it&apos;s typically best to: 1. Check if the expected data exists. 2. Throw a...</description><pubDate>Fri, 07 Jul 2023 18:36:34 GMT</pubDate><category>Tweets</category></item><item><title>Software development is intimidating because there is no &quot;arrival&quot;</title><link>https://coryhouse.dev/2023/07/08/tweet-1677690679055491072/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/08/tweet-1677690679055491072/</guid><description>Software development is intimidating because there is no &quot;arrival&quot;. There&apos;s no day I can say &quot;I fully understand&quot;. A career in software development...</description><pubDate>Sat, 08 Jul 2023 14:46:42 GMT</pubDate><category>Tweets</category></item><item><title>“I don’t need Tailwind</title><link>https://coryhouse.dev/2023/07/10/tweet-1678377322381033475/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/10/tweet-1678377322381033475/</guid><description>“I don’t need Tailwind. I’m a CSS expert.” ⚠️Will your docs will be as comprehensive? ⚠️Will your class structure will be as thoughtful? ⚠️Will you...</description><pubDate>Mon, 10 Jul 2023 12:15:11 GMT</pubDate><category>Tweets</category></item><item><title>Anyone know of an ESLint rule that enforces naming React state properly</title><link>https://coryhouse.dev/2023/07/10/tweet-1678471122382102545/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/10/tweet-1678471122382102545/</guid><description>Anyone know of an ESLint rule that enforces naming React state properly? I&apos;d like it to catch this: const [count, updateTheCount] = useState(0) And...</description><pubDate>Mon, 10 Jul 2023 18:27:54 GMT</pubDate><category>Tweets</category></item><item><title>I believe one of the most valuable things we can do in code reviews is...</title><link>https://coryhouse.dev/2023/07/11/tweet-1678882438771097602/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/11/tweet-1678882438771097602/</guid><description>I believe one of the most valuable things we can do in code reviews is improve naming. &quot;I&apos;m unclear what this variable name means.&quot; &quot;This function&apos;...</description><pubDate>Tue, 11 Jul 2023 21:42:20 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Mock datasets tend to be bloated, unreliable, and repetitive</title><link>https://coryhouse.dev/2023/07/12/tweet-1679117911401660420/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/12/tweet-1679117911401660420/</guid><description>Problem: Mock datasets tend to be bloated, unreliable, and repetitive. So, it&apos;s often unclear what mock data can safely be changed, reused, or adde...</description><pubDate>Wed, 12 Jul 2023 13:18:01 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You want to support internationalization</title><link>https://coryhouse.dev/2023/07/12/tweet-1679227138874957824/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/12/tweet-1679227138874957824/</guid><description>Problem: You want to support internationalization. You want autocomplete support for translated strings. You want type safety to ensure translation...</description><pubDate>Wed, 12 Jul 2023 20:32:03 GMT</pubDate><category>Tweets</category></item><item><title>Every abstraction has a cost</title><link>https://coryhouse.dev/2023/07/13/tweet-1679484393256022017/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/13/tweet-1679484393256022017/</guid><description>Every abstraction has a cost. Some abstractions don’t provide enough value to offset their cost. Examples: A function only called once with a singl...</description><pubDate>Thu, 13 Jul 2023 13:34:17 GMT</pubDate><category>Tweets</category></item><item><title>Perhaps the most common mistake in software: Waiting too long before getting...</title><link>https://coryhouse.dev/2023/07/14/tweet-1679831830919274496/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/14/tweet-1679831830919274496/</guid><description>Perhaps the most common mistake in software: Waiting too long before getting feedback. Early feedback catches obvious issues when they&apos;re cheaper t...</description><pubDate>Fri, 14 Jul 2023 12:34:52 GMT</pubDate><category>Tweets</category></item><item><title>Concern: “Asking for feedback makes me look weak or incompetent.” Reality:...</title><link>https://coryhouse.dev/2023/07/14/tweet-1679881839752667140/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/14/tweet-1679881839752667140/</guid><description>Concern: “Asking for feedback makes me look weak or incompetent.” Reality: Asking for feedback makes you look more confident, more capable, and mor...</description><pubDate>Fri, 14 Jul 2023 15:53:35 GMT</pubDate><category>Tweets</category></item><item><title>Company: &quot;We&apos;re agile.&quot; 5 minutes later</title><link>https://coryhouse.dev/2023/07/14/tweet-1679941895504506880/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/14/tweet-1679941895504506880/</guid><description>Company: &quot;We&apos;re agile.&quot; 5 minutes later... Company: &quot;It&apos;s time for quarterly PI planning, so all teams need to agree on what they&apos;ll do in the next...</description><pubDate>Fri, 14 Jul 2023 19:52:14 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You need to apply a key to a React fragment</title><link>https://coryhouse.dev/2023/07/15/tweet-1680234319057502209/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/15/tweet-1680234319057502209/</guid><description>Problem: You need to apply a key to a React fragment. Solution: Use React.Fragment instead of &lt;&gt;.</description><pubDate>Sat, 15 Jul 2023 15:14:13 GMT</pubDate><category>Tweets</category></item><item><title>Every software shop wants to say “we’re agile”</title><link>https://coryhouse.dev/2023/07/16/tweet-1680586778594385921/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/16/tweet-1680586778594385921/</guid><description>Every software shop wants to say “we’re agile”. But true agility requires two things: 1. Executives that give teams autonomy and trust. 2. Teams th...</description><pubDate>Sun, 16 Jul 2023 14:34:46 GMT</pubDate><category>Tweets</category></item><item><title>Habit: Before I make a PR comment, I ask “Could this check be automated?”...</title><link>https://coryhouse.dev/2023/07/17/tweet-1680938282387947522/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/17/tweet-1680938282387947522/</guid><description>Habit: Before I make a PR comment, I ask “Could this check be automated?” Examples: 🚫 Bad format ✅Use Prettier 🚫 Tests fail ✅ Run tests on CI 🚫...</description><pubDate>Mon, 17 Jul 2023 13:51:31 GMT</pubDate><category>Tweets</category></item><item><title>I frequently audit JavaScript projects for companies</title><link>https://coryhouse.dev/2023/07/18/tweet-1681326374034759682/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/18/tweet-1681326374034759682/</guid><description>I frequently audit JavaScript projects for companies. Here&apos;s something I look for: Is there an ESLint plugin installed for each package we’re using...</description><pubDate>Tue, 18 Jul 2023 15:33:39 GMT</pubDate><category>Tweets</category></item><item><title>Two mistakes I see often: 1</title><link>https://coryhouse.dev/2023/07/19/tweet-1681737808493305856/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/19/tweet-1681737808493305856/</guid><description>Two mistakes I see often: 1. Start coding too early. If we start coding before we know what we need, it leads to excessive rework and risks throwin...</description><pubDate>Wed, 19 Jul 2023 18:48:33 GMT</pubDate><category>Tweets</category></item><item><title>A recipe for massive technical debt: 📉 🚫 Throw a large number of...</title><link>https://coryhouse.dev/2023/07/20/tweet-1682006354540503051/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/20/tweet-1682006354540503051/</guid><description>A recipe for massive technical debt: 📉 🚫 Throw a large number of developers at an empty project...and tell them to hurry. 🚫 Don&apos;t bother with co...</description><pubDate>Thu, 20 Jul 2023 12:35:39 GMT</pubDate><category>Tweets</category></item><item><title>Problem: I need to fix a bug</title><link>https://coryhouse.dev/2023/07/21/tweet-1682369084787240962/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/21/tweet-1682369084787240962/</guid><description>Problem: I need to fix a bug. But, the code is so hard to understand that I don&apos;t know how to fix it. Solution: 1. Understand what the feature is s...</description><pubDate>Fri, 21 Jul 2023 12:37:01 GMT</pubDate><category>Tweets</category></item><item><title>Short-term thinking: We don&apos;t have time to write tests</title><link>https://coryhouse.dev/2023/07/21/tweet-1682413889185632259/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/21/tweet-1682413889185632259/</guid><description>Short-term thinking: We don&apos;t have time to write tests. Long-term thinking: Tests will save us time. With tests, we can: ✅ Understand how each feat...</description><pubDate>Fri, 21 Jul 2023 15:35:03 GMT</pubDate><category>Tweets</category></item><item><title>Me: This PR fails on my machine</title><link>https://coryhouse.dev/2023/07/21/tweet-1682453913939726339/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/21/tweet-1682453913939726339/</guid><description>Me: This PR fails on my machine. Dev: It works on my machine. ¯\_(ツ)_/¯ Me: Add a test that runs the feature on CI. Dev: The new test passes on my...</description><pubDate>Fri, 21 Jul 2023 18:14:06 GMT</pubDate><category>Tweets</category></item><item><title>9 ways to resolve &quot;It works on my machine&quot;: 1</title><link>https://coryhouse.dev/2023/07/22/tweet-1682782415834554369/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/22/tweet-1682782415834554369/</guid><description>9 ways to resolve &quot;It works on my machine&quot;: 1. Try incognito mode. 2. Use a different browser. 3. Is everything committed? 4. Did you change/add a...</description><pubDate>Sat, 22 Jul 2023 15:59:27 GMT</pubDate><category>Tweets</category></item><item><title>Habit: I often centralize API urls in a single file</title><link>https://coryhouse.dev/2023/07/23/tweet-1683101503752396800/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/23/tweet-1683101503752396800/</guid><description>Habit: I often centralize API urls in a single file. Benefits: ✅ I reuse the URLs in fetch calls and mock configs (using tools like @ApiMocking) ✅...</description><pubDate>Sun, 23 Jul 2023 13:07:23 GMT</pubDate><category>Tweets</category></item><item><title>Old habit: I added useful explanations in my GitHub pull requests to help...</title><link>https://coryhouse.dev/2023/07/24/tweet-1683453132267745281/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/24/tweet-1683453132267745281/</guid><description>Old habit: I added useful explanations in my GitHub pull requests to help the reviewer. But once the PR was merged, my comments were lost. 👎 New h...</description><pubDate>Mon, 24 Jul 2023 12:24:38 GMT</pubDate><category>Tweets</category></item><item><title>The most common way I see agile fail: 1</title><link>https://coryhouse.dev/2023/07/25/tweet-1683845476645212166/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/25/tweet-1683845476645212166/</guid><description>The most common way I see agile fail: 1. A team makes a mistake in production. 2. Executives create rigid, counter-productive processes because the...</description><pubDate>Tue, 25 Jul 2023 14:23:40 GMT</pubDate><category>Tweets</category></item><item><title>A common TypeScript mistake I see in React code reviews: Needless useState...</title><link>https://coryhouse.dev/2023/07/26/tweet-1684009948940738560/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/26/tweet-1684009948940738560/</guid><description>A common TypeScript mistake I see in React code reviews: Needless useState type arguments. If there&apos;s a default, the type can typically be inferred.</description><pubDate>Wed, 26 Jul 2023 01:17:13 GMT</pubDate><category>Tweets</category></item><item><title>Some developers claim to be “over-employed” (working multiple full-time...</title><link>https://coryhouse.dev/2023/07/27/tweet-1684554093698613249/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/27/tweet-1684554093698613249/</guid><description>Some developers claim to be “over-employed” (working multiple full-time remote jobs). I&apos;ve worked with a couple people who appeared to be trying it...</description><pubDate>Thu, 27 Jul 2023 13:19:28 GMT</pubDate><category>Tweets</category></item><item><title>Things I rarely use: 🚫 Currying 🚫 Middleware 🚫 Inheritance 🚫...</title><link>https://coryhouse.dev/2023/07/28/tweet-1684903334115753985/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/28/tweet-1684903334115753985/</guid><description>Things I rarely use: 🚫 Currying 🚫 Middleware 🚫 Inheritance 🚫 Polymorphism 🚫 IoC containers 🚫 The actor model 🚫 Aspect-oriented programming �...</description><pubDate>Fri, 28 Jul 2023 12:27:13 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You want to display a dialog</title><link>https://coryhouse.dev/2023/07/29/tweet-1685269087457329153/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/29/tweet-1685269087457329153/</guid><description>Problem: You want to display a dialog. Common solution: Use state to track the dialog&apos;s visibility. Alternative solution: Consider using a URL sear...</description><pubDate>Sat, 29 Jul 2023 12:40:35 GMT</pubDate><category>Tweets</category></item><item><title>Problem: When a user shares or bookmarks a URL, the page doesn&apos;t show what...</title><link>https://coryhouse.dev/2023/07/30/tweet-1685632070956072960/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/30/tweet-1685632070956072960/</guid><description>Problem: When a user shares or bookmarks a URL, the page doesn&apos;t show what they were seeing when reloaded. Solution: Consider storing the state in...</description><pubDate>Sun, 30 Jul 2023 12:42:57 GMT</pubDate><category>Tweets</category></item><item><title>⚠️ Watch out: Environments encourage behaviors</title><link>https://coryhouse.dev/2023/07/31/tweet-1686012773166116864/</link><guid isPermaLink="true">https://coryhouse.dev/2023/07/31/tweet-1686012773166116864/</guid><description>⚠️ Watch out: Environments encourage behaviors. QA: &quot;Let&apos;s batch up work and wait for a separate team to manually test our app and approve before w...</description><pubDate>Mon, 31 Jul 2023 13:55:44 GMT</pubDate><category>Tweets</category></item><item><title>Want to do Continuous integration (CI) and Continuous Delivery (CD)</title><link>https://coryhouse.dev/2023/08/01/tweet-1686339708610072577/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/01/tweet-1686339708610072577/</guid><description>Want to do Continuous integration (CI) and Continuous Delivery (CD)? Then avoid creating a bunch of non-prod environments. Here&apos;s why: Non-prod env...</description><pubDate>Tue, 01 Aug 2023 11:34:51 GMT</pubDate><category>Tweets</category></item><item><title>Warning: If you hire people whose job is basically &quot;lead meetings&quot; you may...</title><link>https://coryhouse.dev/2023/08/02/tweet-1686824713392115712/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/02/tweet-1686824713392115712/</guid><description>Warning: If you hire people whose job is basically &quot;lead meetings&quot; you may find they waste a lot of people&apos;s time in needless meetings.</description><pubDate>Wed, 02 Aug 2023 19:42:06 GMT</pubDate><category>Tweets</category></item><item><title>Problem: “We can’t release daily</title><link>https://coryhouse.dev/2023/08/03/tweet-1687080900058595329/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/03/tweet-1687080900058595329/</guid><description>Problem: “We can’t release daily. The business decides when we can release new features.” Solution: Decouple release from deployment. Here’s how: 1...</description><pubDate>Thu, 03 Aug 2023 12:40:05 GMT</pubDate><category>Tweets</category></item><item><title>The most common mistake I see with feature flags is having too many</title><link>https://coryhouse.dev/2023/08/03/tweet-1687216789824905216/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/03/tweet-1687216789824905216/</guid><description>The most common mistake I see with feature flags is having too many. Flags are like tech debt. They’re useful, but they should typically be rare an...</description><pubDate>Thu, 03 Aug 2023 21:40:04 GMT</pubDate><category>Tweets</category></item><item><title>Creating components is easy</title><link>https://coryhouse.dev/2023/08/04/tweet-1687433773434941440/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/04/tweet-1687433773434941440/</guid><description>Creating components is easy. Creating reusable components is hard. What mistakes did your company make when creating their own reusable UI components?</description><pubDate>Fri, 04 Aug 2023 12:02:17 GMT</pubDate><category>Tweets</category></item><item><title>Global variables in disguise: React Context Redux React-query Apollo Jotai...</title><link>https://coryhouse.dev/2023/08/05/tweet-1687834419397115904/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/05/tweet-1687834419397115904/</guid><description>Global variables in disguise: React Context Redux React-query Apollo Jotai Zustand That doesn’t mean these things are “bad”. But it does mean we sh...</description><pubDate>Sat, 05 Aug 2023 14:34:18 GMT</pubDate><category>Tweets</category></item><item><title>Building a web app and need global state</title><link>https://coryhouse.dev/2023/08/06/tweet-1688156061797072896/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/06/tweet-1688156061797072896/</guid><description>Building a web app and need global state? You might not need a global state library. Consider using the browser’s global state: URL Cookie IndexDB...</description><pubDate>Sun, 06 Aug 2023 11:52:24 GMT</pubDate><category>Tweets</category></item><item><title>Global state isn’t “bad”</title><link>https://coryhouse.dev/2023/08/08/tweet-1688938330686111744/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/08/tweet-1688938330686111744/</guid><description>Global state isn’t “bad”. It’s a tradeoff. Advantages: ✅ Simple ✅ Convenient ✅ Easy to understand Downsides: 🚫 Prone to bugs 🚫 Can hurt performan...</description><pubDate>Tue, 08 Aug 2023 15:40:51 GMT</pubDate><category>Tweets</category></item><item><title>A messy coding environment is like a messy kitchen</title><link>https://coryhouse.dev/2023/08/09/tweet-1689273043158212608/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/09/tweet-1689273043158212608/</guid><description>A messy coding environment is like a messy kitchen. The mess makes it hard to do good work. Examples: 🚫 Unused files 🚫 Failing tests 🚫 Misspelle...</description><pubDate>Wed, 09 Aug 2023 13:50:53 GMT</pubDate><category>Tweets</category></item><item><title>A pattern I&apos;ve noticed: A designer ships great work, gets bored, and moves on</title><link>https://coryhouse.dev/2023/08/10/tweet-1689474757849182208/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/10/tweet-1689474757849182208/</guid><description>A pattern I&apos;ve noticed: A designer ships great work, gets bored, and moves on. A new designer is hired, and immediately wants to do a redesign. Oft...</description><pubDate>Thu, 10 Aug 2023 03:12:25 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You’re building a big feature that will require weeks of work</title><link>https://coryhouse.dev/2023/08/10/tweet-1689656571570114560/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/10/tweet-1689656571570114560/</guid><description>Problem: You’re building a big feature that will require weeks of work. Mistake: A long-lived feature branch. Solution: Use a feature flag to hide...</description><pubDate>Thu, 10 Aug 2023 15:14:53 GMT</pubDate><category>Tweets</category></item><item><title>Each year, I work with a few teams that are basically doing the same thing:...</title><link>https://coryhouse.dev/2023/08/11/tweet-1689988394351566848/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/11/tweet-1689988394351566848/</guid><description>Each year, I work with a few teams that are basically doing the same thing: Rewriting old web apps to use React. The old apps use ASP NET Web Forms...</description><pubDate>Fri, 11 Aug 2023 13:13:26 GMT</pubDate><category>Tweets</category></item><item><title>My mindset: “I should be able to merge my work daily.” This encourages me to...</title><link>https://coryhouse.dev/2023/08/12/tweet-1690360005935984640/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/12/tweet-1690360005935984640/</guid><description>My mindset: “I should be able to merge my work daily.” This encourages me to break tasks down. It encourages me to consider how I can “hide/disable...</description><pubDate>Sat, 12 Aug 2023 13:50:05 GMT</pubDate><category>Tweets</category></item><item><title>Many companies create reusable components</title><link>https://coryhouse.dev/2023/08/12/tweet-1690391146013310976/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/12/tweet-1690391146013310976/</guid><description>Many companies create reusable components. But, the developers don&apos;t use them. Here&apos;s why: 🚫 &quot;It’s bloated.&quot; 🚫 &quot;I couldn’t find it.&quot; 🚫 &quot;The API...</description><pubDate>Sat, 12 Aug 2023 15:53:49 GMT</pubDate><category>Tweets</category></item><item><title>People keep talking about shadcn/ui, so I just created some reusable React...</title><link>https://coryhouse.dev/2023/08/13/tweet-1690706825220399104/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/13/tweet-1690706825220399104/</guid><description>People keep talking about shadcn/ui, so I just created some reusable React components with it. My impressions: ✅ It’s fast to get started with Next...</description><pubDate>Sun, 13 Aug 2023 12:48:13 GMT</pubDate><category>Tweets</category></item><item><title>The most effective way to quickly learn a new tech: 1</title><link>https://coryhouse.dev/2023/08/13/tweet-1690853104944631808/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/13/tweet-1690853104944631808/</guid><description>The most effective way to quickly learn a new tech: 1. Open the docs. 2. Open an editor. 3. Build something.</description><pubDate>Sun, 13 Aug 2023 22:29:29 GMT</pubDate><category>Tweets</category></item><item><title>My rule for creating reusable components: Honor HTML</title><link>https://coryhouse.dev/2023/08/14/tweet-1691080502021705728/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/14/tweet-1691080502021705728/</guid><description>My rule for creating reusable components: Honor HTML. Example: A reusable Button should honor the native HTML button API. So, don’t do this: 🚫 &amp;lt...</description><pubDate>Mon, 14 Aug 2023 13:33:05 GMT</pubDate><category>Tweets</category></item><item><title>Problem: 🚫 Your project has unused files</title><link>https://coryhouse.dev/2023/08/15/tweet-1691460974518353920/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/15/tweet-1691460974518353920/</guid><description>Problem: 🚫 Your project has unused files. 🚫 It has unused npm dependencies. 🚫 It has unused TypeScript exports. But you haven&apos;t noticed, because...</description><pubDate>Tue, 15 Aug 2023 14:44:56 GMT</pubDate><category>Tweets</category></item><item><title>Storybook is nice, but it can be tricky to fully emulate my app&apos;s...</title><link>https://coryhouse.dev/2023/08/16/tweet-1691608017689862397/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/16/tweet-1691608017689862397/</guid><description>Storybook is nice, but it can be tricky to fully emulate my app&apos;s environment because it has a separate build. And it&apos;s often brittle when I add/up...</description><pubDate>Wed, 16 Aug 2023 00:29:14 GMT</pubDate><category>Tweets</category></item><item><title>One of the most common reusable component mistakes I see: They&apos;re not...</title><link>https://coryhouse.dev/2023/08/16/tweet-1691806780429402315/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/16/tweet-1691806780429402315/</guid><description>One of the most common reusable component mistakes I see: They&apos;re not discoverable. I often ask teams &quot;Where are your reusable components?&quot; Their a...</description><pubDate>Wed, 16 Aug 2023 13:39:03 GMT</pubDate><category>Tweets</category></item><item><title>I thought that lounge access was silly</title><link>https://coryhouse.dev/2023/08/16/tweet-1691880529770025433/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/16/tweet-1691880529770025433/</guid><description>I thought that lounge access was silly. Then I finally tried it when my Amex card got me in for free. Now I get it. Wow. Such a wonderful, quiet pl...</description><pubDate>Wed, 16 Aug 2023 18:32:06 GMT</pubDate><category>Tweets</category></item><item><title>Here are the slides for &quot;Creating Reusable Components...That Are Actually...</title><link>https://coryhouse.dev/2023/08/17/tweet-1692307689517531183/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/17/tweet-1692307689517531183/</guid><description>Here are the slides for &quot;Creating Reusable Components...That Are Actually Reusable&quot; at @ReactRally These are new slides and recommendations I creat...</description><pubDate>Thu, 17 Aug 2023 22:49:29 GMT</pubDate><category>Tweets</category></item><item><title>Poll: Imagine your team has to build a project with either types or tests</title><link>https://coryhouse.dev/2023/08/17/tweet-1692308453992350082/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/17/tweet-1692308453992350082/</guid><description>Poll: Imagine your team has to build a project with either types or tests. You can&apos;t have both. Which would you pick?</description><pubDate>Thu, 17 Aug 2023 22:52:31 GMT</pubDate><category>Tweets</category></item><item><title>I ❤️ pnpm</title><link>https://coryhouse.dev/2023/08/18/tweet-1692563098039697849/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/18/tweet-1692563098039697849/</guid><description>I ❤️ pnpm. Just radically sped up a CI build by switching to pnpm and parallelizing tasks (which pnpm supports built-in) Before: 12 minutes After:...</description><pubDate>Fri, 18 Aug 2023 15:44:23 GMT</pubDate><category>Tweets</category></item><item><title>Types vs tests is a false dichotomy</title><link>https://coryhouse.dev/2023/08/19/tweet-1692895942540726643/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/19/tweet-1692895942540726643/</guid><description>Types vs tests is a false dichotomy. You can and should use both. But here’s why some teams favor types over tests: ✅ Types provide real-time inlin...</description><pubDate>Sat, 19 Aug 2023 13:46:59 GMT</pubDate><category>Tweets</category></item><item><title>Some programmers are code-first</title><link>https://coryhouse.dev/2023/08/20/tweet-1693303829255581733/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/20/tweet-1693303829255581733/</guid><description>Some programmers are code-first. They focus on the code. Other programmers are product-first. They focus on the product and user experience. Strive...</description><pubDate>Sun, 20 Aug 2023 16:47:47 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;ve been using @nextjs 13, the app folder, and React Server Components a...</title><link>https://coryhouse.dev/2023/08/20/tweet-1693366817702453639/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/20/tweet-1693366817702453639/</guid><description>I&apos;ve been using @nextjs 13, the app folder, and React Server Components a lot lately. What a wonderful combination. I&apos;m really impressed by how fas...</description><pubDate>Sun, 20 Aug 2023 20:58:05 GMT</pubDate><category>Tweets</category></item><item><title>A problem I&apos;m seeing on @nextjs: Sometimes I save changes, but I still see...</title><link>https://coryhouse.dev/2023/08/21/tweet-1693604265107800160/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/21/tweet-1693604265107800160/</guid><description>A problem I&apos;m seeing on @nextjs: Sometimes I save changes, but I still see old results. I delete the .next folder and restart to resolve it. I&apos;ve p...</description><pubDate>Mon, 21 Aug 2023 12:41:37 GMT</pubDate><category>Tweets</category></item><item><title>Okay, this is wild</title><link>https://coryhouse.dev/2023/08/21/tweet-1693663410603409535/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/21/tweet-1693663410603409535/</guid><description>Okay, this is wild. I just saw metrics at a company on PRs per developer, per year. The company has around 100 devs. At the top, some devs complete...</description><pubDate>Mon, 21 Aug 2023 16:36:38 GMT</pubDate><category>Tweets</category></item><item><title>One of my clients just did a demo of http://builder.io</title><link>https://coryhouse.dev/2023/08/22/tweet-1693970973748244622/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/22/tweet-1693970973748244622/</guid><description>One of my clients just did a demo of http://builder.io. Wow, I’m impressed. Drag and drop React components. Configure their props. Dynamic routes....</description><pubDate>Tue, 22 Aug 2023 12:58:47 GMT</pubDate><category>Tweets</category></item><item><title>4 software delivery metrics worth tracking: 1</title><link>https://coryhouse.dev/2023/08/23/tweet-1694357263790608734/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/23/tweet-1694357263790608734/</guid><description>4 software delivery metrics worth tracking: 1. Change lead time - How long does it take to go from code committed to prod? 2. Deployment frequency...</description><pubDate>Wed, 23 Aug 2023 14:33:45 GMT</pubDate><category>Tweets</category></item><item><title>Sometimes a simple REST API change can significantly simplify the UI</title><link>https://coryhouse.dev/2023/08/23/tweet-1694388546461942106/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/23/tweet-1694388546461942106/</guid><description>Sometimes a simple REST API change can significantly simplify the UI. Example: An endpoint returns either an array, or null. This requires the UI t...</description><pubDate>Wed, 23 Aug 2023 16:38:04 GMT</pubDate><category>Tweets</category></item><item><title>If I were a dev manager again, here&apos;s a stat I&apos;d track: PR comment/approval...</title><link>https://coryhouse.dev/2023/08/24/tweet-1694684019705663864/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/24/tweet-1694684019705663864/</guid><description>If I were a dev manager again, here&apos;s a stat I&apos;d track: PR comment/approval ratio. Examples: Bob made 0 PR comments this month and approved 25 PRs....</description><pubDate>Thu, 24 Aug 2023 12:12:10 GMT</pubDate><category>Tweets</category></item><item><title>I just built a product catalog app with @nextjs new app folder</title><link>https://coryhouse.dev/2023/08/25/tweet-1695055484108050454/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/25/tweet-1695055484108050454/</guid><description>I just built a product catalog app with @nextjs new app folder. I’m impressed. ✅ The new file-based routing with nested layouts works great, and fe...</description><pubDate>Fri, 25 Aug 2023 12:48:14 GMT</pubDate><category>Tweets</category></item><item><title>Electrician installed the Tesla wall connector today on a 60 amp breaker</title><link>https://coryhouse.dev/2023/08/26/tweet-1695277797013324150/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/26/tweet-1695277797013324150/</guid><description>Electrician installed the Tesla wall connector today on a 60 amp breaker. Now the Model S charges at 41 miles/hour in my garage!</description><pubDate>Sat, 26 Aug 2023 03:31:38 GMT</pubDate><category>Tweets</category></item><item><title>A common TypeScript mistake: Needless optional fields</title><link>https://coryhouse.dev/2023/08/27/tweet-1695780983784538139/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/27/tweet-1695780983784538139/</guid><description>A common TypeScript mistake: Needless optional fields. Me: “Why is this field optional?” Dev: “In case someone doesn’t pass it.” Me: If the field i...</description><pubDate>Sun, 27 Aug 2023 12:51:07 GMT</pubDate><category>Tweets</category></item><item><title>When working in TypeScript, I think in sets</title><link>https://coryhouse.dev/2023/08/28/tweet-1696116831457583611/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/28/tweet-1696116831457583611/</guid><description>When working in TypeScript, I think in sets. Each type describes a potential set of values. The goal: Make each set as specific as possible.</description><pubDate>Mon, 28 Aug 2023 11:05:39 GMT</pubDate><category>Tweets</category></item><item><title>Some people “overdo” their job</title><link>https://coryhouse.dev/2023/08/29/tweet-1696499306851664287/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/29/tweet-1696499306851664287/</guid><description>Some people “overdo” their job. Examples: 🚫 A software architect that over-engineers a simple problem. 🚫 A UI designer that redesigns something t...</description><pubDate>Tue, 29 Aug 2023 12:25:28 GMT</pubDate><category>Tweets</category></item><item><title>Many companies are unwilling to spend a little extra money to make CI faster</title><link>https://coryhouse.dev/2023/08/30/tweet-1696895581593944525/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/30/tweet-1696895581593944525/</guid><description>Many companies are unwilling to spend a little extra money to make CI faster. This is a silly place to save money. A fast CI server that paralleliz...</description><pubDate>Wed, 30 Aug 2023 14:40:08 GMT</pubDate><category>Tweets</category></item><item><title>If you work in TypeScript, this style guide by @mkosir_ is a wonderful resource</title><link>https://coryhouse.dev/2023/08/31/tweet-1697058520431046685/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/31/tweet-1697058520431046685/</guid><description>If you work in TypeScript, this style guide by @mkosir_ is a wonderful resource. Many thoughtful tips and links to related resources. https://mkosi...</description><pubDate>Thu, 31 Aug 2023 01:27:35 GMT</pubDate><category>Tweets</category></item><item><title>I’m helping a team add end-to-end tests to an existing app</title><link>https://coryhouse.dev/2023/08/31/tweet-1697249306833809707/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/31/tweet-1697249306833809707/</guid><description>I’m helping a team add end-to-end tests to an existing app. But, the app is slow, so the e2e tests are slow. The good news? Now we have a *lot* of...</description><pubDate>Thu, 31 Aug 2023 14:05:42 GMT</pubDate><category>Tweets</category></item><item><title>Problem: aria-labels are often overly broad</title><link>https://coryhouse.dev/2023/08/31/tweet-1697308233222750703/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/31/tweet-1697308233222750703/</guid><description>Problem: aria-labels are often overly broad. Remember, an aria-label provides a label for assistive tech. So the user may not be able to see the su...</description><pubDate>Thu, 31 Aug 2023 17:59:51 GMT</pubDate><category>Tweets</category></item><item><title>Me: &quot;If it doesn&apos;t improve the user experience, it doesn&apos;t matter.&quot; Dev:...</title><link>https://coryhouse.dev/2023/08/31/tweet-1697367778934563259/</link><guid isPermaLink="true">https://coryhouse.dev/2023/08/31/tweet-1697367778934563259/</guid><description>Me: &quot;If it doesn&apos;t improve the user experience, it doesn&apos;t matter.&quot; Dev: &quot;What about CI, types, and tests?! They matter!&quot; Me: &quot;Agreed. Those improv...</description><pubDate>Thu, 31 Aug 2023 21:56:28 GMT</pubDate><category>Tweets</category></item><item><title>Imagine your CI build took only 5 seconds</title><link>https://coryhouse.dev/2023/09/01/tweet-1697611359930777799/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/01/tweet-1697611359930777799/</guid><description>Imagine your CI build took only 5 seconds. How would this impact your team? My take: ✅ We’d open PRs more often because they’re so fast. ✅ We’d fix...</description><pubDate>Fri, 01 Sep 2023 14:04:22 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;ve found it&apos;s important to run PRs so I can review the user experience</title><link>https://coryhouse.dev/2023/09/01/tweet-1697708471846658514/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/01/tweet-1697708471846658514/</guid><description>I&apos;ve found it&apos;s important to run PRs so I can review the user experience. I believe user experience is everyone&apos;s responsibility.</description><pubDate>Fri, 01 Sep 2023 20:30:16 GMT</pubDate><category>Tweets</category></item><item><title>I occasionally see companies create reusable component libraries that make...</title><link>https://coryhouse.dev/2023/09/02/tweet-1697957416183157010/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/02/tweet-1697957416183157010/</guid><description>I occasionally see companies create reusable component libraries that make it hard to restyle. Their goal is admirable - they want to enforce consi...</description><pubDate>Sat, 02 Sep 2023 12:59:29 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You want to link to a page and highlight specific text</title><link>https://coryhouse.dev/2023/09/03/tweet-1698315999827599415/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/03/tweet-1698315999827599415/</guid><description>Problem: You want to link to a page and highlight specific text. Solution: Use the text fragments API. https://developer.mozilla.org/en-US/docs/Web...</description><pubDate>Sun, 03 Sep 2023 12:44:22 GMT</pubDate><category>Tweets</category></item><item><title>Here’s a novel reason to write automated end-to-end tests: It motivates...</title><link>https://coryhouse.dev/2023/09/03/tweet-1698330442301161925/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/03/tweet-1698330442301161925/</guid><description>Here’s a novel reason to write automated end-to-end tests: It motivates developers to fix performance issues. Why? Because if the app is slow, the...</description><pubDate>Sun, 03 Sep 2023 13:41:45 GMT</pubDate><category>Tweets</category></item><item><title>I’m helping a team create their first automated tests</title><link>https://coryhouse.dev/2023/09/04/tweet-1698698306619093363/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/04/tweet-1698698306619093363/</guid><description>I’m helping a team create their first automated tests. Here are 8 common testing mistakes I’m seeing, and how to fix them: 1. Unclear name. Solutio...</description><pubDate>Mon, 04 Sep 2023 14:03:31 GMT</pubDate><category>Tweets</category></item><item><title>I’ve used a treadmill under my standing desk for the last 8 years</title><link>https://coryhouse.dev/2023/09/05/tweet-1699055228853653995/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/05/tweet-1699055228853653995/</guid><description>I’ve used a treadmill under my standing desk for the last 8 years. I love it, and I believe it’s a competitive advantage. Here’s why: 1. 10k steps...</description><pubDate>Tue, 05 Sep 2023 13:41:48 GMT</pubDate><category>Tweets</category></item><item><title>Problem: The REST API I’m calling is a mess</title><link>https://coryhouse.dev/2023/09/06/tweet-1699432589386285124/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/06/tweet-1699432589386285124/</guid><description>Problem: The REST API I’m calling is a mess. Solution: Abstract it. Resolve the issues in your response handlers. ✅ Fix misspelled properties and c...</description><pubDate>Wed, 06 Sep 2023 14:41:17 GMT</pubDate><category>Tweets</category></item><item><title>My talk &quot;Creating Reusable Components...That Are Actually Reusable&quot; from...</title><link>https://coryhouse.dev/2023/09/06/tweet-1699465162283946133/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/06/tweet-1699465162283946133/</guid><description>My talk &quot;Creating Reusable Components...That Are Actually Reusable&quot; from @ReactRally just posted on YouTube! I welcome your feedback. https://www.y...</description><pubDate>Wed, 06 Sep 2023 16:50:43 GMT</pubDate><category>Tweets</category></item><item><title>“We don’t need types</title><link>https://coryhouse.dev/2023/09/06/tweet-1699541720487133228/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/06/tweet-1699541720487133228/</guid><description>“We don’t need types. We write tests.” Tests are wonderful. But tests don’t replace types. Why? Because tests are harder to do well than types. Tea...</description><pubDate>Wed, 06 Sep 2023 21:54:56 GMT</pubDate><category>Tweets</category></item><item><title>I understand why some teams use plain JavaScript</title><link>https://coryhouse.dev/2023/09/07/tweet-1699846510710542359/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/07/tweet-1699846510710542359/</guid><description>I understand why some teams use plain JavaScript. Perhaps the code is simple and rarely changes. Perhaps the team is small, so types feel like over...</description><pubDate>Thu, 07 Sep 2023 18:06:04 GMT</pubDate><category>Tweets</category></item><item><title>Why is this post is getting so much buzz</title><link>https://coryhouse.dev/2023/09/07/tweet-1699866154783650209/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/07/tweet-1699866154783650209/</guid><description>Why is this post is getting so much buzz? Because it&apos;s extremely uncommon for teams to migrate from TypeScript back to JavaScript. I&apos;ve worked with...</description><pubDate>Thu, 07 Sep 2023 19:24:07 GMT</pubDate><category>Tweets</category></item><item><title>I just removed tests, types, linting, code reviews, and CI from my project</title><link>https://coryhouse.dev/2023/09/08/tweet-1700143569879650494/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/08/tweet-1700143569879650494/</guid><description>I just removed tests, types, linting, code reviews, and CI from my project. I&apos;m excited to ship my bugs faster!</description><pubDate>Fri, 08 Sep 2023 13:46:28 GMT</pubDate><category>Tweets</category></item><item><title>Bun 1.0 is here and it’s shockingly compelling</title><link>https://coryhouse.dev/2023/09/09/tweet-1700341966079475724/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/09/tweet-1700341966079475724/</guid><description>Bun 1.0 is here and it’s shockingly compelling. Bun is a lightning fast runtime, build tool, bundler, package manager, and testing tool, all rolled...</description><pubDate>Sat, 09 Sep 2023 02:54:50 GMT</pubDate><category>Tweets</category></item><item><title>The Node cjs to esm transition is a mess</title><link>https://coryhouse.dev/2023/09/09/tweet-1700503786383405382/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/09/tweet-1700503786383405382/</guid><description>The Node cjs to esm transition is a mess. But Bun can handle both cjs and esm *in the same file*! This works?! Awesome. 🤯</description><pubDate>Sat, 09 Sep 2023 13:37:51 GMT</pubDate><category>Tweets</category></item><item><title>Problem: I&apos;m working in an app that uses both Redux and React Query</title><link>https://coryhouse.dev/2023/09/10/tweet-1700850719954202937/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/10/tweet-1700850719954202937/</guid><description>Problem: I&apos;m working in an app that uses both Redux and React Query. React Query responses are copied into the Redux store. The app is buggy becaus...</description><pubDate>Sun, 10 Sep 2023 12:36:26 GMT</pubDate><category>Tweets</category></item><item><title>Software developers are writers</title><link>https://coryhouse.dev/2023/09/10/tweet-1700987275616870835/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/10/tweet-1700987275616870835/</guid><description>Software developers are writers. Great writers master communication. Communication involves 4 key skills: ✅ Writing ✅ Reading ✅ Listening ✅ Speakin...</description><pubDate>Sun, 10 Sep 2023 21:39:03 GMT</pubDate><category>Tweets</category></item><item><title>Bun is exciting</title><link>https://coryhouse.dev/2023/09/11/tweet-1701207022073491933/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/11/tweet-1701207022073491933/</guid><description>Bun is exciting. But Bun’s “all-in-one”approach has many risks and downsides: 🚫 Bun will often lag behind changes to the separate tools it replace...</description><pubDate>Mon, 11 Sep 2023 12:12:15 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You need to represent an empty number</title><link>https://coryhouse.dev/2023/09/12/tweet-1701412755150909474/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/12/tweet-1701412755150909474/</guid><description>Problem: You need to represent an empty number. Hack: Use 0, -1, or &quot;&quot;. The real solution: Use null. That&apos;s what it&apos;s for. Null says, &quot;This has no...</description><pubDate>Tue, 12 Sep 2023 01:49:46 GMT</pubDate><category>Tweets</category></item><item><title>Avoid disabling from submit buttons</title><link>https://coryhouse.dev/2023/09/12/tweet-1701582293549174989/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/12/tweet-1701582293549174989/</guid><description>Avoid disabling from submit buttons. 🚫 Hurts accessibility. The submit button “disappears” for screen readers. 🚫 Hurts usability. The user may no...</description><pubDate>Tue, 12 Sep 2023 13:03:27 GMT</pubDate><category>Tweets</category></item><item><title>Yet another reason I run PRs as part of code reviews: I just ran a PR with...</title><link>https://coryhouse.dev/2023/09/12/tweet-1701742851472687227/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/12/tweet-1701742851472687227/</guid><description>Yet another reason I run PRs as part of code reviews: I just ran a PR with the devtools open and saw the app spewing console warnings. 😬 I can’t s...</description><pubDate>Tue, 12 Sep 2023 23:41:27 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript is a set-based language</title><link>https://coryhouse.dev/2023/09/13/tweet-1701985272295043425/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/13/tweet-1701985272295043425/</guid><description>TypeScript is a set-based language. If I &quot;lie&quot; to TypeScript about the nature of a set of values, then TypeScript can&apos;t help me. If something can b...</description><pubDate>Wed, 13 Sep 2023 15:44:44 GMT</pubDate><category>Tweets</category></item><item><title>A common programming mistake: Forgetting to start with a verb</title><link>https://coryhouse.dev/2023/09/14/tweet-1702300716449006058/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/14/tweet-1702300716449006058/</guid><description>A common programming mistake: Forgetting to start with a verb. Here are 4 things that should typically start with a verb: 1. Function 🚫 userGet ✅...</description><pubDate>Thu, 14 Sep 2023 12:38:12 GMT</pubDate><category>Tweets</category></item><item><title>Problem: TypeScript can&apos;t validate runtime data</title><link>https://coryhouse.dev/2023/09/15/tweet-1702671708577034454/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/15/tweet-1702671708577034454/</guid><description>Problem: TypeScript can&apos;t validate runtime data. Solution: Use Zod to validate runtime data. 6 things I validate at runtime via Zod: ✅ URL ✅ Cookie...</description><pubDate>Fri, 15 Sep 2023 13:12:24 GMT</pubDate><category>Tweets</category></item><item><title>Mistake: Displaying UI features that don’t work</title><link>https://coryhouse.dev/2023/09/16/tweet-1703015493219566019/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/16/tweet-1703015493219566019/</guid><description>Mistake: Displaying UI features that don’t work. This is a common mistake on pre-production projects. Displaying buttons/pages/features that don’t...</description><pubDate>Sat, 16 Sep 2023 11:58:28 GMT</pubDate><category>Tweets</category></item><item><title>Two thoughts on accessibility: 1</title><link>https://coryhouse.dev/2023/09/16/tweet-1703053469001593292/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/16/tweet-1703053469001593292/</guid><description>Two thoughts on accessibility: 1. I believe in writing accessible web apps. I teach teams how to use screen readers and how to write accessible HTM...</description><pubDate>Sat, 16 Sep 2023 14:29:22 GMT</pubDate><category>Tweets</category></item><item><title>AI coding tools like Copilot make suggestions based on what code is in the repo</title><link>https://coryhouse.dev/2023/09/16/tweet-1703164460460884314/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/16/tweet-1703164460460884314/</guid><description>AI coding tools like Copilot make suggestions based on what code is in the repo. ⚠️ So watch out: If the code is full of anti-patterns, AI suggesti...</description><pubDate>Sat, 16 Sep 2023 21:50:25 GMT</pubDate><category>Tweets</category></item><item><title>An EV is the ultimate mobile office</title><link>https://coryhouse.dev/2023/09/16/tweet-1703190535643488656/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/16/tweet-1703190535643488656/</guid><description>An EV is the ultimate mobile office. It’s quiet. I’m playing soft music. The A/C and cooled seat is on. My laptop and phone are charging. My screen...</description><pubDate>Sat, 16 Sep 2023 23:34:02 GMT</pubDate><category>Tweets</category></item><item><title>A test naming strategy I enjoy: 1</title><link>https://coryhouse.dev/2023/09/17/tweet-1703407970648780882/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/17/tweet-1703407970648780882/</guid><description>A test naming strategy I enjoy: 1. Use &quot;describe&quot; to describe the scenario under test 2. Use &quot;test&quot; to describe the expected results Benefits: ✅ Av...</description><pubDate>Sun, 17 Sep 2023 13:58:02 GMT</pubDate><category>Tweets</category></item><item><title>Naming rule: Case acronyms as words</title><link>https://coryhouse.dev/2023/09/18/tweet-1703769167550185621/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/18/tweet-1703769167550185621/</guid><description>Naming rule: Case acronyms as words. 🚫 getURLParam ✅ getUrlParam 🚫 parseHTTPRequest ✅ parseHttpRequest The second one is easier to read because i...</description><pubDate>Mon, 18 Sep 2023 13:53:18 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Disabled buttons hurt accessibility and usability</title><link>https://coryhouse.dev/2023/09/19/tweet-1704116173879546339/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/19/tweet-1704116173879546339/</guid><description>Problem: Disabled buttons hurt accessibility and usability. 🚫 They&apos;re invisible for screen readers. 🚫 There&apos;s no way for a user to discover why a...</description><pubDate>Tue, 19 Sep 2023 12:52:11 GMT</pubDate><category>Tweets</category></item><item><title>&quot;I don&apos;t need to run the PR</title><link>https://coryhouse.dev/2023/09/19/tweet-1704198948993278041/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/19/tweet-1704198948993278041/</guid><description>&quot;I don&apos;t need to run the PR. I trust the developer&quot;. You wouldn&apos;t believe how many PRs I see that have obvious mistakes or don&apos;t even run. Writing...</description><pubDate>Tue, 19 Sep 2023 18:21:06 GMT</pubDate><category>Tweets</category></item><item><title>“We don’t need to do code reviews</title><link>https://coryhouse.dev/2023/09/20/tweet-1704331141895819553/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/20/tweet-1704331141895819553/</guid><description>“We don’t need to do code reviews. We write tests”. How do we assure the code is well structured and readable? How do we assure the UX is good? How...</description><pubDate>Wed, 20 Sep 2023 03:06:23 GMT</pubDate><category>Tweets</category></item><item><title>CSS Modules and CSS-in-JS encourage me to think selfishly</title><link>https://coryhouse.dev/2023/09/20/tweet-1704493063555481705/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/20/tweet-1704493063555481705/</guid><description>CSS Modules and CSS-in-JS encourage me to think selfishly. I write separate styles for each component I create. I&apos;m not forced to reuse styles. Thi...</description><pubDate>Wed, 20 Sep 2023 13:49:48 GMT</pubDate><category>Tweets</category></item><item><title>Pair programming doesn’t typically replace code reviews for one simple...</title><link>https://coryhouse.dev/2023/09/21/tweet-1704865115080646925/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/21/tweet-1704865115080646925/</guid><description>Pair programming doesn’t typically replace code reviews for one simple reason: Most teams don’t pair all day. Why? Because pairing is useful, but i...</description><pubDate>Thu, 21 Sep 2023 14:28:12 GMT</pubDate><category>Tweets</category></item><item><title>📢 If you hate writing software, you may just be in the wrong role</title><link>https://coryhouse.dev/2023/09/21/tweet-1704948095258157397/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/21/tweet-1704948095258157397/</guid><description>📢 If you hate writing software, you may just be in the wrong role. I’ve worked with a LOT of different companies and teams over 20+ years. Typical...</description><pubDate>Thu, 21 Sep 2023 19:57:56 GMT</pubDate><category>Tweets</category></item><item><title>My M1 laptop is silent</title><link>https://coryhouse.dev/2023/09/22/tweet-1705042889099678168/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/22/tweet-1705042889099678168/</guid><description>My M1 laptop is silent. I don&apos;t think I&apos;ve ever heard the fans come on. It&apos;s wonderful. I can&apos;t imagine going back to the distraction of whirring f...</description><pubDate>Fri, 22 Sep 2023 02:14:37 GMT</pubDate><category>Tweets</category></item><item><title>⚛️React performance tip: If your default state is expensive, put it in a...</title><link>https://coryhouse.dev/2023/09/22/tweet-1705207175923044366/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/22/tweet-1705207175923044366/</guid><description>⚛️React performance tip: If your default state is expensive, put it in a function. Here’s why: If the default logic is inlined, it&apos;s needlessly exe...</description><pubDate>Fri, 22 Sep 2023 13:07:26 GMT</pubDate><category>Tweets</category></item><item><title>Pair programming is great</title><link>https://coryhouse.dev/2023/09/22/tweet-1705297560372498826/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/22/tweet-1705297560372498826/</guid><description>Pair programming is great. It can increase quality. It fosters creativity and collaboration. It helps catch issues early. It&apos;s a great fit for hard...</description><pubDate>Fri, 22 Sep 2023 19:06:35 GMT</pubDate><category>Tweets</category></item><item><title>In late 2022, I joined a struggling team as a part-time consultant</title><link>https://coryhouse.dev/2023/09/23/tweet-1705584147354231204/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/23/tweet-1705584147354231204/</guid><description>In late 2022, I joined a struggling team as a part-time consultant. Here’s how we turned things around: ✅ Wrote simple @playwrightweb tests to assu...</description><pubDate>Sat, 23 Sep 2023 14:05:23 GMT</pubDate><category>Tweets</category></item><item><title>Just hit 100k followers 🤯 Here are 10 things Twitter taught me about...</title><link>https://coryhouse.dev/2023/09/24/tweet-1705915239407981027/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/24/tweet-1705915239407981027/</guid><description>Just hit 100k followers 🤯 Here are 10 things Twitter taught me about programming and life. 1. Focus on value for others and people will listen. Mo...</description><pubDate>Sun, 24 Sep 2023 12:01:02 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You want to assure your web app isn’t logging messages to the...</title><link>https://coryhouse.dev/2023/09/25/tweet-1706287362366484854/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/25/tweet-1706287362366484854/</guid><description>Problem: You want to assure your web app isn’t logging messages to the console, and enforce it on CI. Solution: Use Playwright. With these 3 lines,...</description><pubDate>Mon, 25 Sep 2023 12:39:43 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You want to easily update outdated npm packages</title><link>https://coryhouse.dev/2023/09/25/tweet-1706417183327215974/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/25/tweet-1706417183327215974/</guid><description>Problem: You want to easily update outdated npm packages. Solution: Use VS Code&apos;s Version Lens extension. It displays a colorful icon next to each...</description><pubDate>Mon, 25 Sep 2023 21:15:34 GMT</pubDate><category>Tweets</category></item><item><title>Many programming practices have a sweet spot</title><link>https://coryhouse.dev/2023/09/27/tweet-1707015963965538789/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/27/tweet-1707015963965538789/</guid><description>Many programming practices have a sweet spot. No types vs 100% perfect types. No tests vs 100% code coverage. No pair programming vs 100% pair prog...</description><pubDate>Wed, 27 Sep 2023 12:54:55 GMT</pubDate><category>Tweets</category></item><item><title>I rarely need to do React performance optimizations</title><link>https://coryhouse.dev/2023/09/28/tweet-1707358107532210193/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/28/tweet-1707358107532210193/</guid><description>I rarely need to do React performance optimizations. But we have a page with 5 big tables and a summary bar. When one table changes, everything ren...</description><pubDate>Thu, 28 Sep 2023 11:34:28 GMT</pubDate><category>Tweets</category></item><item><title>React performance in one tweet: Declare state as local as possible</title><link>https://coryhouse.dev/2023/09/28/tweet-1707436631618199884/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/28/tweet-1707436631618199884/</guid><description>React performance in one tweet: Declare state as local as possible. If state is only used by part of the JSX: 1. Split the component 2. Move the st...</description><pubDate>Thu, 28 Sep 2023 16:46:30 GMT</pubDate><category>Tweets</category></item><item><title>Two related software development skills: 1</title><link>https://coryhouse.dev/2023/09/29/tweet-1707735604190904526/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/29/tweet-1707735604190904526/</guid><description>Two related software development skills: 1. Decomposition 2. Organization How we use these skills: ✅ Break tasks down into small, focused pieces. ✅...</description><pubDate>Fri, 29 Sep 2023 12:34:30 GMT</pubDate><category>Tweets</category></item><item><title>Often a useEffect can be replaced by calling code when an event occurs</title><link>https://coryhouse.dev/2023/09/29/tweet-1707783951253717014/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/29/tweet-1707783951253717014/</guid><description>Often a useEffect can be replaced by calling code when an event occurs. So, when I see a useEffect, I ask: Could this code be triggered by an event...</description><pubDate>Fri, 29 Sep 2023 15:46:37 GMT</pubDate><category>Tweets</category></item><item><title>Just reviewed a web page making 55 fetch calls totaling 570k of JSON</title><link>https://coryhouse.dev/2023/09/30/tweet-1707936254929555639/</link><guid isPermaLink="true">https://coryhouse.dev/2023/09/30/tweet-1707936254929555639/</guid><description>Just reviewed a web page making 55 fetch calls totaling 570k of JSON. This one page is 1.6 MB. Why 55 calls? Because each database table is exposed...</description><pubDate>Sat, 30 Sep 2023 01:51:49 GMT</pubDate><category>Tweets</category></item><item><title>Simple JS developer productivity tip: Fail npm start if the expected port...</title><link>https://coryhouse.dev/2023/10/01/tweet-1708505026539213096/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/01/tweet-1708505026539213096/</guid><description>Simple JS developer productivity tip: Fail npm start if the expected port isn’t available. Here’s why: If the port isn’t available, the app is prob...</description><pubDate>Sun, 01 Oct 2023 15:31:55 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m auditing an app that&apos;s using Tailwind...with CSS modules</title><link>https://coryhouse.dev/2023/10/02/tweet-1708653721201029518/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/02/tweet-1708653721201029518/</guid><description>I&apos;m auditing an app that&apos;s using Tailwind...with CSS modules. 😬 Each component&apos;s styles are declared in a module.css file. Tailwind styles are app...</description><pubDate>Mon, 02 Oct 2023 01:22:47 GMT</pubDate><category>Tweets</category></item><item><title>A common mistake: &quot;Let&apos;s abstract this in case we want to replace it later.&quot;...</title><link>https://coryhouse.dev/2023/10/02/tweet-1708829546319942121/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/02/tweet-1708829546319942121/</guid><description>A common mistake: &quot;Let&apos;s abstract this in case we want to replace it later.&quot; Examples: 🚫 &quot;Let&apos;s abstract React in case we switch JS frameworks.&quot; �...</description><pubDate>Mon, 02 Oct 2023 13:01:27 GMT</pubDate><category>Tweets</category></item><item><title>Just audited a codebase with a REST API that returns this: { table1: []...</title><link>https://coryhouse.dev/2023/10/03/tweet-1709199282878693837/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/03/tweet-1709199282878693837/</guid><description>Just audited a codebase with a REST API that returns this: { table1: [] table2: [] main: [] } Don’t couple your API to UI elements.</description><pubDate>Tue, 03 Oct 2023 13:30:39 GMT</pubDate><category>Tweets</category></item><item><title>Some things that can’t be fully tested via automation</title><link>https://coryhouse.dev/2023/10/04/tweet-1709578074210111937/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/04/tweet-1709578074210111937/</guid><description>Some things that can’t be fully tested via automation. ✅ Is the code readable? ✅ Are there reuse opportunities? ✅ How’s the user experience? ✅ Is t...</description><pubDate>Wed, 04 Oct 2023 14:35:49 GMT</pubDate><category>Tweets</category></item><item><title>The 5 keys to successful software: 1</title><link>https://coryhouse.dev/2023/10/05/tweet-1709915446672081190/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/05/tweet-1709915446672081190/</guid><description>The 5 keys to successful software: 1. Well built 2. Well marketed 3. Well supported 4. Well documented 5. Solves the right problem 5 is the key. 1-...</description><pubDate>Thu, 05 Oct 2023 12:56:25 GMT</pubDate><category>Tweets</category></item><item><title>Hot take: 🌶️ If I need data “power tools” like Lodash, Underscore, Ramda,...</title><link>https://coryhouse.dev/2023/10/05/tweet-1709963341714661646/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/05/tweet-1709963341714661646/</guid><description>Hot take: 🌶️ If I need data “power tools” like Lodash, Underscore, Ramda, Remeda in my web UI, I should probably improve my backend APIs instead....</description><pubDate>Thu, 05 Oct 2023 16:06:44 GMT</pubDate><category>Tweets</category></item><item><title>One of my favorite things about owning a Tesla: The phone integration</title><link>https://coryhouse.dev/2023/10/05/tweet-1710060586128511336/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/05/tweet-1710060586128511336/</guid><description>One of my favorite things about owning a Tesla: The phone integration. My phone is my key, so I don’t think about keys at all. I walk up and it unl...</description><pubDate>Thu, 05 Oct 2023 22:33:09 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m a big believer in code reviews</title><link>https://coryhouse.dev/2023/10/07/tweet-1710628058418290982/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/07/tweet-1710628058418290982/</guid><description>I&apos;m a big believer in code reviews. But I&apos;ve found review *after* merge can work well in high trust environments. Benefits: ✅ Code is merged quickl...</description><pubDate>Sat, 07 Oct 2023 12:08:05 GMT</pubDate><category>Tweets</category></item><item><title>Problem: When a user clicks a button the response may be slow</title><link>https://coryhouse.dev/2023/10/07/tweet-1710698679735062741/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/07/tweet-1710698679735062741/</guid><description>Problem: When a user clicks a button the response may be slow. Solution: 1. Display a loading indicator 2. Set aria-disabled=&quot;true&quot; on the button (...</description><pubDate>Sat, 07 Oct 2023 16:48:43 GMT</pubDate><category>Tweets</category></item><item><title>I’m reviewing a JavaScript code base with JS Doc comments like this above...</title><link>https://coryhouse.dev/2023/10/08/tweet-1711057446767075339/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/08/tweet-1711057446767075339/</guid><description>I’m reviewing a JavaScript code base with JS Doc comments like this above every function and component: I don&apos;t recommend this. TypeScript provides...</description><pubDate>Sun, 08 Oct 2023 16:34:19 GMT</pubDate><category>Tweets</category></item><item><title>In React, I group related state into one useState</title><link>https://coryhouse.dev/2023/10/09/tweet-1711362678696874369/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/09/tweet-1711362678696874369/</guid><description>In React, I group related state into one useState. Here’s why: ✅Requires less code. ✅Makes it easy to send to the server. ✅Can create a single onCh...</description><pubDate>Mon, 09 Oct 2023 12:47:12 GMT</pubDate><category>Tweets</category></item><item><title>Another reason it&apos;s important to write tests: locale</title><link>https://coryhouse.dev/2023/10/09/tweet-1711494870970282057/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/09/tweet-1711494870970282057/</guid><description>Another reason it&apos;s important to write tests: locale. A dev in another country just submitted a PR that sorts numbers. The sort works for him, but...</description><pubDate>Mon, 09 Oct 2023 21:32:29 GMT</pubDate><category>Tweets</category></item><item><title>Concern: “Code reviews slow us down”</title><link>https://coryhouse.dev/2023/10/10/tweet-1711761815267393640/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/10/tweet-1711761815267393640/</guid><description>Concern: “Code reviews slow us down”. Solution: Open a ticket for issues that can be resolved in a separate pull request. Example: “I opened ticket...</description><pubDate>Tue, 10 Oct 2023 15:13:14 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Your project may be using deprecated features</title><link>https://coryhouse.dev/2023/10/10/tweet-1711841308015284679/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/10/tweet-1711841308015284679/</guid><description>Problem: Your project may be using deprecated features. Solution: eslint-plugin-deprecation I just learned about this plugin. It caught a number of...</description><pubDate>Tue, 10 Oct 2023 20:29:06 GMT</pubDate><category>Tweets</category></item><item><title>Problem: I use &quot;test.only&quot; to run a single test quickly</title><link>https://coryhouse.dev/2023/10/11/tweet-1712088141874553204/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/11/tweet-1712088141874553204/</guid><description>Problem: I use &quot;test.only&quot; to run a single test quickly. But if I forget to remove the &quot;only&quot; before committing, no other tests will run on CI. 😬...</description><pubDate>Wed, 11 Oct 2023 12:49:56 GMT</pubDate><category>Tweets</category></item><item><title>Atomic design is great</title><link>https://coryhouse.dev/2023/10/12/tweet-1712451669416439933/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/12/tweet-1712451669416439933/</guid><description>Atomic design is great. It provides useful terminology for creating and composing reusable components. But sometimes teams organize their reusable...</description><pubDate>Thu, 12 Oct 2023 12:54:28 GMT</pubDate><category>Tweets</category></item><item><title>Just used the new &quot;Presenter Overlay&quot; feature on MacOS Sonoma to create a...</title><link>https://coryhouse.dev/2023/10/13/tweet-1712859248667836417/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/13/tweet-1712859248667836417/</guid><description>Just used the new &quot;Presenter Overlay&quot; feature on MacOS Sonoma to create a short teaser for my &quot;React State: 10 Years of Lessons Learned&quot; talk. I do...</description><pubDate>Fri, 13 Oct 2023 15:54:02 GMT</pubDate><category>Tweets</category></item><item><title>Wow, this was more lopsided than I expected</title><link>https://coryhouse.dev/2023/10/14/tweet-1713026350804578765/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/14/tweet-1713026350804578765/</guid><description>Wow, this was more lopsided than I expected. Out of 3,000 devs, 94% seldom or never use useReducer. And about half never use it. useReducer is grea...</description><pubDate>Sat, 14 Oct 2023 02:58:03 GMT</pubDate><category>Tweets</category></item><item><title>I love cars and I love driving</title><link>https://coryhouse.dev/2023/10/14/tweet-1713204740471857587/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/14/tweet-1713204740471857587/</guid><description>I love cars and I love driving. I enjoy reading and watching car reviews - even for cars I’d never buy. Cars are awesome. But a city that prioritiz...</description><pubDate>Sat, 14 Oct 2023 14:46:54 GMT</pubDate><category>Tweets</category></item><item><title>When I see an optional React component prop in a code review, I dig deeper: 1</title><link>https://coryhouse.dev/2023/10/15/tweet-1713552848309350836/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/15/tweet-1713552848309350836/</guid><description>When I see an optional React component prop in a code review, I dig deeper: 1. What happens when the prop is omitted? Is there a default? 2. Is it...</description><pubDate>Sun, 15 Oct 2023 13:50:09 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Sometimes people export internals merely to support unit testing</title><link>https://coryhouse.dev/2023/10/16/tweet-1713975785273303286/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/16/tweet-1713975785273303286/</guid><description>Problem: Sometimes people export internals merely to support unit testing. But, it&apos;s generally recommended to only test the public interface. And s...</description><pubDate>Mon, 16 Oct 2023 17:50:45 GMT</pubDate><category>Tweets</category></item><item><title>One of the most satisfying discoveries as a React dev: Needless prop drilling</title><link>https://coryhouse.dev/2023/10/17/tweet-1714260226621297107/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/17/tweet-1714260226621297107/</guid><description>One of the most satisfying discoveries as a React dev: Needless prop drilling. Me: &quot;Hrmm, where is this prop coming from?&quot; I trace up through 5 lev...</description><pubDate>Tue, 17 Oct 2023 12:41:02 GMT</pubDate><category>Tweets</category></item><item><title>One of the hardest parts of being a developer is picking my battles</title><link>https://coryhouse.dev/2023/10/17/tweet-1714307372057821206/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/17/tweet-1714307372057821206/</guid><description>One of the hardest parts of being a developer is picking my battles. 🚫 The team picks an “inferior” tech 🚫 The boss decides to double the team si...</description><pubDate>Tue, 17 Oct 2023 15:48:22 GMT</pubDate><category>Tweets</category></item><item><title>How a developer shows empathy: Have a sense of urgency in reviewing pull...</title><link>https://coryhouse.dev/2023/10/18/tweet-1714447975752052741/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/18/tweet-1714447975752052741/</guid><description>How a developer shows empathy: Have a sense of urgency in reviewing pull requests. Write code that&apos;s easy for others to understand. Offer to help w...</description><pubDate>Wed, 18 Oct 2023 01:07:04 GMT</pubDate><category>Tweets</category></item><item><title>You’d be shocked how complex a web form can be</title><link>https://coryhouse.dev/2023/10/18/tweet-1714660338828714057/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/18/tweet-1714660338828714057/</guid><description>You’d be shocked how complex a web form can be. I’m looking at a simple web form with 5 fields that uses: useState useEffect Redux React Query Reac...</description><pubDate>Wed, 18 Oct 2023 15:10:56 GMT</pubDate><category>Tweets</category></item><item><title>Can someone show me a an HTML form that uses the browser’s native validation...</title><link>https://coryhouse.dev/2023/10/19/tweet-1714960732373049682/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/19/tweet-1714960732373049682/</guid><description>Can someone show me a an HTML form that uses the browser’s native validation APIs and: 1. Has custom styles for the native error messages so they l...</description><pubDate>Thu, 19 Oct 2023 11:04:35 GMT</pubDate><category>Tweets</category></item><item><title>Problem: If a function accepts multiple parameters of the same type, we may...</title><link>https://coryhouse.dev/2023/10/19/tweet-1715052861417980207/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/19/tweet-1715052861417980207/</guid><description>Problem: If a function accepts multiple parameters of the same type, we may accidentally pass arguments in the wrong order. Types can’t protect us....</description><pubDate>Thu, 19 Oct 2023 17:10:40 GMT</pubDate><category>Tweets</category></item><item><title>Poll: Which boolean variable name do you prefer</title><link>https://coryhouse.dev/2023/10/21/tweet-1715765925884924180/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/21/tweet-1715765925884924180/</guid><description>Poll: Which boolean variable name do you prefer? showX isXVisible The former is shorter, but sounds like a function. The latter is clearly a bool,...</description><pubDate>Sat, 21 Oct 2023 16:24:08 GMT</pubDate><category>Tweets</category></item><item><title>Avoid a single meeting on a problem</title><link>https://coryhouse.dev/2023/10/22/tweet-1716111352761053317/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/22/tweet-1716111352761053317/</guid><description>Avoid a single meeting on a problem. Instead, have two separate meetings: Meeting 1 - Define the problem. Meeting 2 - Decide how to fix the problem...</description><pubDate>Sun, 22 Oct 2023 15:16:44 GMT</pubDate><category>Tweets</category></item><item><title>It’s common to store the active tab like this: activeTabIndex = 0; But this...</title><link>https://coryhouse.dev/2023/10/23/tweet-1716442630651830509/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/23/tweet-1716442630651830509/</guid><description>It’s common to store the active tab like this: activeTabIndex = 0; But this has downsides: 🚫 What tab does each index represent? 🚫 TypeScript can...</description><pubDate>Mon, 23 Oct 2023 13:13:07 GMT</pubDate><category>Tweets</category></item><item><title>A simple sign that a web app isn&apos;t using URLs effectively: Tickets can&apos;t...</title><link>https://coryhouse.dev/2023/10/25/tweet-1717152910713278544/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/25/tweet-1717152910713278544/</guid><description>A simple sign that a web app isn&apos;t using URLs effectively: Tickets can&apos;t merely specify a URL. Instead, they have to say 🚫 &quot;Click on this tab&quot; 🚫...</description><pubDate>Wed, 25 Oct 2023 12:15:31 GMT</pubDate><category>Tweets</category></item><item><title>Habit: When someone provides a detailed and helpful explanation in a pull...</title><link>https://coryhouse.dev/2023/10/25/tweet-1717250760239366587/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/25/tweet-1717250760239366587/</guid><description>Habit: When someone provides a detailed and helpful explanation in a pull request, I often ask them to paste it into the code as a comment. If it&apos;s...</description><pubDate>Wed, 25 Oct 2023 18:44:20 GMT</pubDate><category>Tweets</category></item><item><title>Just presented “Creating Reusable Components…That Are Actually Reusable” at...</title><link>https://coryhouse.dev/2023/10/25/tweet-1717286816443764982/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/25/tweet-1717286816443764982/</guid><description>Just presented “Creating Reusable Components…That Are Actually Reusable” at @connect_js. Here’s the slides! https://www.dropbox.com/scl/fi/vrtxhl4k...</description><pubDate>Wed, 25 Oct 2023 21:07:37 GMT</pubDate><category>Tweets</category></item><item><title>Just learned about AutoAnimate</title><link>https://coryhouse.dev/2023/10/26/tweet-1717539644227674338/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/26/tweet-1717539644227674338/</guid><description>Just learned about AutoAnimate. Add motion to your app with one line of code. Works with all the popular JS frameworks too. Awesome work @jpschroed...</description><pubDate>Thu, 26 Oct 2023 13:52:16 GMT</pubDate><category>Tweets</category></item><item><title>The smaller the PR, the faster it gets merged</title><link>https://coryhouse.dev/2023/10/26/tweet-1717673589032321142/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/26/tweet-1717673589032321142/</guid><description>The smaller the PR, the faster it gets merged. ✅ Lower risk ✅ Less to review ✅ Easier to understand</description><pubDate>Thu, 26 Oct 2023 22:44:31 GMT</pubDate><category>Tweets</category></item><item><title>Problem: It’s easy to accidentally name a boolean in a way that makes it...</title><link>https://coryhouse.dev/2023/10/27/tweet-1717884438074306968/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/27/tweet-1717884438074306968/</guid><description>Problem: It’s easy to accidentally name a boolean in a way that makes it sound like a function. Example: showDialog. Instead, prefer isDialogVisibl...</description><pubDate>Fri, 27 Oct 2023 12:42:21 GMT</pubDate><category>Tweets</category></item><item><title>So many bad takes on this photo</title><link>https://coryhouse.dev/2023/10/27/tweet-1717908708980642277/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/27/tweet-1717908708980642277/</guid><description>So many bad takes on this photo. SQL injection is protected via the “sql” call. If you don’t like inline SQL, you can abstract it by calling a func...</description><pubDate>Fri, 27 Oct 2023 14:18:48 GMT</pubDate><category>Tweets</category></item><item><title>Locality of Behavior (LOB) Principle: The behaviour of a unit of code should...</title><link>https://coryhouse.dev/2023/10/28/tweet-1718301197159776690/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/28/tweet-1718301197159776690/</guid><description>Locality of Behavior (LOB) Principle: The behaviour of a unit of code should be as obvious as possible by looking only at that unit of code. Locali...</description><pubDate>Sat, 28 Oct 2023 16:18:24 GMT</pubDate><category>Tweets</category></item><item><title>I work with multiple companies every week</title><link>https://coryhouse.dev/2023/10/29/tweet-1718625338031218993/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/29/tweet-1718625338031218993/</guid><description>I work with multiple companies every week. The teams I enjoy most: ✅ I work on my own laptop. ✅ The people I work with are good communicators. ✅ Ev...</description><pubDate>Sun, 29 Oct 2023 13:46:25 GMT</pubDate><category>Tweets</category></item><item><title>Common React mistake: Buried default 🚫 Don’t bury the default inside the...</title><link>https://coryhouse.dev/2023/10/30/tweet-1718977701447364955/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/30/tweet-1718977701447364955/</guid><description>Common React mistake: Buried default 🚫 Don’t bury the default inside the component. ✅ Make the default part of the public API.</description><pubDate>Mon, 30 Oct 2023 13:06:35 GMT</pubDate><category>Tweets</category></item><item><title>I just read this variable name in a code review:...</title><link>https://coryhouse.dev/2023/10/30/tweet-1719007982019559476/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/30/tweet-1719007982019559476/</guid><description>I just read this variable name in a code review: startLoadTabIsActiveAndHasNoErrorsButEndLoadTabHasErrors It&apos;s long, but I like it. I prefer descri...</description><pubDate>Mon, 30 Oct 2023 15:06:55 GMT</pubDate><category>Tweets</category></item><item><title>I’m reviewing a plain JS code base</title><link>https://coryhouse.dev/2023/10/31/tweet-1719394482016112853/</link><guid isPermaLink="true">https://coryhouse.dev/2023/10/31/tweet-1719394482016112853/</guid><description>I’m reviewing a plain JS code base. It contains over 1,000 uses of optional chaining: “?.” Why? Because they don’t feel they can trust the properti...</description><pubDate>Tue, 31 Oct 2023 16:42:43 GMT</pubDate><category>Tweets</category></item><item><title>&quot;This is a good suggestion, but it&apos;s outside the scope of this PR</title><link>https://coryhouse.dev/2023/11/01/tweet-1719680424153055570/</link><guid isPermaLink="true">https://coryhouse.dev/2023/11/01/tweet-1719680424153055570/</guid><description>&quot;This is a good suggestion, but it&apos;s outside the scope of this PR. So I opened ticket 123 to address it.&quot; This is a wonderful PR response.</description><pubDate>Wed, 01 Nov 2023 11:38:57 GMT</pubDate><category>Tweets</category></item><item><title>A recipe for frustrating developers: 🚫 Require a slow VPN or slow remote...</title><link>https://coryhouse.dev/2023/11/03/tweet-1720439588219498526/</link><guid isPermaLink="true">https://coryhouse.dev/2023/11/03/tweet-1720439588219498526/</guid><description>A recipe for frustrating developers: 🚫 Require a slow VPN or slow remote virtual machine to work. 🚫 Forbid changing most things. We must accept p...</description><pubDate>Fri, 03 Nov 2023 13:55:36 GMT</pubDate><category>Tweets</category></item><item><title>The key difference between @nextjs and @remix_run: Next is a React framework</title><link>https://coryhouse.dev/2023/11/04/tweet-1720823331992039536/</link><guid isPermaLink="true">https://coryhouse.dev/2023/11/04/tweet-1720823331992039536/</guid><description>The key difference between @nextjs and @remix_run: Next is a React framework. Remix is a framework that happens to use React. Next embraces React f...</description><pubDate>Sat, 04 Nov 2023 15:20:28 GMT</pubDate><category>Tweets</category></item><item><title>Why I&apos;m excited about React Server Components (RSC): 1</title><link>https://coryhouse.dev/2023/11/05/tweet-1721150341037674651/</link><guid isPermaLink="true">https://coryhouse.dev/2023/11/05/tweet-1721150341037674651/</guid><description>Why I&apos;m excited about React Server Components (RSC): 1. Smaller JS bundle (Server components add zero K to the bundle) 2. Performance. Fetching sta...</description><pubDate>Sun, 05 Nov 2023 12:59:53 GMT</pubDate><category>Tweets</category></item><item><title>Here’s why React Server Components (RSC) are a big performance win: 1</title><link>https://coryhouse.dev/2023/11/06/tweet-1721525414286295483/</link><guid isPermaLink="true">https://coryhouse.dev/2023/11/06/tweet-1721525414286295483/</guid><description>Here’s why React Server Components (RSC) are a big performance win: 1. RSC starts fetching sooner - the moment the request is received. Client comp...</description><pubDate>Mon, 06 Nov 2023 13:50:17 GMT</pubDate><category>Tweets</category></item><item><title>3 parties that should have design input: 1</title><link>https://coryhouse.dev/2023/11/06/tweet-1721605186039304382/</link><guid isPermaLink="true">https://coryhouse.dev/2023/11/06/tweet-1721605186039304382/</guid><description>3 parties that should have design input: 1. The designer (assures the design is usable, consistent, aesthetically pleasing, etc) 2. The product own...</description><pubDate>Mon, 06 Nov 2023 19:07:16 GMT</pubDate><category>Tweets</category></item><item><title>Tests are useful, but they’re not automatically a win</title><link>https://coryhouse.dev/2023/11/07/tweet-1721897352855011722/</link><guid isPermaLink="true">https://coryhouse.dev/2023/11/07/tweet-1721897352855011722/</guid><description>Tests are useful, but they’re not automatically a win. 🚫 Poorly-written, slow, flakey tests hinder development and waste time. ✅ Well-written, fas...</description><pubDate>Tue, 07 Nov 2023 14:28:14 GMT</pubDate><category>Tweets</category></item><item><title>This talk is excellent</title><link>https://coryhouse.dev/2023/11/09/tweet-1722416603508207929/</link><guid isPermaLink="true">https://coryhouse.dev/2023/11/09/tweet-1722416603508207929/</guid><description>This talk is excellent. A nice history lesson on why static typing had a comeback and is likely to be the most popular paradigm for the future. “Wh...</description><pubDate>Thu, 09 Nov 2023 00:51:33 GMT</pubDate><category>Tweets</category></item><item><title>React in 2023 is like the Honda Accord</title><link>https://coryhouse.dev/2023/11/09/tweet-1722634734080033138/</link><guid isPermaLink="true">https://coryhouse.dev/2023/11/09/tweet-1722634734080033138/</guid><description>React in 2023 is like the Honda Accord. ✅ Proven. ✅ Popular. ✅ Flexible. ✅ Reliable. ✅ Well documented. ✅ Easy to find related components. ✅ Easy t...</description><pubDate>Thu, 09 Nov 2023 15:18:20 GMT</pubDate><category>Tweets</category></item><item><title>When working in @tan_stack React query, I use setQueryData instead of...</title><link>https://coryhouse.dev/2023/11/09/tweet-1722718321349464424/</link><guid isPermaLink="true">https://coryhouse.dev/2023/11/09/tweet-1722718321349464424/</guid><description>When working in @tan_stack React query, I use setQueryData instead of invalidateQueries when possible. Here&apos;s why: setQueryData instantly updates t...</description><pubDate>Thu, 09 Nov 2023 20:50:29 GMT</pubDate><category>Tweets</category></item><item><title>“I don’t have time to exercise” is counter-productive</title><link>https://coryhouse.dev/2023/11/10/tweet-1723020410248134751/</link><guid isPermaLink="true">https://coryhouse.dev/2023/11/10/tweet-1723020410248134751/</guid><description>“I don’t have time to exercise” is counter-productive. Exercise is fuel for motivation and focus. So, exercise improves my per hour output. My rule...</description><pubDate>Fri, 10 Nov 2023 16:50:52 GMT</pubDate><category>Tweets</category></item><item><title>GitHub CoPilot saves expensive developer time by purchasing cheap AI time</title><link>https://coryhouse.dev/2023/11/10/tweet-1723092968343535670/</link><guid isPermaLink="true">https://coryhouse.dev/2023/11/10/tweet-1723092968343535670/</guid><description>GitHub CoPilot saves expensive developer time by purchasing cheap AI time. So, if a company won&apos;t pay for GitHub CoPilot, they either don&apos;t realize...</description><pubDate>Fri, 10 Nov 2023 21:39:11 GMT</pubDate><category>Tweets</category></item><item><title>I often group related props into an object</title><link>https://coryhouse.dev/2023/11/12/tweet-1723706241048809898/</link><guid isPermaLink="true">https://coryhouse.dev/2023/11/12/tweet-1723706241048809898/</guid><description>I often group related props into an object. Advantages: ✅ Less code, so easier to read ✅ Clarifies the relationship between related fields ✅ Makes...</description><pubDate>Sun, 12 Nov 2023 14:16:07 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;ve finally realized why it&apos;s hard for me to get into watching pro sports:...</title><link>https://coryhouse.dev/2023/11/12/tweet-1723824308286353553/</link><guid isPermaLink="true">https://coryhouse.dev/2023/11/12/tweet-1723824308286353553/</guid><description>I&apos;ve finally realized why it&apos;s hard for me to get into watching pro sports: It feels like I&apos;m watching other people live their life. I&apos;d rather be...</description><pubDate>Sun, 12 Nov 2023 22:05:16 GMT</pubDate><category>Tweets</category></item><item><title>How I use React query: 1</title><link>https://coryhouse.dev/2023/11/13/tweet-1724066962433528210/</link><guid isPermaLink="true">https://coryhouse.dev/2023/11/13/tweet-1724066962433528210/</guid><description>How I use React query: 1. Create custom hooks that wrap related useQuery and useMutation calls. 2. Inline queryFn and mutationFn args. This enforce...</description><pubDate>Mon, 13 Nov 2023 14:09:30 GMT</pubDate><category>Tweets</category></item><item><title>Problem: If your React app uses providers, you may have to repeat their...</title><link>https://coryhouse.dev/2023/11/14/tweet-1724418558006907194/</link><guid isPermaLink="true">https://coryhouse.dev/2023/11/14/tweet-1724418558006907194/</guid><description>Problem: If your React app uses providers, you may have to repeat their config in multiple spots: 1. The app&apos;s root 2. Storybook 3. Tests Solution:...</description><pubDate>Tue, 14 Nov 2023 13:26:37 GMT</pubDate><category>Tweets</category></item><item><title>I’ve found React.memo usage should be rare</title><link>https://coryhouse.dev/2023/11/15/tweet-1724797729803833601/</link><guid isPermaLink="true">https://coryhouse.dev/2023/11/15/tweet-1724797729803833601/</guid><description>I’ve found React.memo usage should be rare. If it’s common, I ask: 1. Is state is too high? 2. Are components properly decomposed? Could we move st...</description><pubDate>Wed, 15 Nov 2023 14:33:18 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;ve worked with teams that were scarred by their previous automated testing...</title><link>https://coryhouse.dev/2023/11/17/tweet-1725515074721173637/</link><guid isPermaLink="true">https://coryhouse.dev/2023/11/17/tweet-1725515074721173637/</guid><description>I&apos;ve worked with teams that were scarred by their previous automated testing experience. &quot;Tests were a hinderance. We wasted lots of time on slow,...</description><pubDate>Fri, 17 Nov 2023 14:03:46 GMT</pubDate><category>Tweets</category></item><item><title>Downward spiral: 1</title><link>https://coryhouse.dev/2023/11/18/tweet-1725871912373334286/</link><guid isPermaLink="true">https://coryhouse.dev/2023/11/18/tweet-1725871912373334286/</guid><description>Downward spiral: 1. Releases often fail because the team doesn’t have automated tests and deployments, weak code reviews, poor communication, and o...</description><pubDate>Sat, 18 Nov 2023 13:41:43 GMT</pubDate><category>Tweets</category></item><item><title>A minor tweak I enjoy: I put the scripts section near the top of package.json</title><link>https://coryhouse.dev/2023/11/18/tweet-1725893476313870834/</link><guid isPermaLink="true">https://coryhouse.dev/2023/11/18/tweet-1725893476313870834/</guid><description>A minor tweak I enjoy: I put the scripts section near the top of package.json. Why? Because it’s the thing I tend to read, change, and reference th...</description><pubDate>Sat, 18 Nov 2023 15:07:24 GMT</pubDate><category>Tweets</category></item><item><title>In a code review, what&apos;s an example of a &quot;nitpick&quot;</title><link>https://coryhouse.dev/2023/11/18/tweet-1725955053545033982/</link><guid isPermaLink="true">https://coryhouse.dev/2023/11/18/tweet-1725955053545033982/</guid><description>In a code review, what&apos;s an example of a &quot;nitpick&quot;? I struggle to think of an example because most the &quot;nitpick&quot; level stuff is already checked via...</description><pubDate>Sat, 18 Nov 2023 19:12:06 GMT</pubDate><category>Tweets</category></item><item><title>Why I don’t do TDD often: TDD commits me to an API before I know what API I want</title><link>https://coryhouse.dev/2023/11/20/tweet-1726698620676948056/</link><guid isPermaLink="true">https://coryhouse.dev/2023/11/20/tweet-1726698620676948056/</guid><description>Why I don’t do TDD often: TDD commits me to an API before I know what API I want. At first, I’m just iterating. Once I like the API, I add tests.</description><pubDate>Mon, 20 Nov 2023 20:26:46 GMT</pubDate><category>Tweets</category></item><item><title>Problem: If a user experiences a client-side JavaScript error, does your...</title><link>https://coryhouse.dev/2023/11/22/tweet-1727334681115578739/</link><guid isPermaLink="true">https://coryhouse.dev/2023/11/22/tweet-1727334681115578739/</guid><description>Problem: If a user experiences a client-side JavaScript error, does your team know? Solution: Use a client-side error tracking service. (I use Trac...</description><pubDate>Wed, 22 Nov 2023 14:34:14 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You want to create a reusable React dialog that manages its own...</title><link>https://coryhouse.dev/2023/11/24/tweet-1728017444583682076/</link><guid isPermaLink="true">https://coryhouse.dev/2023/11/24/tweet-1728017444583682076/</guid><description>Problem: You want to create a reusable React dialog that manages its own visibility. Solution: Create a DialogButton component that controls the di...</description><pubDate>Fri, 24 Nov 2023 11:47:18 GMT</pubDate><category>Tweets</category></item><item><title>Confession: I’ve been writing software for over 20 years, but I often learn...</title><link>https://coryhouse.dev/2023/11/25/tweet-1728370274075054409/</link><guid isPermaLink="true">https://coryhouse.dev/2023/11/25/tweet-1728370274075054409/</guid><description>Confession: I’ve been writing software for over 20 years, but I often learn things I feel like I should have stumbled across years ago. 🚫 I spent...</description><pubDate>Sat, 25 Nov 2023 11:09:19 GMT</pubDate><category>Tweets</category></item><item><title>I love the simplicity of React&apos;s reuse model</title><link>https://coryhouse.dev/2023/11/25/tweet-1728385239611789758/</link><guid isPermaLink="true">https://coryhouse.dev/2023/11/25/tweet-1728385239611789758/</guid><description>I love the simplicity of React&apos;s reuse model. Repeating JSX? Create a component. Repeating logic? Create a hook. I can compose these simple buildin...</description><pubDate>Sat, 25 Nov 2023 12:08:47 GMT</pubDate><category>Tweets</category></item><item><title>Quick story about my lucky Thanksgiving this year</title><link>https://coryhouse.dev/2023/11/25/tweet-1728552213826380275/</link><guid isPermaLink="true">https://coryhouse.dev/2023/11/25/tweet-1728552213826380275/</guid><description>Quick story about my lucky Thanksgiving this year. Thanksgiving day, my family and I take a boat ride to an uninhabited island one hour east of Pue...</description><pubDate>Sat, 25 Nov 2023 23:12:17 GMT</pubDate><category>Tweets</category></item><item><title>Making fundamental changes on a development team is hard</title><link>https://coryhouse.dev/2023/11/26/tweet-1728768564952539377/</link><guid isPermaLink="true">https://coryhouse.dev/2023/11/26/tweet-1728768564952539377/</guid><description>Making fundamental changes on a development team is hard. How do we start testing? How do we start using types? How do we change technologies? My a...</description><pubDate>Sun, 26 Nov 2023 13:31:59 GMT</pubDate><category>Tweets</category></item><item><title>Simple rule: The more effort I put in, the more results I get out</title><link>https://coryhouse.dev/2023/11/26/tweet-1728794896595636536/</link><guid isPermaLink="true">https://coryhouse.dev/2023/11/26/tweet-1728794896595636536/</guid><description>Simple rule: The more effort I put in, the more results I get out. Examples: The more I exercise, the better my results. The more I invest in my ca...</description><pubDate>Sun, 26 Nov 2023 15:16:37 GMT</pubDate><category>Tweets</category></item><item><title>Problem: End-to-end tests are often slow and brittle</title><link>https://coryhouse.dev/2023/11/27/tweet-1729137517197132050/</link><guid isPermaLink="true">https://coryhouse.dev/2023/11/27/tweet-1729137517197132050/</guid><description>Problem: End-to-end tests are often slow and brittle. Solution: Test the UI and the backend separately, and use contract tests to assure our mocks...</description><pubDate>Mon, 27 Nov 2023 13:58:04 GMT</pubDate><category>Tweets</category></item><item><title>Problem: We need to rename a DB column, but we want to avoid a breaking change</title><link>https://coryhouse.dev/2023/11/29/tweet-1729893167812555124/</link><guid isPermaLink="true">https://coryhouse.dev/2023/11/29/tweet-1729893167812555124/</guid><description>Problem: We need to rename a DB column, but we want to avoid a breaking change. Solution: 1. Add new column (Ticket 1) 2. Update all code to refere...</description><pubDate>Wed, 29 Nov 2023 16:00:45 GMT</pubDate><category>Tweets</category></item><item><title>Coding is writing</title><link>https://coryhouse.dev/2023/11/30/tweet-1730257181960737046/</link><guid isPermaLink="true">https://coryhouse.dev/2023/11/30/tweet-1730257181960737046/</guid><description>Coding is writing. In writing, these things matter: ✅Clarity ✅Brevity ✅Spelling ✅Formatting ✅Punctuation ✅Terminology ✅Consistency ✅Grouping relate...</description><pubDate>Thu, 30 Nov 2023 16:07:13 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Our code has old patterns that we don’t want people to copy</title><link>https://coryhouse.dev/2023/12/01/tweet-1730609734107947434/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/01/tweet-1730609734107947434/</guid><description>Problem: Our code has old patterns that we don’t want people to copy. Solution: 1. Move the old code to a folder called “legacy”. 2. Tell everyone....</description><pubDate>Fri, 01 Dec 2023 15:28:08 GMT</pubDate><category>Tweets</category></item><item><title>PSA 📢: Avoid Barrels (A barrel is a file that exports code from other...</title><link>https://coryhouse.dev/2023/12/02/tweet-1730993597862780976/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/02/tweet-1730993597862780976/</guid><description>PSA 📢: Avoid Barrels (A barrel is a file that exports code from other files) Barrel benefits: ✅ Shorter import paths ✅ Support importing many file...</description><pubDate>Sat, 02 Dec 2023 16:53:28 GMT</pubDate><category>Tweets</category></item><item><title>Claim: “I need a barrel to specify the feature’s public API.” Reality: There...</title><link>https://coryhouse.dev/2023/12/03/tweet-1731321564858040735/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/03/tweet-1731321564858040735/</guid><description>Claim: “I need a barrel to specify the feature’s public API.” Reality: There are alternatives. 1. Use one file. Only export the public API. 2. Use...</description><pubDate>Sun, 03 Dec 2023 14:36:42 GMT</pubDate><category>Tweets</category></item><item><title>Code review principle: If the check can be automated, it should be automated</title><link>https://coryhouse.dev/2023/12/04/tweet-1731711793217577340/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/04/tweet-1731711793217577340/</guid><description>Code review principle: If the check can be automated, it should be automated. Examples: ✅Do tests pass? ✅Does the app build? ✅Are there spelling er...</description><pubDate>Mon, 04 Dec 2023 16:27:19 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You need to switch your app’s CSS to Tailwind</title><link>https://coryhouse.dev/2023/12/05/tweet-1732054779633819684/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/05/tweet-1732054779633819684/</guid><description>Problem: You need to switch your app’s CSS to Tailwind. Solution: Use Windy. It converts CSS into Tailwind. https://usewindy.com</description><pubDate>Tue, 05 Dec 2023 15:10:14 GMT</pubDate><category>Tweets</category></item><item><title>⚛️4 questions I ask before using useState: 1</title><link>https://coryhouse.dev/2023/12/05/tweet-1732077850247778734/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/05/tweet-1732077850247778734/</guid><description>⚛️4 questions I ask before using useState: 1. Should I store this state in the URL? 2. Can I derive the value from other state? 3. Is this state re...</description><pubDate>Tue, 05 Dec 2023 16:41:54 GMT</pubDate><category>Tweets</category></item><item><title>Import paths tell a story</title><link>https://coryhouse.dev/2023/12/06/tweet-1732436626217844780/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/06/tweet-1732436626217844780/</guid><description>Import paths tell a story. Short import paths are a good sign - It tells me related code is colocated. 👍 Stuff that can often be located near the...</description><pubDate>Wed, 06 Dec 2023 16:27:33 GMT</pubDate><category>Tweets</category></item><item><title>Problem: We need to fix a production bug, but the development branch...</title><link>https://coryhouse.dev/2023/12/07/tweet-1732770820064182527/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/07/tweet-1732770820064182527/</guid><description>Problem: We need to fix a production bug, but the development branch contains work that isn’t ready for prod. Solution: Only merge code to that can...</description><pubDate>Thu, 07 Dec 2023 14:35:31 GMT</pubDate><category>Tweets</category></item><item><title>I often see HTTP requests that forget to do one or more of these: ✅ Show...</title><link>https://coryhouse.dev/2023/12/08/tweet-1733155206613844188/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/08/tweet-1733155206613844188/</guid><description>I often see HTTP requests that forget to do one or more of these: ✅ Show loading status ✅ Display a confirmation when complete ✅ Timeout the reques...</description><pubDate>Fri, 08 Dec 2023 16:02:56 GMT</pubDate><category>Tweets</category></item><item><title>I like how React hooks centralize and encapsulate a chunk of reusable logic</title><link>https://coryhouse.dev/2023/12/08/tweet-1733216571344949484/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/08/tweet-1733216571344949484/</guid><description>I like how React hooks centralize and encapsulate a chunk of reusable logic. And I like how the hook provides a nice clear name that documents inte...</description><pubDate>Fri, 08 Dec 2023 20:06:46 GMT</pubDate><category>Tweets</category></item><item><title>Problem: JavaScript’s .sort mutates the array</title><link>https://coryhouse.dev/2023/12/09/tweet-1733312973903466978/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/09/tweet-1733312973903466978/</guid><description>Problem: JavaScript’s .sort mutates the array. Solution: Use .toSorted instead. It returns a new sorted array.</description><pubDate>Sat, 09 Dec 2023 02:29:51 GMT</pubDate><category>Tweets</category></item><item><title>When React launched in 2013, every component was a class</title><link>https://coryhouse.dev/2023/12/09/tweet-1733501369741386147/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/09/tweet-1733501369741386147/</guid><description>When React launched in 2013, every component was a class. When stateless function components arrived in 2015, I only used class components when I n...</description><pubDate>Sat, 09 Dec 2023 14:58:28 GMT</pubDate><category>Tweets</category></item><item><title>In TypeScript, the narrower the type, the more safety and clarity we have</title><link>https://coryhouse.dev/2023/12/10/tweet-1733851324138074270/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/10/tweet-1733851324138074270/</guid><description>In TypeScript, the narrower the type, the more safety and clarity we have. So if a PR widens a type, that’s a code smell. When this happens, I ask:...</description><pubDate>Sun, 10 Dec 2023 14:09:03 GMT</pubDate><category>Tweets</category></item><item><title>CSS Grid is powerful, but I honestly don&apos;t use it often because I&apos;m more...</title><link>https://coryhouse.dev/2023/12/10/tweet-1733934034470756715/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/10/tweet-1733934034470756715/</guid><description>CSS Grid is powerful, but I honestly don&apos;t use it often because I&apos;m more familiar with Flexbox. This post by @JoshWComeau does a wonderful job walk...</description><pubDate>Sun, 10 Dec 2023 19:37:43 GMT</pubDate><category>Tweets</category></item><item><title>I work with many teams who use different languages and repos for their web...</title><link>https://coryhouse.dev/2023/12/11/tweet-1734206115934597523/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/11/tweet-1734206115934597523/</guid><description>I work with many teams who use different languages and repos for their web UI and the backend. Example: 1. React UI 2. C# .NET JSON API Problem: It...</description><pubDate>Mon, 11 Dec 2023 13:38:52 GMT</pubDate><category>Tweets</category></item><item><title>Problem: URL search params are evaluated at runtime</title><link>https://coryhouse.dev/2023/12/12/tweet-1734610338010616100/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/12/tweet-1734610338010616100/</guid><description>Problem: URL search params are evaluated at runtime. So they aren&apos;t strongly typed, and they&apos;re a hassle in TypeScript. Solution: 1. Abstract reads...</description><pubDate>Tue, 12 Dec 2023 16:25:06 GMT</pubDate><category>Tweets</category></item><item><title>Problem: We need to replace an old feature with a similar new feature</title><link>https://coryhouse.dev/2023/12/13/tweet-1734975888414978374/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/13/tweet-1734975888414978374/</guid><description>Problem: We need to replace an old feature with a similar new feature. Solution: Do it in phases. PR 1: Rename the old feature to “old-x” and mark...</description><pubDate>Wed, 13 Dec 2023 16:37:40 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Optional fields are overused in TypeScript</title><link>https://coryhouse.dev/2023/12/14/tweet-1735291097704792077/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/14/tweet-1735291097704792077/</guid><description>Problem: Optional fields are overused in TypeScript. Sometimes they’re applied when they’re not even necessary. Solution: In code reviews, if the o...</description><pubDate>Thu, 14 Dec 2023 13:30:12 GMT</pubDate><category>Tweets</category></item><item><title>A recipe for tech debt: 1</title><link>https://coryhouse.dev/2023/12/15/tweet-1735673153894900212/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/15/tweet-1735673153894900212/</guid><description>A recipe for tech debt: 1. Create a giant pull request. 2. Say “It’s urgent, so I’m going to merge this now. We can fix any feedback later.”</description><pubDate>Fri, 15 Dec 2023 14:48:21 GMT</pubDate><category>Tweets</category></item><item><title>Just bought the Apple 5K Studio display The good: ✅Super bright ✅Gorgeous...</title><link>https://coryhouse.dev/2023/12/15/tweet-1735700393621942651/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/15/tweet-1735700393621942651/</guid><description>Just bought the Apple 5K Studio display The good: ✅Super bright ✅Gorgeous color ✅Very crisp text ✅I can easily split the screen when needed. ✅Even...</description><pubDate>Fri, 15 Dec 2023 16:36:36 GMT</pubDate><category>Tweets</category></item><item><title>Wow, I just watched @BHolmesDev implement React Server Components from...</title><link>https://coryhouse.dev/2023/12/16/tweet-1736095728194265357/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/16/tweet-1736095728194265357/</guid><description>Wow, I just watched @BHolmesDev implement React Server Components from scratch in under 20 minutes. 🤯 Phenomenal video for understanding the basic...</description><pubDate>Sat, 16 Dec 2023 18:47:31 GMT</pubDate><category>Tweets</category></item><item><title>It&apos;s shocking how often teams &quot;lie&quot; to TypeScript</title><link>https://coryhouse.dev/2023/12/18/tweet-1736872871174037683/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/18/tweet-1736872871174037683/</guid><description>It&apos;s shocking how often teams &quot;lie&quot; to TypeScript. A needlessly wide type is a lie. Avoid: 🚩 userId: string; 🚩 isActive: number; 🚩 ages: &lt;str...</description><pubDate>Mon, 18 Dec 2023 22:15:36 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Code reviews delay feedback</title><link>https://coryhouse.dev/2023/12/19/tweet-1737130423107395910/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/19/tweet-1737130423107395910/</guid><description>Problem: Code reviews delay feedback. Solution: Stack pull requests. (Open a few small PRs, each based off the previous) ✅ Get feedback early and o...</description><pubDate>Tue, 19 Dec 2023 15:19:01 GMT</pubDate><category>Tweets</category></item><item><title>This is what it looks like to colocate related code</title><link>https://coryhouse.dev/2023/12/20/tweet-1737517713629544846/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/20/tweet-1737517713629544846/</guid><description>This is what it looks like to colocate related code. Long paths like this: &quot;../../../../&quot; Become short paths: &quot;./&quot; I like diffs like this. 👍</description><pubDate>Wed, 20 Dec 2023 16:57:59 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript Problem: I want a string literal union type, but I also want to...</title><link>https://coryhouse.dev/2023/12/21/tweet-1737840066310119470/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/21/tweet-1737840066310119470/</guid><description>TypeScript Problem: I want a string literal union type, but I also want to call a function that accepts a string in a type-safe manner. (Assume I c...</description><pubDate>Thu, 21 Dec 2023 14:18:53 GMT</pubDate><category>Tweets</category></item><item><title>Some people hate nested ternaries</title><link>https://coryhouse.dev/2023/12/21/tweet-1737892472292782269/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/21/tweet-1737892472292782269/</guid><description>Some people hate nested ternaries. Some people like &apos;em. If your codebase has nested ternaries, upgrade Prettier. Prettier now indents nested terna...</description><pubDate>Thu, 21 Dec 2023 17:47:08 GMT</pubDate><category>Tweets</category></item><item><title>Problem: We need to upgrade an npm package</title><link>https://coryhouse.dev/2023/12/22/tweet-1738212361406730320/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/22/tweet-1738212361406730320/</guid><description>Problem: We need to upgrade an npm package. But upgrading in one PR will create a big, risky PR. Solution: 1. Use npm package aliases. This allows...</description><pubDate>Fri, 22 Dec 2023 14:58:16 GMT</pubDate><category>Tweets</category></item><item><title>A home needs housekeeping or it slowly becomes a mess</title><link>https://coryhouse.dev/2023/12/22/tweet-1738342763354001746/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/22/tweet-1738342763354001746/</guid><description>A home needs housekeeping or it slowly becomes a mess. A codebase needs housekeeping too. But developers are busy. So they&apos;re often so focused on s...</description><pubDate>Fri, 22 Dec 2023 23:36:26 GMT</pubDate><category>Tweets</category></item><item><title>I worried an EV would give me range anxiety</title><link>https://coryhouse.dev/2023/12/23/tweet-1738569073686946271/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/23/tweet-1738569073686946271/</guid><description>I worried an EV would give me range anxiety. After 4 months I realize it’s a non-issue. Here’s why: The typical American drives about 13k miles a y...</description><pubDate>Sat, 23 Dec 2023 14:35:42 GMT</pubDate><category>Tweets</category></item><item><title>For me, coding in the early 2000’s was terrifying</title><link>https://coryhouse.dev/2023/12/24/tweet-1738955064448839724/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/24/tweet-1738955064448839724/</guid><description>For me, coding in the early 2000’s was terrifying. I had no tests. I had no types. I had no autocomplete. Runtime errors were extremely common. Our...</description><pubDate>Sun, 24 Dec 2023 16:09:30 GMT</pubDate><category>Tweets</category></item><item><title>Just tried @tan_stack Router 1.0</title><link>https://coryhouse.dev/2023/12/25/tweet-1739128987987616068/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/25/tweet-1739128987987616068/</guid><description>Just tried @tan_stack Router 1.0. I&apos;m impressed. A few of my favorite things so far: ✅ Type safe routes ✅ Optional file-based routes via a CLI ✅ Sl...</description><pubDate>Mon, 25 Dec 2023 03:40:36 GMT</pubDate><category>Tweets</category></item><item><title>I spent more time with @tan_stack Router 1.0 on a long flight today</title><link>https://coryhouse.dev/2023/12/25/tweet-1739414034292633977/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/25/tweet-1739414034292633977/</guid><description>I spent more time with @tan_stack Router 1.0 on a long flight today. This is big. ✅SSR ✅Caching ✅Context ✅Data loaders ✅Error handling ✅Code splitt...</description><pubDate>Mon, 25 Dec 2023 22:33:17 GMT</pubDate><category>Tweets</category></item><item><title>Problem: VSCode uses its built-in TypeScript version by default</title><link>https://coryhouse.dev/2023/12/26/tweet-1739622823004434791/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/26/tweet-1739622823004434791/</guid><description>Problem: VSCode uses its built-in TypeScript version by default. So if your project uses a different TypeScript version, people may experience type...</description><pubDate>Tue, 26 Dec 2023 12:22:56 GMT</pubDate><category>Tweets</category></item><item><title>Choosing a dynamic language over a statically typed language is like...</title><link>https://coryhouse.dev/2023/12/27/tweet-1739992304763769037/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/27/tweet-1739992304763769037/</guid><description>Choosing a dynamic language over a statically typed language is like choosing to drive instead of fly. Dynamic languages save time in the short run...</description><pubDate>Wed, 27 Dec 2023 12:51:07 GMT</pubDate><category>Tweets</category></item><item><title>Needless React props = needless complexity</title><link>https://coryhouse.dev/2023/12/28/tweet-1740369882347127084/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/28/tweet-1740369882347127084/</guid><description>Needless React props = needless complexity. Example: 1. A component is intended for one use. 2. It accepts accepts a prop that *isn&apos;t used by the p...</description><pubDate>Thu, 28 Dec 2023 13:51:29 GMT</pubDate><category>Tweets</category></item><item><title>I run every PR as part of my code review</title><link>https://coryhouse.dev/2023/12/29/tweet-1740697656052318470/</link><guid isPermaLink="true">https://coryhouse.dev/2023/12/29/tweet-1740697656052318470/</guid><description>I run every PR as part of my code review. Why? Because often, the PR doesn&apos;t even work right. Often a PR only works on a &quot;happy path&quot;. It ignores v...</description><pubDate>Fri, 29 Dec 2023 11:33:56 GMT</pubDate><category>Tweets</category></item><item><title>I rarely use plain “any” in TypeScript</title><link>https://coryhouse.dev/2024/01/01/tweet-1741824600277684632/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/01/tweet-1741824600277684632/</guid><description>I rarely use plain “any” in TypeScript. Why? Because *anything* is typically too broad. Usually a more specific “any” is possible. 4 alternatives t...</description><pubDate>Mon, 01 Jan 2024 14:12:00 GMT</pubDate><category>Tweets</category></item><item><title>Five terms I avoid when naming things: 1</title><link>https://coryhouse.dev/2024/01/02/tweet-1742197661837476018/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/02/tweet-1742197661837476018/</guid><description>Five terms I avoid when naming things: 1. data 2. info 3. item 4. object 5. entity These terms are so generic that they’re useless. I avoid using t...</description><pubDate>Tue, 02 Jan 2024 14:54:25 GMT</pubDate><category>Tweets</category></item><item><title>In TypeScript, I often prefer to use a Record over a switch statement</title><link>https://coryhouse.dev/2024/01/03/tweet-1742531006744195329/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/03/tweet-1742531006744195329/</guid><description>In TypeScript, I often prefer to use a Record over a switch statement. ✅ It&apos;s easy to read. ✅ It&apos;s typically less code. ✅ It&apos;s safer. With a switch...</description><pubDate>Wed, 03 Jan 2024 12:59:01 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You want to know how much of your TypeScript code is type safe</title><link>https://coryhouse.dev/2024/01/04/tweet-1742937985216082021/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/04/tweet-1742937985216082021/</guid><description>Problem: You want to know how much of your TypeScript code is type safe. Solution: type-coverage This CLI tool reports the percentage of your code...</description><pubDate>Thu, 04 Jan 2024 15:56:12 GMT</pubDate><category>Tweets</category></item><item><title>Theory: We know pair programming is effective</title><link>https://coryhouse.dev/2024/01/05/tweet-1743275291525497149/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/05/tweet-1743275291525497149/</guid><description>Theory: We know pair programming is effective. But, most developers prefer working alone. So chances are, we don&apos;t pair as often as we should. How...</description><pubDate>Fri, 05 Jan 2024 14:16:32 GMT</pubDate><category>Tweets</category></item><item><title>Ways I share data between React components: I prefer: ✅ Read/write to the...</title><link>https://coryhouse.dev/2024/01/07/tweet-1744007141931749437/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/07/tweet-1744007141931749437/</guid><description>Ways I share data between React components: I prefer: ✅ Read/write to the URL ✅ Pass values and callback functions via props ✅ Use a library that c...</description><pubDate>Sun, 07 Jan 2024 14:44:39 GMT</pubDate><category>Tweets</category></item><item><title>In JavaScript, a pure function relies only on args</title><link>https://coryhouse.dev/2024/01/08/tweet-1744321559500668984/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/08/tweet-1744321559500668984/</guid><description>In JavaScript, a pure function relies only on args. It references no outside state. So, it always returns the same output for a given input. Pure f...</description><pubDate>Mon, 08 Jan 2024 11:34:02 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Cache invalidation is hard</title><link>https://coryhouse.dev/2024/01/08/tweet-1744449177960992854/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/08/tweet-1744449177960992854/</guid><description>Problem: Cache invalidation is hard. Example: One of my clients uses React Query heavily. We have 100&apos;s of query keys, and many are quite complex....</description><pubDate>Mon, 08 Jan 2024 20:01:08 GMT</pubDate><category>Tweets</category></item><item><title>“It&apos;s already bad, so who cares.&quot; Teams don&apos;t say this out loud, but it...</title><link>https://coryhouse.dev/2024/01/09/tweet-1744756198325260420/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/09/tweet-1744756198325260420/</guid><description>“It&apos;s already bad, so who cares.&quot; Teams don&apos;t say this out loud, but it quietly happens all the time. Examples: 🚩 Ignore tests 🚩 Ignore usability...</description><pubDate>Tue, 09 Jan 2024 16:21:08 GMT</pubDate><category>Tweets</category></item><item><title>Nested ternaries aren’t good or bad</title><link>https://coryhouse.dev/2024/01/10/tweet-1745066754613678138/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/10/tweet-1745066754613678138/</guid><description>Nested ternaries aren’t good or bad. They’re contextual. A nested ternary that contains 100’s of lines of code? Yuck. 🤮 A nested ternary that cont...</description><pubDate>Wed, 10 Jan 2024 12:55:10 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Using a laptop on a flight is cramped and the screen is too low</title><link>https://coryhouse.dev/2024/01/10/tweet-1745168647855747546/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/10/tweet-1745168647855747546/</guid><description>Problem: Using a laptop on a flight is cramped and the screen is too low. Solution: Use a laptop stand. I use &quot;The roost&quot;. I find typing this way s...</description><pubDate>Wed, 10 Jan 2024 19:40:03 GMT</pubDate><category>Tweets</category></item><item><title>3 ways to share code in React: Problem: Two components have different logic,...</title><link>https://coryhouse.dev/2024/01/11/tweet-1745435403715223704/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/11/tweet-1745435403715223704/</guid><description>3 ways to share code in React: Problem: Two components have different logic, but nearly identical JSX. Solution: Create a reusable component that c...</description><pubDate>Thu, 11 Jan 2024 13:20:03 GMT</pubDate><category>Tweets</category></item><item><title>Order isn’t natural</title><link>https://coryhouse.dev/2024/01/13/tweet-1746169088047456493/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/13/tweet-1746169088047456493/</guid><description>Order isn’t natural. Chaos is. So, maintaining an orderly code base is a daily struggle. I&apos;ve found these practices help maintain order: ✅ Communic...</description><pubDate>Sat, 13 Jan 2024 13:55:27 GMT</pubDate><category>Tweets</category></item><item><title>It&apos;s fascinating how many people either love or hate this take</title><link>https://coryhouse.dev/2024/01/13/tweet-1746170489158910120/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/13/tweet-1746170489158910120/</guid><description>It&apos;s fascinating how many people either love or hate this take. Some said it&apos;s &quot;impossible to read&quot;. I don&apos;t get it. If I read the code top-down, o...</description><pubDate>Sat, 13 Jan 2024 14:01:01 GMT</pubDate><category>Tweets</category></item><item><title>Problem: In TypeScript, developers often declare needless conditionals</title><link>https://coryhouse.dev/2024/01/14/tweet-1746550376873025792/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/14/tweet-1746550376873025792/</guid><description>Problem: In TypeScript, developers often declare needless conditionals. Why needless conditionals are a problem: 🚩 Adds noise 🚩 Hurts readability...</description><pubDate>Sun, 14 Jan 2024 15:10:33 GMT</pubDate><category>Tweets</category></item><item><title>Naming matters</title><link>https://coryhouse.dev/2024/01/15/tweet-1746898580336501125/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/15/tweet-1746898580336501125/</guid><description>Naming matters. But it&apos;s easy to accidentally use inconsistent names in code. Examples: -tab, route, section, panel -user, customer, account Incons...</description><pubDate>Mon, 15 Jan 2024 14:14:12 GMT</pubDate><category>Tweets</category></item><item><title>4 attributes of scary code: 🚩 Feels needlessly complex 🚩 Unclear intent 🚩...</title><link>https://coryhouse.dev/2024/01/16/tweet-1747272713344053457/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/16/tweet-1747272713344053457/</guid><description>4 attributes of scary code: 🚩 Feels needlessly complex 🚩 Unclear intent 🚩 No tests 🚩 Buggy 😬 This is a scary combo. It often means we&apos;re hesit...</description><pubDate>Tue, 16 Jan 2024 15:00:52 GMT</pubDate><category>Tweets</category></item><item><title>Some developers are better than others</title><link>https://coryhouse.dev/2024/01/17/tweet-1747601423469052254/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/17/tweet-1747601423469052254/</guid><description>Some developers are better than others. WAY better. The difference is obvious. Some developers frequently deliver broken, confusing code that&apos;s nee...</description><pubDate>Wed, 17 Jan 2024 12:47:02 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;ve taught teams React with React Router for years</title><link>https://coryhouse.dev/2024/01/18/tweet-1747778158424678437/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/18/tweet-1747778158424678437/</guid><description>I&apos;ve taught teams React with React Router for years. Today I&apos;m using @tan_stack Router instead. We&apos;re using the file-based approach. It&apos;s quite nic...</description><pubDate>Thu, 18 Jan 2024 00:29:19 GMT</pubDate><category>Tweets</category></item><item><title>Here&apos;s what makes @tan_stack Router special: It&apos;s the first React router...</title><link>https://coryhouse.dev/2024/01/18/tweet-1747790778393366910/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/18/tweet-1747790778393366910/</guid><description>Here&apos;s what makes @tan_stack Router special: It&apos;s the first React router designed to work with TypeScript. The API feels &quot;weird&quot; at first. Then you...</description><pubDate>Thu, 18 Jan 2024 01:19:28 GMT</pubDate><category>Tweets</category></item><item><title>How I start a new React app in 2024: Traditional SPA: Vite, Typescript,...</title><link>https://coryhouse.dev/2024/01/18/tweet-1747979474413474075/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/18/tweet-1747979474413474075/</guid><description>How I start a new React app in 2024: Traditional SPA: Vite, Typescript, @tan_stack file-based router. I’d add @tan_stack query if many pages use th...</description><pubDate>Thu, 18 Jan 2024 13:49:17 GMT</pubDate><category>Tweets</category></item><item><title>Imagine you’re building a React app</title><link>https://coryhouse.dev/2024/01/19/tweet-1748346983452905737/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/19/tweet-1748346983452905737/</guid><description>Imagine you’re building a React app. How do you decide between these two options: 1. Traditional SPA 2. React Server Components (RSC) SPA benefits:...</description><pubDate>Fri, 19 Jan 2024 14:09:38 GMT</pubDate><category>Tweets</category></item><item><title>In one of my first dev jobs, I supported activating new cell phones at...</title><link>https://coryhouse.dev/2024/01/20/tweet-1748717626585387462/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/20/tweet-1748717626585387462/</guid><description>In one of my first dev jobs, I supported activating new cell phones at Sprint (later acquired by T-Mobile). My team supported software that sent ne...</description><pubDate>Sat, 20 Jan 2024 14:42:26 GMT</pubDate><category>Tweets</category></item><item><title>For years, I’ve said “You don’t need a React form library</title><link>https://coryhouse.dev/2024/01/21/tweet-1749065758141714829/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/21/tweet-1749065758141714829/</guid><description>For years, I’ve said “You don’t need a React form library. You need a pattern.” I still believe that. But, I’ve been using React Hook Form more lat...</description><pubDate>Sun, 21 Jan 2024 13:45:47 GMT</pubDate><category>Tweets</category></item><item><title>One of my favorite React Hook Form features: I can use a Zod schema to...</title><link>https://coryhouse.dev/2024/01/21/tweet-1749088462685270060/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/21/tweet-1749088462685270060/</guid><description>One of my favorite React Hook Form features: I can use a Zod schema to configure form validation with a single line of code. See the highlighted li...</description><pubDate>Sun, 21 Jan 2024 15:16:00 GMT</pubDate><category>Tweets</category></item><item><title>I like RSC</title><link>https://coryhouse.dev/2024/01/22/tweet-1749426942405710333/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/22/tweet-1749426942405710333/</guid><description>I like RSC. But it’s not perfect. Problems I’ve noticed: 1. Next.js is the only mature implementation I’ve seen so far. 2. Need a complex server co...</description><pubDate>Mon, 22 Jan 2024 13:41:00 GMT</pubDate><category>Tweets</category></item><item><title>React’s context works great for global state that changes rarely</title><link>https://coryhouse.dev/2024/01/23/tweet-1749796349401297365/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/23/tweet-1749796349401297365/</guid><description>React’s context works great for global state that changes rarely. But there are many alternatives that may be preferable depending on use case: Thi...</description><pubDate>Tue, 23 Jan 2024 14:08:53 GMT</pubDate><category>Tweets</category></item><item><title>When coding, I have at least 4 audiences: 1</title><link>https://coryhouse.dev/2024/01/25/tweet-1750520424457195668/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/25/tweet-1750520424457195668/</guid><description>When coding, I have at least 4 audiences: 1. My team 2. The compiler 3. Me in the future 4. The team in the future (who will lack our current conte...</description><pubDate>Thu, 25 Jan 2024 14:06:06 GMT</pubDate><category>Tweets</category></item><item><title>JavaScript habit: I prefer to use a &quot;point-free&quot; style</title><link>https://coryhouse.dev/2024/01/25/tweet-1750621459813163037/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/25/tweet-1750621459813163037/</guid><description>JavaScript habit: I prefer to use a &quot;point-free&quot; style. With a point-free style, args are passed to the function automatically. Less code. Same res...</description><pubDate>Thu, 25 Jan 2024 20:47:35 GMT</pubDate><category>Tweets</category></item><item><title>I’ve been working in TypeScript for years and I think I’ve used “ts-ignore”...</title><link>https://coryhouse.dev/2024/01/26/tweet-1750916900702323143/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/26/tweet-1750916900702323143/</guid><description>I’ve been working in TypeScript for years and I think I’ve used “ts-ignore” about twice. I’ve found it’s rarely necessary and a strong sign somethi...</description><pubDate>Fri, 26 Jan 2024 16:21:34 GMT</pubDate><category>Tweets</category></item><item><title>Two Related Problems: 1</title><link>https://coryhouse.dev/2024/01/26/tweet-1750980809874436431/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/26/tweet-1750980809874436431/</guid><description>Two Related Problems: 1. useEffect is overused. 2. It&apos;s often hard to tell a useEffect is needless, because “useEffect” merely tells me *when* some...</description><pubDate>Fri, 26 Jan 2024 20:35:31 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Your code base probably contains a lot of copy/pasted code, but...</title><link>https://coryhouse.dev/2024/01/27/tweet-1751269325313355971/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/27/tweet-1751269325313355971/</guid><description>Problem: Your code base probably contains a lot of copy/pasted code, but it&apos;s hard to find. Solution: jscpd jscpd is a command line tool that finds...</description><pubDate>Sat, 27 Jan 2024 15:41:58 GMT</pubDate><category>Tweets</category></item><item><title>I’m not strict about types because I enjoy being strict</title><link>https://coryhouse.dev/2024/01/28/tweet-1751605094309642753/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/28/tweet-1751605094309642753/</guid><description>I’m not strict about types because I enjoy being strict. I’m strict about types because: ✅ Types help us code faster. ✅ Types help us read faster....</description><pubDate>Sun, 28 Jan 2024 13:56:12 GMT</pubDate><category>Tweets</category></item><item><title>Problem: I accidentally closed a tab or a file</title><link>https://coryhouse.dev/2024/01/29/tweet-1751971345242468751/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/29/tweet-1751971345242468751/</guid><description>Problem: I accidentally closed a tab or a file. Solution: Hit Cmd+Shift+T (Mac) or Ctrl+Shift+T (Win) to reopen the last closed tab. Bonus: It work...</description><pubDate>Mon, 29 Jan 2024 14:11:33 GMT</pubDate><category>Tweets</category></item><item><title>Me, reviewing a PR: Why are doing this weird thing</title><link>https://coryhouse.dev/2024/01/29/tweet-1752092644711248237/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/29/tweet-1752092644711248237/</guid><description>Me, reviewing a PR: Why are doing this weird thing? Author: The data is messed up. This fixes it. Me: Can we fix the root cause instead? If we can&apos;...</description><pubDate>Mon, 29 Jan 2024 22:13:33 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript Problem: I need a specific property, but I don’t know the exact type</title><link>https://coryhouse.dev/2024/01/30/tweet-1752323752262611113/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/30/tweet-1752323752262611113/</guid><description>TypeScript Problem: I need a specific property, but I don’t know the exact type. Solution: SomethingWithX. It&apos;s a better choice than “any” because...</description><pubDate>Tue, 30 Jan 2024 13:31:53 GMT</pubDate><category>Tweets</category></item><item><title>“React has become complicated.” Don’t like RSC</title><link>https://coryhouse.dev/2024/01/30/tweet-1752386136704794999/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/30/tweet-1752386136704794999/</guid><description>“React has become complicated.” Don’t like RSC? Ignore it. I can keep building plain old SPAs in React. The new stuff is optional. In fact, React i...</description><pubDate>Tue, 30 Jan 2024 17:39:47 GMT</pubDate><category>Tweets</category></item><item><title>DRY = Don’t repeat yourself</title><link>https://coryhouse.dev/2024/01/31/tweet-1752703464445288906/</link><guid isPermaLink="true">https://coryhouse.dev/2024/01/31/tweet-1752703464445288906/</guid><description>DRY = Don’t repeat yourself. It’s generally a helpful principle. But, like many principles, it can be taken too far. My concern: If you dislike DRY...</description><pubDate>Wed, 31 Jan 2024 14:40:44 GMT</pubDate><category>Tweets</category></item><item><title>&quot;Every time you remove duplication, you add coupling.&quot; - @ardalis So before...</title><link>https://coryhouse.dev/2024/02/01/tweet-1752852545771299233/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/01/tweet-1752852545771299233/</guid><description>&quot;Every time you remove duplication, you add coupling.&quot; - @ardalis So before eliminating duplicated code, I have to ask: Is the coupling I&apos;m about t...</description><pubDate>Thu, 01 Feb 2024 00:33:07 GMT</pubDate><category>Tweets</category></item><item><title>There are lots of ways to draw lines between junior and senior developers</title><link>https://coryhouse.dev/2024/02/01/tweet-1753162212091326538/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/01/tweet-1753162212091326538/</guid><description>There are lots of ways to draw lines between junior and senior developers. Here&apos;s a distinction I find useful. A senior developer makes suggestions...</description><pubDate>Thu, 01 Feb 2024 21:03:38 GMT</pubDate><category>Tweets</category></item><item><title>Using TypeScript</title><link>https://coryhouse.dev/2024/02/02/tweet-1753230151129743778/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/02/tweet-1753230151129743778/</guid><description>Using TypeScript? Here&apos;s an ESLint rule I wish was enabled from the beginning: no-type-assertion Some of my clients have 500+ type assertions in th...</description><pubDate>Fri, 02 Feb 2024 01:33:36 GMT</pubDate><category>Tweets</category></item><item><title>A giant pull request is typically a mistake</title><link>https://coryhouse.dev/2024/02/02/tweet-1753428714866483445/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/02/tweet-1753428714866483445/</guid><description>A giant pull request is typically a mistake. Three techniques to avoid giant PRs: 1. Reduce scope. Ask, “could this ticket be any smaller?” 2. Spli...</description><pubDate>Fri, 02 Feb 2024 14:42:37 GMT</pubDate><category>Tweets</category></item><item><title>It&apos;s surprising how often I see pull requests with these 2 attributes: 1</title><link>https://coryhouse.dev/2024/02/02/tweet-1753528719925444770/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/02/tweet-1753528719925444770/</guid><description>It&apos;s surprising how often I see pull requests with these 2 attributes: 1. Technically impressive, well-documented, and creative. 2. Needlessly comp...</description><pubDate>Fri, 02 Feb 2024 21:20:00 GMT</pubDate><category>Tweets</category></item><item><title>Problem: React&apos;s useEffect only specifies when code should run</title><link>https://coryhouse.dev/2024/02/03/tweet-1753777632976461954/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/03/tweet-1753777632976461954/</guid><description>Problem: React&apos;s useEffect only specifies when code should run. It doesn’t document why it should run or what it should do. This makes useEffect ha...</description><pubDate>Sat, 03 Feb 2024 13:49:05 GMT</pubDate><category>Tweets</category></item><item><title>Yesterday, I suggested naming functions passed to useEffect</title><link>https://coryhouse.dev/2024/02/04/tweet-1754143750996066546/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/04/tweet-1754143750996066546/</guid><description>Yesterday, I suggested naming functions passed to useEffect. A few people suggested just using a comment. I disagree. Here&apos;s why. Code &gt; comment...</description><pubDate>Sun, 04 Feb 2024 14:03:55 GMT</pubDate><category>Tweets</category></item><item><title>Zod is great, but it’s for *runtime* validation</title><link>https://coryhouse.dev/2024/02/05/tweet-1754498494067245130/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/05/tweet-1754498494067245130/</guid><description>Zod is great, but it’s for *runtime* validation. I&apos;ve seen some teams using Zod&apos;s infer for nearly all their types. This just adds overhead and abs...</description><pubDate>Mon, 05 Feb 2024 13:33:32 GMT</pubDate><category>Tweets</category></item><item><title>Doing a code review without running the code is like doing a quality check...</title><link>https://coryhouse.dev/2024/02/05/tweet-1754592083724185688/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/05/tweet-1754592083724185688/</guid><description>Doing a code review without running the code is like doing a quality check blindfolded. 🚩I have to use my imagination. 🚩I have to run the code in...</description><pubDate>Mon, 05 Feb 2024 19:45:26 GMT</pubDate><category>Tweets</category></item><item><title>GitHub CoPilot + TypeScript is an awesome combo</title><link>https://coryhouse.dev/2024/02/06/tweet-1754906624437735532/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/06/tweet-1754906624437735532/</guid><description>GitHub CoPilot + TypeScript is an awesome combo. Example: I&apos;m improving types and CoPilot was smart enough to parse the entire file and see what va...</description><pubDate>Tue, 06 Feb 2024 16:35:18 GMT</pubDate><category>Tweets</category></item><item><title>It blows my mind that companies expect developers to work on slow virtual...</title><link>https://coryhouse.dev/2024/02/06/tweet-1754996545793970683/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/06/tweet-1754996545793970683/</guid><description>It blows my mind that companies expect developers to work on slow virtual machines, slow remote sessions, or slow, old hardware. When I have to wor...</description><pubDate>Tue, 06 Feb 2024 22:32:37 GMT</pubDate><category>Tweets</category></item><item><title>Before creating a custom hook, I search the web</title><link>https://coryhouse.dev/2024/02/07/tweet-1755272699285254344/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/07/tweet-1755272699285254344/</guid><description>Before creating a custom hook, I search the web. Often, an open source custom hook already exists. A few favorites: useDebounce useLocalStorage use...</description><pubDate>Wed, 07 Feb 2024 16:49:57 GMT</pubDate><category>Tweets</category></item><item><title>Security is important</title><link>https://coryhouse.dev/2024/02/08/tweet-1755590877345411259/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/08/tweet-1755590877345411259/</guid><description>Security is important. But some companies take it too far. “We can&apos;t because of security&quot; is often used to block reasonable requests. Examples: You...</description><pubDate>Thu, 08 Feb 2024 13:54:17 GMT</pubDate><category>Tweets</category></item><item><title>Needless complexity: Using multiple terms to describe the same concept</title><link>https://coryhouse.dev/2024/02/08/tweet-1755672613085413492/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/08/tweet-1755672613085413492/</guid><description>Needless complexity: Using multiple terms to describe the same concept. I often see this in code reviews. For example, code may use all these words...</description><pubDate>Thu, 08 Feb 2024 19:19:04 GMT</pubDate><category>Tweets</category></item><item><title>Today I thought “I can do this change in one big PR</title><link>https://coryhouse.dev/2024/02/09/tweet-1756015427572859079/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/09/tweet-1756015427572859079/</guid><description>Today I thought “I can do this change in one big PR. It’ll be fine.” I was wrong. I should have known. If a PR is big, find a way to split it.</description><pubDate>Fri, 09 Feb 2024 18:01:17 GMT</pubDate><category>Tweets</category></item><item><title>I avoid boolean function arguments</title><link>https://coryhouse.dev/2024/02/10/tweet-1756330942736589156/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/10/tweet-1756330942736589156/</guid><description>I avoid boolean function arguments. Here’s why. 🚩 They’re hard to read. 🚩 They infer the function does two different things Here&apos;s two common exa...</description><pubDate>Sat, 10 Feb 2024 14:55:02 GMT</pubDate><category>Tweets</category></item><item><title>A common case of needless state: Dialog visibility</title><link>https://coryhouse.dev/2024/02/11/tweet-1756682543624077355/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/11/tweet-1756682543624077355/</guid><description>A common case of needless state: Dialog visibility. Example: If a dialog displays when I click on a user, I only need one piece of state, not two....</description><pubDate>Sun, 11 Feb 2024 14:12:10 GMT</pubDate><category>Tweets</category></item><item><title>This is extremely useful, but most teams still aren’t doing it: Preview...</title><link>https://coryhouse.dev/2024/02/12/tweet-1757033736355315975/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/12/tweet-1757033736355315975/</guid><description>This is extremely useful, but most teams still aren’t doing it: Preview deployments - Automatically deploy each feature branch to a temporary envir...</description><pubDate>Mon, 12 Feb 2024 13:27:41 GMT</pubDate><category>Tweets</category></item><item><title>Just ran no-type-assertion/no-type-assertion on a large TypeScript codebase</title><link>https://coryhouse.dev/2024/02/13/tweet-1757425154769186989/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/13/tweet-1757425154769186989/</guid><description>Just ran no-type-assertion/no-type-assertion on a large TypeScript codebase. It found 100&apos;s of things like this: 🚩 Needless, redundant type assert...</description><pubDate>Tue, 13 Feb 2024 15:23:02 GMT</pubDate><category>Tweets</category></item><item><title>React-query problem: I fetched a list and I want to avoid needlessly...</title><link>https://coryhouse.dev/2024/02/14/tweet-1757823190855004506/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/14/tweet-1757823190855004506/</guid><description>React-query problem: I fetched a list and I want to avoid needlessly refetching the same data on my detail page. Solution: Use setQueryData to pre-...</description><pubDate>Wed, 14 Feb 2024 17:44:42 GMT</pubDate><category>Tweets</category></item><item><title>React mistake: Adding specific logic into a reusable component</title><link>https://coryhouse.dev/2024/02/15/tweet-1758162623558823943/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/15/tweet-1758162623558823943/</guid><description>React mistake: Adding specific logic into a reusable component. How to spot it: Are we adding props and logic to this component for a single, speci...</description><pubDate>Thu, 15 Feb 2024 16:13:29 GMT</pubDate><category>Tweets</category></item><item><title>When I see a type assertion like this in TypeScript: fish as Fish I read it...</title><link>https://coryhouse.dev/2024/02/16/tweet-1758522177559666991/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/16/tweet-1758522177559666991/</guid><description>When I see a type assertion like this in TypeScript: fish as Fish I read it as: fish dangerouslyAssumeThisIsA Fish Safe alternatives: 1. Create a u...</description><pubDate>Fri, 16 Feb 2024 16:02:13 GMT</pubDate><category>Tweets</category></item><item><title>Some of my clients try to &quot;hide&quot; primary keys in the UI</title><link>https://coryhouse.dev/2024/02/16/tweet-1758567995293536350/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/16/tweet-1758567995293536350/</guid><description>Some of my clients try to &quot;hide&quot; primary keys in the UI. They consider using primary keys in the URL/links a security risk. But the primary keys ar...</description><pubDate>Fri, 16 Feb 2024 19:04:17 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m really enjoying the Apple Studio monitor</title><link>https://coryhouse.dev/2024/02/18/tweet-1759220757542912367/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/18/tweet-1759220757542912367/</guid><description>I&apos;m really enjoying the Apple Studio monitor. ✅ Excellent build quality. The clean metal build looks fantastic. ✅ Text is wonderfully crisp. ✅ It’s...</description><pubDate>Sun, 18 Feb 2024 14:18:07 GMT</pubDate><category>Tweets</category></item><item><title>Four interesting points about React Server Components: 1</title><link>https://coryhouse.dev/2024/02/19/tweet-1759576085442843122/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/19/tweet-1759576085442843122/</guid><description>Four interesting points about React Server Components: 1. All components are server-side rendered (SSR) by default, (even client components!) SSR r...</description><pubDate>Mon, 19 Feb 2024 13:50:04 GMT</pubDate><category>Tweets</category></item><item><title>Top 10 React state libraries, sorted by downloads: 1</title><link>https://coryhouse.dev/2024/02/20/tweet-1759963751464271940/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/20/tweet-1759963751464271940/</guid><description>Top 10 React state libraries, sorted by downloads: 1. Redux (single store, typically with Redux Toolkit) 2. Apollo (for GraphQL - includes caching)...</description><pubDate>Tue, 20 Feb 2024 15:30:31 GMT</pubDate><category>Tweets</category></item><item><title>General rule: The fewer mocks a test has, the more confidence the test provides</title><link>https://coryhouse.dev/2024/02/20/tweet-1759997690094538753/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/20/tweet-1759997690094538753/</guid><description>General rule: The fewer mocks a test has, the more confidence the test provides. A passing test with no mocks gives me the most confidence.</description><pubDate>Tue, 20 Feb 2024 17:45:23 GMT</pubDate><category>Tweets</category></item><item><title>The risk with mocked tests: The test may not test anything</title><link>https://coryhouse.dev/2024/02/21/tweet-1760303439278477808/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/21/tweet-1760303439278477808/</guid><description>The risk with mocked tests: The test may not test anything. Example: I just reviewed a test that claimed to ensure a JSON API response was the expe...</description><pubDate>Wed, 21 Feb 2024 14:00:19 GMT</pubDate><category>Tweets</category></item><item><title>I review a LOT of React code every day</title><link>https://coryhouse.dev/2024/02/22/tweet-1760476588716544202/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/22/tweet-1760476588716544202/</guid><description>I review a LOT of React code every day. Half my job is repeatedly saying two things: 1. &quot;This state isn&apos;t necessary. The values can be derived from...</description><pubDate>Thu, 22 Feb 2024 01:28:21 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m getting tempted to use ESLint to warn on usage of useEffect</title><link>https://coryhouse.dev/2024/02/22/tweet-1760664085161533906/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/22/tweet-1760664085161533906/</guid><description>I&apos;m getting tempted to use ESLint to warn on usage of useEffect. Something like: Please re-read &quot;You Might Not Need useEffect&quot; and then ask, do the...</description><pubDate>Thu, 22 Feb 2024 13:53:24 GMT</pubDate><category>Tweets</category></item><item><title>With TypeScript, I feel comfortable making big changes that would have...</title><link>https://coryhouse.dev/2024/02/22/tweet-1760788294294462757/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/22/tweet-1760788294294462757/</guid><description>With TypeScript, I feel comfortable making big changes that would have scared me in JavaScript. I can often make large scale, type-safe changes, an...</description><pubDate>Thu, 22 Feb 2024 22:06:57 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript rule: If a function requires something, the function&apos;s type...</title><link>https://coryhouse.dev/2024/02/23/tweet-1761000478148641240/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/23/tweet-1761000478148641240/</guid><description>TypeScript rule: If a function requires something, the function&apos;s type signature should require it. This sounds obvious and reasonable, but I often...</description><pubDate>Fri, 23 Feb 2024 12:10:06 GMT</pubDate><category>Tweets</category></item><item><title>Developers are liars</title><link>https://coryhouse.dev/2024/02/23/tweet-1761082101321912790/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/23/tweet-1761082101321912790/</guid><description>Developers are liars. We say “this can be null” when it’s actually required. We say “this property is optional” when it’s actually required. We say...</description><pubDate>Fri, 23 Feb 2024 17:34:26 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Disabled fields and buttons aren’t accessible or discoverable</title><link>https://coryhouse.dev/2024/02/24/tweet-1761395401653895437/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/24/tweet-1761395401653895437/</guid><description>Problem: Disabled fields and buttons aren’t accessible or discoverable. Here a 4 ways to avoid using &quot;disabled&quot;. Scenario 1: The form is loading, a...</description><pubDate>Sat, 24 Feb 2024 14:19:23 GMT</pubDate><category>Tweets</category></item><item><title>⚠️ A tooltip on a disabled button isn’t accessible</title><link>https://coryhouse.dev/2024/02/24/tweet-1761411342513135674/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/24/tweet-1761411342513135674/</guid><description>⚠️ A tooltip on a disabled button isn’t accessible. It can’t be accessed via a screen reader. It can’t be triggered by a keyboard user. And often t...</description><pubDate>Sat, 24 Feb 2024 15:22:44 GMT</pubDate><category>Tweets</category></item><item><title>Not trying to put Ryan on blast (I like Ryan, and Remix and React Router are...</title><link>https://coryhouse.dev/2024/02/24/tweet-1761462321681994050/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/24/tweet-1761462321681994050/</guid><description>Not trying to put Ryan on blast (I like Ryan, and Remix and React Router are wonderful), but: Disabled buttons are NOT accessible. Being able to &quot;s...</description><pubDate>Sat, 24 Feb 2024 18:45:18 GMT</pubDate><category>Tweets</category></item><item><title>I often see filter calls that needlessly fall back to an empty array</title><link>https://coryhouse.dev/2024/02/25/tweet-1761755043651366954/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/25/tweet-1761755043651366954/</guid><description>I often see filter calls that needlessly fall back to an empty array. It&apos;s unnecessary. JavaScript&apos;s array.filter always returns an array. Even whe...</description><pubDate>Sun, 25 Feb 2024 14:08:28 GMT</pubDate><category>Tweets</category></item><item><title>&quot;I&apos;ll add tests in a separate PR&quot;</title><link>https://coryhouse.dev/2024/02/26/tweet-1762107820537708840/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/26/tweet-1762107820537708840/</guid><description>&quot;I&apos;ll add tests in a separate PR&quot;. Ouch. 5 reasons to add tests before merge: 1. Clear memory: Before merge, everything is fresh in my mind. I know...</description><pubDate>Mon, 26 Feb 2024 13:30:17 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m hesitant to click approve on a PR that feels highly complex</title><link>https://coryhouse.dev/2024/02/26/tweet-1762164896655962312/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/26/tweet-1762164896655962312/</guid><description>I&apos;m hesitant to click approve on a PR that feels highly complex. Here&apos;s 2 reasons why: 1. If it feels highly complex, a simpler approach may exist....</description><pubDate>Mon, 26 Feb 2024 17:17:05 GMT</pubDate><category>Tweets</category></item><item><title>Sometimes, we all have to cut corners</title><link>https://coryhouse.dev/2024/02/27/tweet-1762297188116242581/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/27/tweet-1762297188116242581/</guid><description>Sometimes, we all have to cut corners. But for some developers, it&apos;s their default mode. So, every PR is a landmine: ⚠️ basic typos loose types obv...</description><pubDate>Tue, 27 Feb 2024 02:02:46 GMT</pubDate><category>Tweets</category></item><item><title>Seriously, I think @kentcdodds deserves the developer equivalent of the...</title><link>https://coryhouse.dev/2024/02/27/tweet-1762540025734918191/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/27/tweet-1762540025734918191/</guid><description>Seriously, I think @kentcdodds deserves the developer equivalent of the Nobel prize for creating @TestingLib. A huge leap forward for testing maint...</description><pubDate>Tue, 27 Feb 2024 18:07:43 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m recommend using JSDoc comments above each property</title><link>https://coryhouse.dev/2024/02/28/tweet-1762931613816467926/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/28/tweet-1762931613816467926/</guid><description>I&apos;m recommend using JSDoc comments above each property. Benefits: 1. It provides enhanced autocomplete support. The comments are exposed via modern...</description><pubDate>Wed, 28 Feb 2024 20:03:45 GMT</pubDate><category>Tweets</category></item><item><title>The longer I work in software the more enjoyable my work is</title><link>https://coryhouse.dev/2024/02/29/tweet-1763277733071585325/</link><guid isPermaLink="true">https://coryhouse.dev/2024/02/29/tweet-1763277733071585325/</guid><description>The longer I work in software the more enjoyable my work is. My skills have improved. My autonomy has grown. My tools have gotten WAY better. As a...</description><pubDate>Thu, 29 Feb 2024 18:59:06 GMT</pubDate><category>Tweets</category></item><item><title>Habit: If a function accepts two arguments of the same type, I accept an object</title><link>https://coryhouse.dev/2024/03/01/tweet-1763604283662999819/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/01/tweet-1763604283662999819/</guid><description>Habit: If a function accepts two arguments of the same type, I accept an object. This protects from accidentally passing args in the wrong order.</description><pubDate>Fri, 01 Mar 2024 16:36:42 GMT</pubDate><category>Tweets</category></item><item><title>React has over a dozen popular third-party state libraries</title><link>https://coryhouse.dev/2024/03/02/tweet-1763919937481973801/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/02/tweet-1763919937481973801/</guid><description>React has over a dozen popular third-party state libraries. React Query, Zustand, Redux, Jotai, Mobx, etc. Prediction: Third-party React state libr...</description><pubDate>Sat, 02 Mar 2024 13:30:59 GMT</pubDate><category>Tweets</category></item><item><title>Problem: aria-labels are often implemented poorly</title><link>https://coryhouse.dev/2024/03/03/tweet-1764294490850750961/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/03/tweet-1764294490850750961/</guid><description>Problem: aria-labels are often implemented poorly. Here are 4 aria-label mistakes in one snippet: This reads as &quot;User 1 expand button&quot;. 👎 Issues:...</description><pubDate>Sun, 03 Mar 2024 14:19:20 GMT</pubDate><category>Tweets</category></item><item><title>When is a TypeScript union type impractical</title><link>https://coryhouse.dev/2024/03/04/tweet-1764672140664594859/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/04/tweet-1764672140664594859/</guid><description>When is a TypeScript union type impractical? If it’s just a few options that never change, a union type is a great choice. But if it’s many values...</description><pubDate>Mon, 04 Mar 2024 15:19:59 GMT</pubDate><category>Tweets</category></item><item><title>One of the most rewarding things about doing code reviews: Seeing people...</title><link>https://coryhouse.dev/2024/03/05/tweet-1765041586453520567/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/05/tweet-1765041586453520567/</guid><description>One of the most rewarding things about doing code reviews: Seeing people quickly improve. Months ago, I reviewed someone&apos;s PR for the first time. I...</description><pubDate>Tue, 05 Mar 2024 15:48:01 GMT</pubDate><category>Tweets</category></item><item><title>A simple wording pattern to avoid defensiveness in code reviews: Avoid: &quot;You...</title><link>https://coryhouse.dev/2024/03/05/tweet-1765062663397052457/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/05/tweet-1765062663397052457/</guid><description>A simple wording pattern to avoid defensiveness in code reviews: Avoid: &quot;You should do x.&quot; Prefer: &quot;Should we do x?&quot; Asking a question avoids assum...</description><pubDate>Tue, 05 Mar 2024 17:11:46 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You want to query your DB via TypeScript</title><link>https://coryhouse.dev/2024/03/06/tweet-1765397876954271830/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/06/tweet-1765397876954271830/</guid><description>Problem: You want to query your DB via TypeScript. Solution: Drizzle ORM. It’s like C#’s “LINQ to SQL”, but for TypeScript. Drizzle has adapters fo...</description><pubDate>Wed, 06 Mar 2024 15:23:48 GMT</pubDate><category>Tweets</category></item><item><title>In React, needless complexity and repeated null checks can often be...</title><link>https://coryhouse.dev/2024/03/08/tweet-1766098430466670908/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/08/tweet-1766098430466670908/</guid><description>In React, needless complexity and repeated null checks can often be eliminated via one simple pattern: Return early when loading. Render *one* load...</description><pubDate>Fri, 08 Mar 2024 13:47:33 GMT</pubDate><category>Tweets</category></item><item><title>In TypeScript, I’ve found throwing a runtime error is often a sign of poorly...</title><link>https://coryhouse.dev/2024/03/09/tweet-1766465831800553752/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/09/tweet-1766465831800553752/</guid><description>In TypeScript, I’ve found throwing a runtime error is often a sign of poorly designed types. So I strive to design types so that runtime errors are...</description><pubDate>Sat, 09 Mar 2024 14:07:28 GMT</pubDate><category>Tweets</category></item><item><title>Why I don’t use test IDs: Adding test IDs all over my markup is a bad DX</title><link>https://coryhouse.dev/2024/03/10/tweet-1766838153749447133/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/10/tweet-1766838153749447133/</guid><description>Why I don’t use test IDs: Adding test IDs all over my markup is a bad DX. With a test ID, a test may pass when the user still doesn&apos;t see what&apos;s ex...</description><pubDate>Sun, 10 Mar 2024 14:46:56 GMT</pubDate><category>Tweets</category></item><item><title>Warning: ⚠️ If you’re: 1</title><link>https://coryhouse.dev/2024/03/11/tweet-1767193298102296704/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/11/tweet-1767193298102296704/</guid><description>Warning: ⚠️ If you’re: 1. Using @TestingLib 2. Using getByRole 3. Testing on a page with many DOM elements… Then getByRole may be slow. Why? Becaus...</description><pubDate>Mon, 11 Mar 2024 14:18:09 GMT</pubDate><category>Tweets</category></item><item><title>My programming style: Mostly simple pure functions, named clearly</title><link>https://coryhouse.dev/2024/03/12/tweet-1767612200087425161/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/12/tweet-1767612200087425161/</guid><description>My programming style: Mostly simple pure functions, named clearly. Keep impure functions small, and focused. Benefits: ✅ Each function is easy to u...</description><pubDate>Tue, 12 Mar 2024 18:02:43 GMT</pubDate><category>Tweets</category></item><item><title>Using TypeScript</title><link>https://coryhouse.dev/2024/03/14/tweet-1768283265889136835/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/14/tweet-1768283265889136835/</guid><description>Using TypeScript? I suggest enabling this setting in tsconfig: noUncheckedIndexedAccess When this is enabled, TypeScript adds undefined to any un-d...</description><pubDate>Thu, 14 Mar 2024 14:29:18 GMT</pubDate><category>Tweets</category></item><item><title>Problem: There are many React state libraries, so it’s hard to choose...</title><link>https://coryhouse.dev/2024/03/16/tweet-1768997355779428678/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/16/tweet-1768997355779428678/</guid><description>Problem: There are many React state libraries, so it’s hard to choose between them. Solution: Think in categories. Many are similar. 6 categories:...</description><pubDate>Sat, 16 Mar 2024 13:46:50 GMT</pubDate><category>Tweets</category></item><item><title>Two ways to write software: 1</title><link>https://coryhouse.dev/2024/03/16/tweet-1769048876269371731/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/16/tweet-1769048876269371731/</guid><description>Two ways to write software: 1. Performance first. Consider performance from the start. 2. Performance last. Make it work, make it right, then make...</description><pubDate>Sat, 16 Mar 2024 17:11:34 GMT</pubDate><category>Tweets</category></item><item><title>I typically configure @playwrightweb to run end-to-end (E2E) and mocked...</title><link>https://coryhouse.dev/2024/03/17/tweet-1769357035122868539/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/17/tweet-1769357035122868539/</guid><description>I typically configure @playwrightweb to run end-to-end (E2E) and mocked tests separately. Here’s how: 1. Put e2e and mocked tests in separate folde...</description><pubDate>Sun, 17 Mar 2024 13:36:04 GMT</pubDate><category>Tweets</category></item><item><title>Two web app testing approaches: 1</title><link>https://coryhouse.dev/2024/03/17/tweet-1769417335687774707/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/17/tweet-1769417335687774707/</guid><description>Two web app testing approaches: 1. Emulated. (Typically via @jestjs_ or @vitest_dev with jsdom or happy-dom) 2. Real browser. (Typically via @playw...</description><pubDate>Sun, 17 Mar 2024 17:35:41 GMT</pubDate><category>Tweets</category></item><item><title>Using Prettier and ESLint</title><link>https://coryhouse.dev/2024/03/18/tweet-1769707497139351654/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/18/tweet-1769707497139351654/</guid><description>Using Prettier and ESLint? You probably don&apos;t need these two ESLint plugins: eslint-config-prettier eslint-plugin-prettier I just removed them base...</description><pubDate>Mon, 18 Mar 2024 12:48:41 GMT</pubDate><category>Tweets</category></item><item><title>I test web apps via 3 types of tests: 1</title><link>https://coryhouse.dev/2024/03/18/tweet-1769725974134882444/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/18/tweet-1769725974134882444/</guid><description>I test web apps via 3 types of tests: 1. End-to-end (E2E) - Goal: Smoke test each page to assure it loads successfully. Only check for static eleme...</description><pubDate>Mon, 18 Mar 2024 14:02:06 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You’re testing via @testling_lib, and you want to debug what you’re...</title><link>https://coryhouse.dev/2024/03/19/tweet-1770071018939281534/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/19/tweet-1770071018939281534/</guid><description>Problem: You’re testing via @testling_lib, and you want to debug what you’re testing in a browser. Solution: screen.logTestingPlaygroundURL() This...</description><pubDate>Tue, 19 Mar 2024 12:53:11 GMT</pubDate><category>Tweets</category></item><item><title>A few years ago I was excited about the idea of visual regression testing</title><link>https://coryhouse.dev/2024/03/19/tweet-1770166605739446356/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/19/tweet-1770166605739446356/</guid><description>A few years ago I was excited about the idea of visual regression testing. (Visual regression tests take a picture of a component or page and then...</description><pubDate>Tue, 19 Mar 2024 19:13:01 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You want to copy a JavaScript array but use a different value for...</title><link>https://coryhouse.dev/2024/03/20/tweet-1770433161211543597/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/20/tweet-1770433161211543597/</guid><description>Problem: You want to copy a JavaScript array but use a different value for one index. Solution: Array .with Array .with copies the array instead of...</description><pubDate>Wed, 20 Mar 2024 12:52:13 GMT</pubDate><category>Tweets</category></item><item><title>Rule: A failing automated check should break the build</title><link>https://coryhouse.dev/2024/03/21/tweet-1770802022511448226/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/21/tweet-1770802022511448226/</guid><description>Rule: A failing automated check should break the build. If we start allowing some warnings, errors, or broken tests, it creates a slippery slope. I...</description><pubDate>Thu, 21 Mar 2024 13:17:56 GMT</pubDate><category>Tweets</category></item><item><title>I love how React hooks let me create a well-named, encapsulated, reusable logic</title><link>https://coryhouse.dev/2024/03/21/tweet-1770849539487854737/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/21/tweet-1770849539487854737/</guid><description>I love how React hooks let me create a well-named, encapsulated, reusable logic. My components are simple and easy to understand because the compli...</description><pubDate>Thu, 21 Mar 2024 16:26:45 GMT</pubDate><category>Tweets</category></item><item><title>A developer shouldn&apos;t merely do what they&apos;re told</title><link>https://coryhouse.dev/2024/03/21/tweet-1770860048358527010/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/21/tweet-1770860048358527010/</guid><description>A developer shouldn&apos;t merely do what they&apos;re told. Why? Because it&apos;s not a developer&apos;s job to merely follow orders. We&apos;re paid to see the gaps. We&apos;...</description><pubDate>Thu, 21 Mar 2024 17:08:31 GMT</pubDate><category>Tweets</category></item><item><title>Common scenario: Separate backend and UI teams are building a web app together</title><link>https://coryhouse.dev/2024/03/21/tweet-1770913673336287579/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/21/tweet-1770913673336287579/</guid><description>Common scenario: Separate backend and UI teams are building a web app together. Problem: The shared development environment is unreliable because t...</description><pubDate>Thu, 21 Mar 2024 20:41:36 GMT</pubDate><category>Tweets</category></item><item><title>&quot;E2E tests are flaky&quot; Yep, often true</title><link>https://coryhouse.dev/2024/03/22/tweet-1771154492970455357/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/22/tweet-1771154492970455357/</guid><description>&quot;E2E tests are flaky&quot; Yep, often true. But, E2E tests aren&apos;t inherently flaky. They&apos;re flaky for a *reason*: 🚩 The UI is buggy. 🚩 The backend is...</description><pubDate>Fri, 22 Mar 2024 12:38:32 GMT</pubDate><category>Tweets</category></item><item><title>A weird mistake one of my clients is making: If an invalid/inaccessible URL...</title><link>https://coryhouse.dev/2024/03/23/tweet-1771560310396035082/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/23/tweet-1771560310396035082/</guid><description>A weird mistake one of my clients is making: If an invalid/inaccessible URL is requested, they redirect to /404. Don’t do this. If an invalid URL i...</description><pubDate>Sat, 23 Mar 2024 15:31:06 GMT</pubDate><category>Tweets</category></item><item><title>Rule: If it&apos;s worth checking, it&apos;s worth automating</title><link>https://coryhouse.dev/2024/03/24/tweet-1771885517082140939/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/24/tweet-1771885517082140939/</guid><description>Rule: If it&apos;s worth checking, it&apos;s worth automating. But, some checks can&apos;t be automated. So, here are 9 things that I look for in code reviews: 1....</description><pubDate>Sun, 24 Mar 2024 13:03:21 GMT</pubDate><category>Tweets</category></item><item><title>A developer&apos;s job in one word: communication</title><link>https://coryhouse.dev/2024/03/25/tweet-1772246870305193987/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/25/tweet-1772246870305193987/</guid><description>A developer&apos;s job in one word: communication. We communicate with computers *and co-workers* via code. We communicate via speech, written word, dra...</description><pubDate>Mon, 25 Mar 2024 12:59:15 GMT</pubDate><category>Tweets</category></item><item><title>Early in my career I struggled with communication</title><link>https://coryhouse.dev/2024/03/25/tweet-1772265070086529410/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/25/tweet-1772265070086529410/</guid><description>Early in my career I struggled with communication. I found these books helpful: - How to Win Friends and Influence People - Crucial Conversations -...</description><pubDate>Mon, 25 Mar 2024 14:11:34 GMT</pubDate><category>Tweets</category></item><item><title>I rarely experience performance problems in React</title><link>https://coryhouse.dev/2024/03/25/tweet-1772315474044301390/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/25/tweet-1772315474044301390/</guid><description>I rarely experience performance problems in React. And when I do, I find moving state “lower” is often the solution. What tricky performance proble...</description><pubDate>Mon, 25 Mar 2024 17:31:51 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You’re using msw (@ApiMocking) to mock out HTTP calls during...</title><link>https://coryhouse.dev/2024/03/26/tweet-1772621806563721444/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/26/tweet-1772621806563721444/</guid><description>Problem: You’re using msw (@ApiMocking) to mock out HTTP calls during development and automated testing, and you want to dynamically change the moc...</description><pubDate>Tue, 26 Mar 2024 13:49:07 GMT</pubDate><category>Tweets</category></item><item><title>Sometimes, an Array.find is a sign of sloppy code</title><link>https://coryhouse.dev/2024/03/27/tweet-1772798963176935690/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/27/tweet-1772798963176935690/</guid><description>Sometimes, an Array.find is a sign of sloppy code. Example: Code passes around an id, and then multiple spots search an array for the full record....</description><pubDate>Wed, 27 Mar 2024 01:33:04 GMT</pubDate><category>Tweets</category></item><item><title>Many UI teams are making a fundamental mistake: They’re not using mocks...</title><link>https://coryhouse.dev/2024/03/27/tweet-1772966650452529617/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/27/tweet-1772966650452529617/</guid><description>Many UI teams are making a fundamental mistake: They’re not using mocks effectively. The solution? Mock Driven Development.™️ 1. *Before* coding, l...</description><pubDate>Wed, 27 Mar 2024 12:39:24 GMT</pubDate><category>Tweets</category></item><item><title>General HTML rule: “disabled” optimizes for DX</title><link>https://coryhouse.dev/2024/03/28/tweet-1773329972637134954/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/28/tweet-1773329972637134954/</guid><description>General HTML rule: “disabled” optimizes for DX. It’s simple and easy for developers. “aria-disabled” optimizes for UX. It improves accessibility an...</description><pubDate>Thu, 28 Mar 2024 12:43:07 GMT</pubDate><category>Tweets</category></item><item><title>When testing for expected strings, I typically assert explicit strings, not...</title><link>https://coryhouse.dev/2024/03/29/tweet-1773688624564822465/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/29/tweet-1773688624564822465/</guid><description>When testing for expected strings, I typically assert explicit strings, not the result of function invocations. Example: Here’s why: - Asserting fo...</description><pubDate>Fri, 29 Mar 2024 12:28:16 GMT</pubDate><category>Tweets</category></item><item><title>When I was a manager, some people came to me with problems</title><link>https://coryhouse.dev/2024/03/29/tweet-1773747948578308302/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/29/tweet-1773747948578308302/</guid><description>When I was a manager, some people came to me with problems. Others came to me with solutions. Guess who got promoted? Don&apos;t merely report problems....</description><pubDate>Fri, 29 Mar 2024 16:24:00 GMT</pubDate><category>Tweets</category></item><item><title>There are infinite ways to write software poorly</title><link>https://coryhouse.dev/2024/03/30/tweet-1774065093833027772/</link><guid isPermaLink="true">https://coryhouse.dev/2024/03/30/tweet-1774065093833027772/</guid><description>There are infinite ways to write software poorly. There are few ways to write software well. We&apos;re a young industry, but we know what works: Break...</description><pubDate>Sat, 30 Mar 2024 13:24:13 GMT</pubDate><category>Tweets</category></item><item><title>I believe the pendulum shift back to server-rendering will help many teams...</title><link>https://coryhouse.dev/2024/04/01/tweet-1774896639859384765/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/01/tweet-1774896639859384765/</guid><description>I believe the pendulum shift back to server-rendering will help many teams write better software. Why? By improving developer communication. Back i...</description><pubDate>Mon, 01 Apr 2024 20:28:29 GMT</pubDate><category>Tweets</category></item><item><title>Problem: For accessibility and SEO, each page should have an H1 tag</title><link>https://coryhouse.dev/2024/04/02/tweet-1775146188204847142/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/02/tweet-1775146188204847142/</guid><description>Problem: For accessibility and SEO, each page should have an H1 tag. And heading tags should be in ascending order. But it’s easy to mess this up b...</description><pubDate>Tue, 02 Apr 2024 13:00:06 GMT</pubDate><category>Tweets</category></item><item><title>Just noticed another benefit of using Zod: It draws attention to bad...</title><link>https://coryhouse.dev/2024/04/02/tweet-1775247936709935430/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/02/tweet-1775247936709935430/</guid><description>Just noticed another benefit of using Zod: It draws attention to bad endpoint designs. Example: Why is the backend returning null if there are no t...</description><pubDate>Tue, 02 Apr 2024 19:44:25 GMT</pubDate><category>Tweets</category></item><item><title>React habit: Avoid putting things that only need to render once in a component</title><link>https://coryhouse.dev/2024/04/03/tweet-1775530951734346077/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/03/tweet-1775530951734346077/</guid><description>React habit: Avoid putting things that only need to render once in a component. Instead, I put things that only need to render once in root.render....</description><pubDate>Wed, 03 Apr 2024 14:29:01 GMT</pubDate><category>Tweets</category></item><item><title>I often see aria-labels that look like an id: 🚩...</title><link>https://coryhouse.dev/2024/04/04/tweet-1775872079658643643/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/04/tweet-1775872079658643643/</guid><description>I often see aria-labels that look like an id: 🚩 aria-label=&quot;delete-user-button&quot; An aria-label should have a *user-friendly* label that describes w...</description><pubDate>Thu, 04 Apr 2024 13:04:32 GMT</pubDate><category>Tweets</category></item><item><title>Some developers, when presented with a new library, immediately say “We need...</title><link>https://coryhouse.dev/2024/04/05/tweet-1776231334857338896/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/05/tweet-1776231334857338896/</guid><description>Some developers, when presented with a new library, immediately say “We need to build an abstraction around this before we use it.” You don’t know...</description><pubDate>Fri, 05 Apr 2024 12:52:05 GMT</pubDate><category>Tweets</category></item><item><title>How I get my PRs merged fast: 1</title><link>https://coryhouse.dev/2024/04/05/tweet-1776278026059215021/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/05/tweet-1776278026059215021/</guid><description>How I get my PRs merged fast: 1. Keep the scope small 2. Provide a clear title and test plan 3. Write tests that document the expected behavior 4....</description><pubDate>Fri, 05 Apr 2024 15:57:37 GMT</pubDate><category>Tweets</category></item><item><title>&quot;We don&apos;t do code reviews</title><link>https://coryhouse.dev/2024/04/06/tweet-1776418119717695569/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/06/tweet-1776418119717695569/</guid><description>&quot;We don&apos;t do code reviews. We trust our developers&quot;. You have no idea how often I run a PR and find it&apos;s broken. It&apos;s *extremely* common. Even from...</description><pubDate>Sat, 06 Apr 2024 01:14:18 GMT</pubDate><category>Tweets</category></item><item><title>If the team is ignoring PRs that’s a management problem</title><link>https://coryhouse.dev/2024/04/06/tweet-1776602787297546677/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/06/tweet-1776602787297546677/</guid><description>If the team is ignoring PRs that’s a management problem. Managers need to make it clear that code reviews are important. The team needs to know: 1....</description><pubDate>Sat, 06 Apr 2024 13:28:06 GMT</pubDate><category>Tweets</category></item><item><title>Rule for choosing between a URL path and search param: Search params are...</title><link>https://coryhouse.dev/2024/04/06/tweet-1776726893695226020/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/06/tweet-1776726893695226020/</guid><description>Rule for choosing between a URL path and search param: Search params are optional. So, if it’s required to render the page make it part of the URL&apos;...</description><pubDate>Sat, 06 Apr 2024 21:41:16 GMT</pubDate><category>Tweets</category></item><item><title>“Deploy daily.” It’s a wonderful goal</title><link>https://coryhouse.dev/2024/04/07/tweet-1776964225920852122/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/07/tweet-1776964225920852122/</guid><description>“Deploy daily.” It’s a wonderful goal. But to safely deploy daily, you need a mature foundation: Automated build &amp; tests No-downtime automated...</description><pubDate>Sun, 07 Apr 2024 13:24:20 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Ideally, everyone is responsible for quality</title><link>https://coryhouse.dev/2024/04/08/tweet-1777317065180827891/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/08/tweet-1777317065180827891/</guid><description>Problem: Ideally, everyone is responsible for quality. But, if everyone is responsible, no one is responsible. Solution: Establish a code owner. Th...</description><pubDate>Mon, 08 Apr 2024 12:46:23 GMT</pubDate><category>Tweets</category></item><item><title>Disabled input fields aren&apos;t a loading strategy</title><link>https://coryhouse.dev/2024/04/09/tweet-1777734856044126328/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/09/tweet-1777734856044126328/</guid><description>Disabled input fields aren&apos;t a loading strategy. Show a loading indicator. Disabled buttons aren&apos;t a validation strategy. Show a helpful message wh...</description><pubDate>Tue, 09 Apr 2024 16:26:33 GMT</pubDate><category>Tweets</category></item><item><title>Problem: If an endpoint returns JSON with properties I don&apos;t expect, I want...</title><link>https://coryhouse.dev/2024/04/09/tweet-1777806001300705414/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/09/tweet-1777806001300705414/</guid><description>Problem: If an endpoint returns JSON with properties I don&apos;t expect, I want to know about it. Solution: Use Zod with strict().</description><pubDate>Tue, 09 Apr 2024 21:09:15 GMT</pubDate><category>Tweets</category></item><item><title>In TypeScript, declaring types saves me more time than it costs me: ✅Speeds...</title><link>https://coryhouse.dev/2024/04/10/tweet-1778063505272221771/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/10/tweet-1778063505272221771/</guid><description>In TypeScript, declaring types saves me more time than it costs me: ✅Speeds up my reading. ✅Catches my errors earlier. ✅Clarifies my mental model....</description><pubDate>Wed, 10 Apr 2024 14:12:29 GMT</pubDate><category>Tweets</category></item><item><title>Folder pattern I’m enjoying: “Local” shared directories</title><link>https://coryhouse.dev/2024/04/11/tweet-1778407823212155131/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/11/tweet-1778407823212155131/</guid><description>Folder pattern I’m enjoying: “Local” shared directories. 1. First, create a shared directory at the root. This contains code shared across the enti...</description><pubDate>Thu, 11 Apr 2024 13:00:40 GMT</pubDate><category>Tweets</category></item><item><title>Situation: A React component with 5 useEffect calls has a bug</title><link>https://coryhouse.dev/2024/04/13/tweet-1778971683786838258/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/13/tweet-1778971683786838258/</guid><description>Situation: A React component with 5 useEffect calls has a bug. Solution: Add a 6th useEffect to fix the bug. Just kidding. That&apos;s not a solution. I...</description><pubDate>Sat, 13 Apr 2024 02:21:15 GMT</pubDate><category>Tweets</category></item><item><title>A recipe for fast, reliable end-to-end tests (no mocks): 1</title><link>https://coryhouse.dev/2024/04/13/tweet-1779126408289161702/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/13/tweet-1779126408289161702/</guid><description>A recipe for fast, reliable end-to-end tests (no mocks): 1. Create a test DB instance. 2. Create SQL scripts to populate the test DB with enough da...</description><pubDate>Sat, 13 Apr 2024 12:36:04 GMT</pubDate><category>Tweets</category></item><item><title>An epidemic problem in software: Teams with missing skill sets</title><link>https://coryhouse.dev/2024/04/14/tweet-1779502566138687953/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/14/tweet-1779502566138687953/</guid><description>An epidemic problem in software: Teams with missing skill sets. I find teams often lack expertise in these skills: Devops Testing Security Accessib...</description><pubDate>Sun, 14 Apr 2024 13:30:47 GMT</pubDate><category>Tweets</category></item><item><title>A surprising thing about owning a Tesla: Nearly everything is automated</title><link>https://coryhouse.dev/2024/04/14/tweet-1779528908909564067/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/14/tweet-1779528908909564067/</guid><description>A surprising thing about owning a Tesla: Nearly everything is automated. When I walk up, the doors sense my phone and unlock. When I get in, the ca...</description><pubDate>Sun, 14 Apr 2024 15:15:28 GMT</pubDate><category>Tweets</category></item><item><title>A key debugging skill: Decomposition</title><link>https://coryhouse.dev/2024/04/16/tweet-1780224831348232230/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/16/tweet-1780224831348232230/</guid><description>A key debugging skill: Decomposition. “Thinking is all about the ability to look at complex situations and strip away things that don&apos;t count—the a...</description><pubDate>Tue, 16 Apr 2024 13:20:49 GMT</pubDate><category>Tweets</category></item><item><title>A common coding mistake: Inconsistent terms</title><link>https://coryhouse.dev/2024/04/16/tweet-1780323656171655482/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/16/tweet-1780323656171655482/</guid><description>A common coding mistake: Inconsistent terms. Example: I&apos;m reviewing a PR that alternates between these terms: saving pending creating submitting Us...</description><pubDate>Tue, 16 Apr 2024 19:53:31 GMT</pubDate><category>Tweets</category></item><item><title>So much needless UI complexity stems from REST APIs that do these two...</title><link>https://coryhouse.dev/2024/04/16/tweet-1780373556473291110/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/16/tweet-1780373556473291110/</guid><description>So much needless UI complexity stems from REST APIs that do these two things: Return null or undefined instead of an empty string. Return null or u...</description><pubDate>Tue, 16 Apr 2024 23:11:48 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You want to access some React state outside of React, in plain JS/TS</title><link>https://coryhouse.dev/2024/04/17/tweet-1780704306611863574/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/17/tweet-1780704306611863574/</guid><description>Problem: You want to access some React state outside of React, in plain JS/TS. Solution: Move the state out of React. Put it in Zustand instead. Zu...</description><pubDate>Wed, 17 Apr 2024 21:06:05 GMT</pubDate><category>Tweets</category></item><item><title>Scenario: You&apos;re mocking HTTP calls in automated tests</title><link>https://coryhouse.dev/2024/04/18/tweet-1780774788769751460/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/18/tweet-1780774788769751460/</guid><description>Scenario: You&apos;re mocking HTTP calls in automated tests. Question: Do your tests reference the mock data structure? Or do you hard-code the expected...</description><pubDate>Thu, 18 Apr 2024 01:46:09 GMT</pubDate><category>Tweets</category></item><item><title>Just finished the book “What’s Our Problem” by @waitbutwhy</title><link>https://coryhouse.dev/2024/04/18/tweet-1780955494548475950/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/18/tweet-1780955494548475950/</guid><description>Just finished the book “What’s Our Problem” by @waitbutwhy. America’s problem isn’t the left or the right. America’s problem is “low-rung”, “us vs...</description><pubDate>Thu, 18 Apr 2024 13:44:13 GMT</pubDate><category>Tweets</category></item><item><title>You don’t need a service provider to do feature flags</title><link>https://coryhouse.dev/2024/04/18/tweet-1781019085062488366/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/18/tweet-1781019085062488366/</guid><description>You don’t need a service provider to do feature flags. There are many simple ways to toggle a feature: -Comment out code -Hide the feature’s link -...</description><pubDate>Thu, 18 Apr 2024 17:56:54 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You want type-safe mock responses</title><link>https://coryhouse.dev/2024/04/19/tweet-1781304784709906515/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/19/tweet-1781304784709906515/</guid><description>Problem: You want type-safe mock responses. Solution: 1. Create an object literal. 2. Use keys to describe each response. 3. Narrow the type via &apos;a...</description><pubDate>Fri, 19 Apr 2024 12:52:10 GMT</pubDate><category>Tweets</category></item><item><title>Accessibility mistake: Putting an aria-label on a non-interactive element</title><link>https://coryhouse.dev/2024/04/19/tweet-1781374851782988200/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/19/tweet-1781374851782988200/</guid><description>Accessibility mistake: Putting an aria-label on a non-interactive element. An aria-label is for *interactive* elements like a button or a link. So,...</description><pubDate>Fri, 19 Apr 2024 17:30:35 GMT</pubDate><category>Tweets</category></item><item><title>Wanna speed up your TypeScript builds and improve your IDE&apos;s TypeScript...</title><link>https://coryhouse.dev/2024/04/19/tweet-1781415502767673464/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/19/tweet-1781415502767673464/</guid><description>Wanna speed up your TypeScript builds and improve your IDE&apos;s TypeScript language server performance? Replace type intersections with interfaces. He...</description><pubDate>Fri, 19 Apr 2024 20:12:07 GMT</pubDate><category>Tweets</category></item><item><title>Early in my career, when someone would interrupt me while coding, it would...</title><link>https://coryhouse.dev/2024/04/20/tweet-1781767529897103659/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/20/tweet-1781767529897103659/</guid><description>Early in my career, when someone would interrupt me while coding, it would stress me out. I felt like I had a house of cards in my head. So it was...</description><pubDate>Sat, 20 Apr 2024 19:30:57 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You want to find copy/pasted code</title><link>https://coryhouse.dev/2024/04/21/tweet-1782030911292235959/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/21/tweet-1782030911292235959/</guid><description>Problem: You want to find copy/pasted code. Solution: jscpd. It finds copy/pasted code in over 150 languages. I just ran this command on a JS proje...</description><pubDate>Sun, 21 Apr 2024 12:57:32 GMT</pubDate><category>Tweets</category></item><item><title>Scenario: You’re using React Server Components, so you can query the DB in a...</title><link>https://coryhouse.dev/2024/04/21/tweet-1782063218686353664/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/21/tweet-1782063218686353664/</guid><description>Scenario: You’re using React Server Components, so you can query the DB in a server component. Your app is the DB’s only consumer. Do you query the...</description><pubDate>Sun, 21 Apr 2024 15:05:55 GMT</pubDate><category>Tweets</category></item><item><title>Challenge: Name something that a software developer should *always* do</title><link>https://coryhouse.dev/2024/04/23/tweet-1782819837607125421/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/23/tweet-1782819837607125421/</guid><description>Challenge: Name something that a software developer should *always* do. Is there a single practice that always applies? &quot;Write tests&quot;. Not always w...</description><pubDate>Tue, 23 Apr 2024 17:12:27 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Fetching in useEffect is clunky, verbose, and error prone</title><link>https://coryhouse.dev/2024/04/24/tweet-1783135137066082373/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/24/tweet-1783135137066082373/</guid><description>Problem: Fetching in useEffect is clunky, verbose, and error prone. Solution: Use one of these instead: 1. React Server Components 2. Tanstack Quer...</description><pubDate>Wed, 24 Apr 2024 14:05:20 GMT</pubDate><category>Tweets</category></item><item><title>Sometimes the divide between the backend and frontend leads to massive waste</title><link>https://coryhouse.dev/2024/04/24/tweet-1783211137766400151/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/24/tweet-1783211137766400151/</guid><description>Sometimes the divide between the backend and frontend leads to massive waste. Example: I&apos;m looking at a web page that displays 6 numbers. Sounds si...</description><pubDate>Wed, 24 Apr 2024 19:07:20 GMT</pubDate><category>Tweets</category></item><item><title>Problem: I want to show a spinner if any React Query mutations are in progress</title><link>https://coryhouse.dev/2024/04/25/tweet-1783486854383227285/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/25/tweet-1783486854383227285/</guid><description>Problem: I want to show a spinner if any React Query mutations are in progress. Solution: useIsMutating. This hook returns true if any mutations ar...</description><pubDate>Thu, 25 Apr 2024 13:22:56 GMT</pubDate><category>Tweets</category></item><item><title>In the last 10 years I think the change that has most improved my web...</title><link>https://coryhouse.dev/2024/04/25/tweet-1783539037195669726/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/25/tweet-1783539037195669726/</guid><description>In the last 10 years I think the change that has most improved my web development experience is moving from JavaScript to TypeScript. I haven&apos;t see...</description><pubDate>Thu, 25 Apr 2024 16:50:17 GMT</pubDate><category>Tweets</category></item><item><title>“Duplicated code is often better than wrong abstraction.” “Excessive...</title><link>https://coryhouse.dev/2024/04/28/tweet-1784580111397798035/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/28/tweet-1784580111397798035/</guid><description>“Duplicated code is often better than wrong abstraction.” “Excessive copy/paste bloats the code, hurts consistency, slows reading, increases bug ri...</description><pubDate>Sun, 28 Apr 2024 13:47:09 GMT</pubDate><category>Tweets</category></item><item><title>Problem: “Duplication is often better than the wrong abstraction”</title><link>https://coryhouse.dev/2024/04/30/tweet-1785305853567947165/</link><guid isPermaLink="true">https://coryhouse.dev/2024/04/30/tweet-1785305853567947165/</guid><description>Problem: “Duplication is often better than the wrong abstraction”. Solution: I typically abstract via small, focused, pure functions. A pure functi...</description><pubDate>Tue, 30 Apr 2024 13:50:59 GMT</pubDate><category>Tweets</category></item><item><title>In TypeScript apps, if something is hard to type, my design is probably wrong</title><link>https://coryhouse.dev/2024/05/02/tweet-1786033001794596919/</link><guid isPermaLink="true">https://coryhouse.dev/2024/05/02/tweet-1786033001794596919/</guid><description>In TypeScript apps, if something is hard to type, my design is probably wrong. Sure, reusable libraries are often hard to type. But *app* code shou...</description><pubDate>Thu, 02 May 2024 14:00:25 GMT</pubDate><category>Tweets</category></item><item><title>Rushing developers creates a downward spiral of quality</title><link>https://coryhouse.dev/2024/05/03/tweet-1786404686427312238/</link><guid isPermaLink="true">https://coryhouse.dev/2024/05/03/tweet-1786404686427312238/</guid><description>Rushing developers creates a downward spiral of quality. When developers feel rushed, they cut corners. Stress makes us less creative too, so we ta...</description><pubDate>Fri, 03 May 2024 14:37:21 GMT</pubDate><category>Tweets</category></item><item><title>Why I prefer const over let: ✅ const provides me extra cues because const is...</title><link>https://coryhouse.dev/2024/05/03/tweet-1786425762251198944/</link><guid isPermaLink="true">https://coryhouse.dev/2024/05/03/tweet-1786425762251198944/</guid><description>Why I prefer const over let: ✅ const provides me extra cues because const is more “narrow” than let. Just like in TypeScript, I favor narrow types...</description><pubDate>Fri, 03 May 2024 16:01:06 GMT</pubDate><category>Tweets</category></item><item><title>I disagree with the majority here</title><link>https://coryhouse.dev/2024/05/04/tweet-1786562258014818617/</link><guid isPermaLink="true">https://coryhouse.dev/2024/05/04/tweet-1786562258014818617/</guid><description>I disagree with the majority here. There are 4 reasons to choose an anchor over a button in this scenario: 1. Semantics. If it changes the url, it’...</description><pubDate>Sat, 04 May 2024 01:03:29 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m creating the same app using a variety of third-party React state...</title><link>https://coryhouse.dev/2024/05/06/tweet-1787502939004666337/</link><guid isPermaLink="true">https://coryhouse.dev/2024/05/06/tweet-1787502939004666337/</guid><description>I&apos;m creating the same app using a variety of third-party React state management libraries. The tradeoffs in PR diffs are enlightening. I&apos;m eager to...</description><pubDate>Mon, 06 May 2024 15:21:25 GMT</pubDate><category>Tweets</category></item><item><title>I see some React apps using useMemo everywhere</title><link>https://coryhouse.dev/2024/05/07/tweet-1787827622992281615/</link><guid isPermaLink="true">https://coryhouse.dev/2024/05/07/tweet-1787827622992281615/</guid><description>I see some React apps using useMemo everywhere. Don&apos;t. useMemo is rarely necessary. It makes code harder to read. React compiler is coming later th...</description><pubDate>Tue, 07 May 2024 12:51:36 GMT</pubDate><category>Tweets</category></item><item><title>Problem: We have a flaky test that keeps breaking our CI build</title><link>https://coryhouse.dev/2024/05/08/tweet-1788233684790673755/</link><guid isPermaLink="true">https://coryhouse.dev/2024/05/08/tweet-1788233684790673755/</guid><description>Problem: We have a flaky test that keeps breaking our CI build. Solution: Don&apos;t repeatedly the CI build hoping a flaky test will pass. Instead: 1....</description><pubDate>Wed, 08 May 2024 15:45:08 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Slow pull request reviews Solutions: ✅ Pair program ✅ Open small,...</title><link>https://coryhouse.dev/2024/05/09/tweet-1788540831504162933/</link><guid isPermaLink="true">https://coryhouse.dev/2024/05/09/tweet-1788540831504162933/</guid><description>Problem: Slow pull request reviews Solutions: ✅ Pair program ✅ Open small, focused PRs ✅ Request a real-time review ✅ Request early feedback on dra...</description><pubDate>Thu, 09 May 2024 12:05:38 GMT</pubDate><category>Tweets</category></item><item><title>Feature flag pattern: When replacing an old feature with a new feature via a...</title><link>https://coryhouse.dev/2024/05/09/tweet-1788599130157125867/</link><guid isPermaLink="true">https://coryhouse.dev/2024/05/09/tweet-1788599130157125867/</guid><description>Feature flag pattern: When replacing an old feature with a new feature via a feature flag, avoid changing the old code. Why? Because changing the o...</description><pubDate>Thu, 09 May 2024 15:57:17 GMT</pubDate><category>Tweets</category></item><item><title>React problem: I want to use a feature flag to call one of two React hooks -...</title><link>https://coryhouse.dev/2024/05/09/tweet-1788655496313930215/</link><guid isPermaLink="true">https://coryhouse.dev/2024/05/09/tweet-1788655496313930215/</guid><description>React problem: I want to use a feature flag to call one of two React hooks - an old one, or a new one that will soon replace it. But, React hooks s...</description><pubDate>Thu, 09 May 2024 19:41:16 GMT</pubDate><category>Tweets</category></item><item><title>A bad developer keeps adding complexity until it finally works</title><link>https://coryhouse.dev/2024/05/10/tweet-1788914340952695210/</link><guid isPermaLink="true">https://coryhouse.dev/2024/05/10/tweet-1788914340952695210/</guid><description>A bad developer keeps adding complexity until it finally works. A good developer keeps reducing complexity until it can&apos;t be any simpler.</description><pubDate>Fri, 10 May 2024 12:49:49 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Too many browser tabs</title><link>https://coryhouse.dev/2024/05/11/tweet-1789281801992597651/</link><guid isPermaLink="true">https://coryhouse.dev/2024/05/11/tweet-1789281801992597651/</guid><description>Problem: Too many browser tabs. They’re distracting. It’s hard to find the tab I want. Many visible tabs create stress. Two solutions: 1. Topical b...</description><pubDate>Sat, 11 May 2024 13:09:59 GMT</pubDate><category>Tweets</category></item><item><title>I can’t stop thinking about this quote</title><link>https://coryhouse.dev/2024/05/12/tweet-1789676865000456631/</link><guid isPermaLink="true">https://coryhouse.dev/2024/05/12/tweet-1789676865000456631/</guid><description>I can’t stop thinking about this quote. “Unspoken expectations are premeditated resentments.” - Neil Strauss Succinct, powerful relationship advice...</description><pubDate>Sun, 12 May 2024 15:19:49 GMT</pubDate><category>Tweets</category></item><item><title>One of my clients creates a custom hook for *every* React component</title><link>https://coryhouse.dev/2024/05/13/tweet-1790033762337673477/</link><guid isPermaLink="true">https://coryhouse.dev/2024/05/13/tweet-1790033762337673477/</guid><description>One of my clients creates a custom hook for *every* React component. So every component is only JSX. Example: User.tsx // Just JSX useUser.ts // Al...</description><pubDate>Mon, 13 May 2024 14:58:00 GMT</pubDate><category>Tweets</category></item><item><title>&quot;We create a separate hook for every React component to keep the component...</title><link>https://coryhouse.dev/2024/05/13/tweet-1790076386587099223/</link><guid isPermaLink="true">https://coryhouse.dev/2024/05/13/tweet-1790076386587099223/</guid><description>&quot;We create a separate hook for every React component to keep the component file small.&quot; If the component is too big, split the component. Don&apos;t spl...</description><pubDate>Mon, 13 May 2024 17:47:23 GMT</pubDate><category>Tweets</category></item><item><title>Just did a short stopover in Iceland on the way to speak in London</title><link>https://coryhouse.dev/2024/05/14/tweet-1790323018440286225/</link><guid isPermaLink="true">https://coryhouse.dev/2024/05/14/tweet-1790323018440286225/</guid><description>Just did a short stopover in Iceland on the way to speak in London. In one day saw geysers, mountains, craters, visible fault lines, and lagoons. S...</description><pubDate>Tue, 14 May 2024 10:07:24 GMT</pubDate><category>Tweets</category></item><item><title>Wow, someone built the same site in two ways: 1</title><link>https://coryhouse.dev/2024/05/17/tweet-1791487717760537084/</link><guid isPermaLink="true">https://coryhouse.dev/2024/05/17/tweet-1791487717760537084/</guid><description>Wow, someone built the same site in two ways: 1. Traditional client-side React 2. React Server Components The RSC site: ~3x faster rendering 62% sm...</description><pubDate>Fri, 17 May 2024 15:15:30 GMT</pubDate><category>Tweets</category></item><item><title>React&apos;s simple idea: Decompose complexity via components</title><link>https://coryhouse.dev/2024/05/17/tweet-1791545200499630463/</link><guid isPermaLink="true">https://coryhouse.dev/2024/05/17/tweet-1791545200499630463/</guid><description>React&apos;s simple idea: Decompose complexity via components. Every time I see diffs like this I smile. The code on the left is repetitive. Differences...</description><pubDate>Fri, 17 May 2024 19:03:55 GMT</pubDate><category>Tweets</category></item><item><title>I love that the React ecosystem keeps innovating</title><link>https://coryhouse.dev/2024/05/18/tweet-1791857250950107278/</link><guid isPermaLink="true">https://coryhouse.dev/2024/05/18/tweet-1791857250950107278/</guid><description>I love that the React ecosystem keeps innovating. But you don’t have to use a big, opinionated framework. A plain old client-side rendered React SP...</description><pubDate>Sat, 18 May 2024 15:43:54 GMT</pubDate><category>Tweets</category></item><item><title>Just watched @dan_abramov’s React Conf talk</title><link>https://coryhouse.dev/2024/05/19/tweet-1792017620591423973/</link><guid isPermaLink="true">https://coryhouse.dev/2024/05/19/tweet-1792017620591423973/</guid><description>Just watched @dan_abramov’s React Conf talk. Summary: RSC allows two computers to handle React instead of just one. I really enjoyed his framing. E...</description><pubDate>Sun, 19 May 2024 02:21:09 GMT</pubDate><category>Tweets</category></item><item><title>Quiz: Let’s see how well we understand React Server Components</title><link>https://coryhouse.dev/2024/05/19/tweet-1792193110971420951/</link><guid isPermaLink="true">https://coryhouse.dev/2024/05/19/tweet-1792193110971420951/</guid><description>Quiz: Let’s see how well we understand React Server Components. Here are 12 questions. Question 1: Can a client component render a server component?</description><pubDate>Sun, 19 May 2024 13:58:29 GMT</pubDate><category>Tweets</category></item><item><title>When I feel burned out, I avoid screens</title><link>https://coryhouse.dev/2024/05/19/tweet-1792285154779566491/</link><guid isPermaLink="true">https://coryhouse.dev/2024/05/19/tweet-1792285154779566491/</guid><description>When I feel burned out, I avoid screens. Instead I: Hang out with friends and fam. Read a paper book. Take a walk. Play sports. Take a nap. Exercis...</description><pubDate>Sun, 19 May 2024 20:04:14 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You want to initialize something only once in a React component</title><link>https://coryhouse.dev/2024/05/20/tweet-1792526262751117371/</link><guid isPermaLink="true">https://coryhouse.dev/2024/05/20/tweet-1792526262751117371/</guid><description>Problem: You want to initialize something only once in a React component. Solution: Call useState without a setter. Idea via @TkDodo</description><pubDate>Mon, 20 May 2024 12:02:19 GMT</pubDate><category>Tweets</category></item><item><title>Problem: I want to use a TypeScript union type, but: The list of options is...</title><link>https://coryhouse.dev/2024/05/20/tweet-1792604225324581135/</link><guid isPermaLink="true">https://coryhouse.dev/2024/05/20/tweet-1792604225324581135/</guid><description>Problem: I want to use a TypeScript union type, but: The list of options is long (dozens, but less than 100) The list is in the DB, and changes occ...</description><pubDate>Mon, 20 May 2024 17:12:06 GMT</pubDate><category>Tweets</category></item><item><title>Problem: If you move files via cut and paste, Git “sees” a remove and an add</title><link>https://coryhouse.dev/2024/05/21/tweet-1792956108346204331/</link><guid isPermaLink="true">https://coryhouse.dev/2024/05/21/tweet-1792956108346204331/</guid><description>Problem: If you move files via cut and paste, Git “sees” a remove and an add. This creates merge conflicts and breaks file commit history. Solution...</description><pubDate>Tue, 21 May 2024 16:30:22 GMT</pubDate><category>Tweets</category></item><item><title>Common issue I&apos;ve seen with teams that use a global state tools like Redux:...</title><link>https://coryhouse.dev/2024/05/21/tweet-1793020457723003083/</link><guid isPermaLink="true">https://coryhouse.dev/2024/05/21/tweet-1793020457723003083/</guid><description>Common issue I&apos;ve seen with teams that use a global state tools like Redux: Overuse. If global state exists, people try to overuse it. Developers l...</description><pubDate>Tue, 21 May 2024 20:46:04 GMT</pubDate><category>Tweets</category></item><item><title>React compiler is experimental, but it&apos;s safe to use...</title><link>https://coryhouse.dev/2024/05/22/tweet-1793260367587516699/</link><guid isPermaLink="true">https://coryhouse.dev/2024/05/22/tweet-1793260367587516699/</guid><description>React compiler is experimental, but it&apos;s safe to use eslint-plugin-react-compiler with ESLint today. The plugin reports mistakes like: 🚩 Mutating...</description><pubDate>Wed, 22 May 2024 12:39:23 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript problem: You need to support any string value, but you’d like...</title><link>https://coryhouse.dev/2024/05/23/tweet-1793629599814811984/</link><guid isPermaLink="true">https://coryhouse.dev/2024/05/23/tweet-1793629599814811984/</guid><description>TypeScript problem: You need to support any string value, but you’d like autocomplete support for common values. Solution: Create a union with &quot;str...</description><pubDate>Thu, 23 May 2024 13:06:35 GMT</pubDate><category>Tweets</category></item><item><title>Signs we should split a component: 🚩 The props are complicated and...</title><link>https://coryhouse.dev/2024/05/23/tweet-1793693898251944257/</link><guid isPermaLink="true">https://coryhouse.dev/2024/05/23/tweet-1793693898251944257/</guid><description>Signs we should split a component: 🚩 The props are complicated and confusing 🚩 We need different combinations of props for different use cases 🚩...</description><pubDate>Thu, 23 May 2024 17:22:05 GMT</pubDate><category>Tweets</category></item><item><title>I finally switched to Arc browser a week ago</title><link>https://coryhouse.dev/2024/05/24/tweet-1793976806111948973/</link><guid isPermaLink="true">https://coryhouse.dev/2024/05/24/tweet-1793976806111948973/</guid><description>I finally switched to Arc browser a week ago. Wow, it’s fantastic. Spaces are awesome. I often switch between multiple client projects, and persona...</description><pubDate>Fri, 24 May 2024 12:06:15 GMT</pubDate><category>Tweets</category></item><item><title>“Automated tests are like pouring concrete on code.” I disagree</title><link>https://coryhouse.dev/2024/05/26/tweet-1794733715454673175/</link><guid isPermaLink="true">https://coryhouse.dev/2024/05/26/tweet-1794733715454673175/</guid><description>“Automated tests are like pouring concrete on code.” I disagree. Code is malleable. Concrete isn’t. To avoid tests feeling like &quot;pouring concrete o...</description><pubDate>Sun, 26 May 2024 14:13:56 GMT</pubDate><category>Tweets</category></item><item><title>Scenario: A modal for editing a user</title><link>https://coryhouse.dev/2024/05/30/tweet-1796160482077716522/</link><guid isPermaLink="true">https://coryhouse.dev/2024/05/30/tweet-1796160482077716522/</guid><description>Scenario: A modal for editing a user. Modal URL: ?editUserId=1&amp;openEditUserModal=true Problem: The openEditUserModal param is needless. Solutio...</description><pubDate>Thu, 30 May 2024 12:43:24 GMT</pubDate><category>Tweets</category></item><item><title>A user doesn’t think about where state is stored</title><link>https://coryhouse.dev/2024/05/31/tweet-1796513317332095124/</link><guid isPermaLink="true">https://coryhouse.dev/2024/05/31/tweet-1796513317332095124/</guid><description>A user doesn’t think about where state is stored. They think “I’m gonna bookmark this” and expect to see the same thing later. They think “I’m gonn...</description><pubDate>Fri, 31 May 2024 12:05:27 GMT</pubDate><category>Tweets</category></item><item><title>How do you name an array when the noun doesn&apos;t have a plural form</title><link>https://coryhouse.dev/2024/05/31/tweet-1796518212625928472/</link><guid isPermaLink="true">https://coryhouse.dev/2024/05/31/tweet-1796518212625928472/</guid><description>How do you name an array when the noun doesn&apos;t have a plural form? Examples: media deer fish Options: 1. Put an &quot;s&quot; on it anyway: &quot;deers&quot; 2. Suffix...</description><pubDate>Fri, 31 May 2024 12:24:54 GMT</pubDate><category>Tweets</category></item><item><title>25+ ways to handle state in a React app in 2024: React: useState useReducer...</title><link>https://coryhouse.dev/2024/06/01/tweet-1796889591972061515/</link><guid isPermaLink="true">https://coryhouse.dev/2024/06/01/tweet-1796889591972061515/</guid><description>25+ ways to handle state in a React app in 2024: React: useState useReducer useRef useContext (to share useState, useReducer, etc) useOptimistic us...</description><pubDate>Sat, 01 Jun 2024 13:00:37 GMT</pubDate><category>Tweets</category></item><item><title>Situation: You want to write automated tests for a REST API</title><link>https://coryhouse.dev/2024/06/03/tweet-1797598001696759918/</link><guid isPermaLink="true">https://coryhouse.dev/2024/06/03/tweet-1797598001696759918/</guid><description>Situation: You want to write automated tests for a REST API. How do you test it? Options: 1. Performance test the endpoints via K6 (so you know it...</description><pubDate>Mon, 03 Jun 2024 11:55:36 GMT</pubDate><category>Tweets</category></item><item><title>Problem: It’s easy to forget to remove feature flags later</title><link>https://coryhouse.dev/2024/06/05/tweet-1798319075279475158/</link><guid isPermaLink="true">https://coryhouse.dev/2024/06/05/tweet-1798319075279475158/</guid><description>Problem: It’s easy to forget to remove feature flags later. And sometimes it’s hard to remove a flag later because there are many spots to update....</description><pubDate>Wed, 05 Jun 2024 11:40:53 GMT</pubDate><category>Tweets</category></item><item><title>Adding an abstraction may help developers understand a complex app by...</title><link>https://coryhouse.dev/2024/06/06/tweet-1798698210334220729/</link><guid isPermaLink="true">https://coryhouse.dev/2024/06/06/tweet-1798698210334220729/</guid><description>Adding an abstraction may help developers understand a complex app by breaking the problem into small pieces. BUT: Adding too many layers of abstra...</description><pubDate>Thu, 06 Jun 2024 12:47:26 GMT</pubDate><category>Tweets</category></item><item><title>Problem: React Query keeps a reference to everything that was in scope when...</title><link>https://coryhouse.dev/2024/06/06/tweet-1798759070213800030/</link><guid isPermaLink="true">https://coryhouse.dev/2024/06/06/tweet-1798759070213800030/</guid><description>Problem: React Query keeps a reference to everything that was in scope when the queryFn is created. This may lead to a memory leak. Solution: Creat...</description><pubDate>Thu, 06 Jun 2024 16:49:16 GMT</pubDate><category>Tweets</category></item><item><title>Today I helped a team with a 6 year old React app</title><link>https://coryhouse.dev/2024/06/07/tweet-1798872400576012664/</link><guid isPermaLink="true">https://coryhouse.dev/2024/06/07/tweet-1798872400576012664/</guid><description>Today I helped a team with a 6 year old React app. They hadn&apos;t updated packages in years! They were on create-react-app and React 16. I switched th...</description><pubDate>Fri, 07 Jun 2024 00:19:36 GMT</pubDate><category>Tweets</category></item><item><title>How to upgrade old create-react-app app to Vite: 1</title><link>https://coryhouse.dev/2024/06/07/tweet-1798881744235696192/</link><guid isPermaLink="true">https://coryhouse.dev/2024/06/07/tweet-1798881744235696192/</guid><description>How to upgrade old create-react-app app to Vite: 1. Create an empty Vite app. 2. Use that app as a reference. The changes: 1. Add vite.config.ts 2....</description><pubDate>Fri, 07 Jun 2024 00:56:44 GMT</pubDate><category>Tweets</category></item><item><title>Why use Vite instead of create-react-app</title><link>https://coryhouse.dev/2024/06/07/tweet-1799037669261074651/</link><guid isPermaLink="true">https://coryhouse.dev/2024/06/07/tweet-1799037669261074651/</guid><description>Why use Vite instead of create-react-app? - Faster builds - Faster hot reloads - Plugin ecosystem - Uses modern tooling like esbuild - Actively sup...</description><pubDate>Fri, 07 Jun 2024 11:16:19 GMT</pubDate><category>Tweets</category></item><item><title>One of my clients is using an odd React pattern: They put only JSX in components</title><link>https://coryhouse.dev/2024/06/09/tweet-1799777878491516931/</link><guid isPermaLink="true">https://coryhouse.dev/2024/06/09/tweet-1799777878491516931/</guid><description>One of my clients is using an odd React pattern: They put only JSX in components. All logic is placed in a custom hook with matching name. Example:...</description><pubDate>Sun, 09 Jun 2024 12:17:39 GMT</pubDate><category>Tweets</category></item><item><title>Separating unrelated concerns is helpful</title><link>https://coryhouse.dev/2024/06/09/tweet-1799802637660909893/</link><guid isPermaLink="true">https://coryhouse.dev/2024/06/09/tweet-1799802637660909893/</guid><description>Separating unrelated concerns is helpful. Separating related concerns is unhelpful. Helpful separation: date.js auth.js Dates and auth are unrelate...</description><pubDate>Sun, 09 Jun 2024 13:56:02 GMT</pubDate><category>Tweets</category></item><item><title>Today I&apos;m working with an app that has too many layers of abstraction</title><link>https://coryhouse.dev/2024/06/10/tweet-1800156661715267934/</link><guid isPermaLink="true">https://coryhouse.dev/2024/06/10/tweet-1800156661715267934/</guid><description>Today I&apos;m working with an app that has too many layers of abstraction. I have so many files open that I can&apos;t remember what they&apos;re all for. I can’...</description><pubDate>Mon, 10 Jun 2024 13:22:48 GMT</pubDate><category>Tweets</category></item><item><title>A mindset I’ve found helpful for learning: Don’t expect to understand on the...</title><link>https://coryhouse.dev/2024/06/11/tweet-1800514473670660452/</link><guid isPermaLink="true">https://coryhouse.dev/2024/06/11/tweet-1800514473670660452/</guid><description>A mindset I’ve found helpful for learning: Don’t expect to understand on the first try. This reduces my anxiety. I expose myself to new ideas in mu...</description><pubDate>Tue, 11 Jun 2024 13:04:37 GMT</pubDate><category>Tweets</category></item><item><title>React’s docs have a gap: They provide no advice for people running...</title><link>https://coryhouse.dev/2024/06/13/tweet-1801268596967882780/</link><guid isPermaLink="true">https://coryhouse.dev/2024/06/13/tweet-1801268596967882780/</guid><description>React’s docs have a gap: They provide no advice for people running create-react-app today. There’s only a “Start a new project” page, and that page...</description><pubDate>Thu, 13 Jun 2024 15:01:14 GMT</pubDate><category>Tweets</category></item><item><title>The React 19 announcements and the existing React docs send a clear message: 1</title><link>https://coryhouse.dev/2024/06/13/tweet-1801276956509389152/</link><guid isPermaLink="true">https://coryhouse.dev/2024/06/13/tweet-1801276956509389152/</guid><description>The React 19 announcements and the existing React docs send a clear message: 1. Use a framework 2. Server render 3. Fetch in the route My concern:...</description><pubDate>Thu, 13 Jun 2024 15:34:27 GMT</pubDate><category>Tweets</category></item><item><title>The new course is live</title><link>https://coryhouse.dev/2024/06/14/tweet-1801665893669200030/</link><guid isPermaLink="true">https://coryhouse.dev/2024/06/14/tweet-1801665893669200030/</guid><description>The new course is live! This course compares a variety of React third-party state libraries and shows how to implement four of the most popular opt...</description><pubDate>Fri, 14 Jun 2024 17:19:57 GMT</pubDate><category>Tweets</category></item><item><title>Sometimes initial page load speed doesn’t matter</title><link>https://coryhouse.dev/2024/06/15/tweet-1801983989177061864/</link><guid isPermaLink="true">https://coryhouse.dev/2024/06/15/tweet-1801983989177061864/</guid><description>Sometimes initial page load speed doesn’t matter. Example: An internal SPA app that an employee uses to do their job. They load it once, and then u...</description><pubDate>Sat, 15 Jun 2024 14:23:56 GMT</pubDate><category>Tweets</category></item><item><title>Quick story about humility: I recently met someone new at a conference dinner</title><link>https://coryhouse.dev/2024/06/16/tweet-1802336421832802749/</link><guid isPermaLink="true">https://coryhouse.dev/2024/06/16/tweet-1802336421832802749/</guid><description>Quick story about humility: I recently met someone new at a conference dinner. Within a few minutes, he told me about his multiple degrees, various...</description><pubDate>Sun, 16 Jun 2024 13:44:23 GMT</pubDate><category>Tweets</category></item><item><title>Naming rule: The larger the scope, the longer the name</title><link>https://coryhouse.dev/2024/06/18/tweet-1803145000827425151/</link><guid isPermaLink="true">https://coryhouse.dev/2024/06/18/tweet-1803145000827425151/</guid><description>Naming rule: The larger the scope, the longer the name. If it&apos;s a global variable, &quot;i&quot; is a bad name. If it&apos;s only in scope for a loop, &quot;i&quot; may be...</description><pubDate>Tue, 18 Jun 2024 19:17:23 GMT</pubDate><category>Tweets</category></item><item><title>A Zod misuse I&apos;ve noticed: Validating function args</title><link>https://coryhouse.dev/2024/06/18/tweet-1803177818345656422/</link><guid isPermaLink="true">https://coryhouse.dev/2024/06/18/tweet-1803177818345656422/</guid><description>A Zod misuse I&apos;ve noticed: Validating function args. Zod is for validating runtime input: - URL params - HTTP Responses - localStorage - Cookies -...</description><pubDate>Tue, 18 Jun 2024 21:27:47 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Related optional properties Why it’s a problem: - Needlessly...</title><link>https://coryhouse.dev/2024/06/19/tweet-1803410168232677667/</link><guid isPermaLink="true">https://coryhouse.dev/2024/06/19/tweet-1803410168232677667/</guid><description>Problem: Related optional properties Why it’s a problem: - Needlessly verbose - Makes null/undefined checks clunkier - Doesn’t clarify if some prop...</description><pubDate>Wed, 19 Jun 2024 12:51:04 GMT</pubDate><category>Tweets</category></item><item><title>“Why validate JSON responses via Zod if the app just crashes if the schema...</title><link>https://coryhouse.dev/2024/06/20/tweet-1803606403631677706/</link><guid isPermaLink="true">https://coryhouse.dev/2024/06/20/tweet-1803606403631677706/</guid><description>“Why validate JSON responses via Zod if the app just crashes if the schema validation fails?” Good question. True, there’s typically no good workar...</description><pubDate>Thu, 20 Jun 2024 01:50:50 GMT</pubDate><category>Tweets</category></item><item><title>Just spent a couple hours reviewing the “State of JS” survey results</title><link>https://coryhouse.dev/2024/06/21/tweet-1804162283582501183/</link><guid isPermaLink="true">https://coryhouse.dev/2024/06/21/tweet-1804162283582501183/</guid><description>Just spent a couple hours reviewing the “State of JS” survey results. Some key insights: - React remains extremely popular, despite its favorable r...</description><pubDate>Fri, 21 Jun 2024 14:39:42 GMT</pubDate><category>Tweets</category></item><item><title>PSA: A static production JS app shouldn’t need the node_modules folder</title><link>https://coryhouse.dev/2024/06/21/tweet-1804290850886721865/</link><guid isPermaLink="true">https://coryhouse.dev/2024/06/21/tweet-1804290850886721865/</guid><description>PSA: A static production JS app shouldn’t need the node_modules folder. I just helped a client significantly speed up their deployment process…by n...</description><pubDate>Fri, 21 Jun 2024 23:10:35 GMT</pubDate><category>Tweets</category></item><item><title>I often help teams add tests to existing web apps via Playwright or Cypress</title><link>https://coryhouse.dev/2024/06/22/tweet-1804516032234549411/</link><guid isPermaLink="true">https://coryhouse.dev/2024/06/22/tweet-1804516032234549411/</guid><description>I often help teams add tests to existing web apps via Playwright or Cypress. When I do, I fix dozens of usability and accessibility problems too. P...</description><pubDate>Sat, 22 Jun 2024 14:05:23 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Declaring default React prop values inside the component</title><link>https://coryhouse.dev/2024/06/24/tweet-1805221897300238628/</link><guid isPermaLink="true">https://coryhouse.dev/2024/06/24/tweet-1805221897300238628/</guid><description>Problem: Declaring default React prop values inside the component. Why it&apos;s a problem: 🚩&quot;Hides&quot; the API inside the implementation 🚩Makes the comp...</description><pubDate>Mon, 24 Jun 2024 12:50:14 GMT</pubDate><category>Tweets</category></item><item><title>I rarely use Jest or Vitest for UI testing anymore</title><link>https://coryhouse.dev/2024/06/25/tweet-1805596180862189728/</link><guid isPermaLink="true">https://coryhouse.dev/2024/06/25/tweet-1805596180862189728/</guid><description>I rarely use Jest or Vitest for UI testing anymore. Here&apos;s why: Testing in a real browser using Playwright or Cypress gives me more confidence, mor...</description><pubDate>Tue, 25 Jun 2024 13:37:30 GMT</pubDate><category>Tweets</category></item><item><title>Problem: When a URL param changes, React Router renders components using...</title><link>https://coryhouse.dev/2024/06/25/tweet-1805634751040045302/</link><guid isPermaLink="true">https://coryhouse.dev/2024/06/25/tweet-1805634751040045302/</guid><description>Problem: When a URL param changes, React Router renders components using useSearchParams, even if the params the component reads didn&apos;t change. Exa...</description><pubDate>Tue, 25 Jun 2024 16:10:46 GMT</pubDate><category>Tweets</category></item><item><title>&quot;I&apos;m not convinced Zod is helping&quot; One of my clients said this because the...</title><link>https://coryhouse.dev/2024/06/26/tweet-1805934702500421996/</link><guid isPermaLink="true">https://coryhouse.dev/2024/06/26/tweet-1805934702500421996/</guid><description>&quot;I&apos;m not convinced Zod is helping&quot; One of my clients said this because the app is occasionally throwing Zod errors when parsing API responses. My r...</description><pubDate>Wed, 26 Jun 2024 12:02:40 GMT</pubDate><category>Tweets</category></item><item><title>Just presented “Lessons from 10 years in React” at @kc_dc</title><link>https://coryhouse.dev/2024/06/26/tweet-1806106341632508278/</link><guid isPermaLink="true">https://coryhouse.dev/2024/06/26/tweet-1806106341632508278/</guid><description>Just presented “Lessons from 10 years in React” at @kc_dc. A few key lessons: Performance issues are often simply because the component is needless...</description><pubDate>Wed, 26 Jun 2024 23:24:42 GMT</pubDate><category>Tweets</category></item><item><title>Web app UI security in one tweet: Assume the client will -Change the URL...</title><link>https://coryhouse.dev/2024/06/27/tweet-1806341868856225910/</link><guid isPermaLink="true">https://coryhouse.dev/2024/06/27/tweet-1806341868856225910/</guid><description>Web app UI security in one tweet: Assume the client will -Change the URL params -Use devtools to manipulate the UI -Change localStorage, cookies, o...</description><pubDate>Thu, 27 Jun 2024 15:00:36 GMT</pubDate><category>Tweets</category></item><item><title>Why code review is critical: If the code is confusing, it’s easiest to fix...</title><link>https://coryhouse.dev/2024/06/29/tweet-1807089190204543252/</link><guid isPermaLink="true">https://coryhouse.dev/2024/06/29/tweet-1807089190204543252/</guid><description>Why code review is critical: If the code is confusing, it’s easiest to fix it now while the requirements are clear, and the author is available. As...</description><pubDate>Sat, 29 Jun 2024 16:30:11 GMT</pubDate><category>Tweets</category></item><item><title>Habit: When I&apos;m coding alone in my home office, I often narrate my work aloud</title><link>https://coryhouse.dev/2024/06/30/tweet-1807462074819203345/</link><guid isPermaLink="true">https://coryhouse.dev/2024/06/30/tweet-1807462074819203345/</guid><description>Habit: When I&apos;m coding alone in my home office, I often narrate my work aloud. Benefits: - Fosters creativity - Clarifies my thinking - Exposes hol...</description><pubDate>Sun, 30 Jun 2024 17:11:54 GMT</pubDate><category>Tweets</category></item><item><title>I’m building a new React app with all the new features: React Server...</title><link>https://coryhouse.dev/2024/07/01/tweet-1807774510327673060/</link><guid isPermaLink="true">https://coryhouse.dev/2024/07/01/tweet-1807774510327673060/</guid><description>I’m building a new React app with all the new features: React Server Components Server Actions useActionState useOptimistic I can build surprisingl...</description><pubDate>Mon, 01 Jul 2024 13:53:24 GMT</pubDate><category>Tweets</category></item><item><title>Code smell: Setting state twice in a row Example: Solution: Eliminate...</title><link>https://coryhouse.dev/2024/07/02/tweet-1808116570637381799/</link><guid isPermaLink="true">https://coryhouse.dev/2024/07/02/tweet-1808116570637381799/</guid><description>Code smell: Setting state twice in a row Example: Solution: Eliminate showDialog state. Derive state instead. If userToEdit has a value, show the d...</description><pubDate>Tue, 02 Jul 2024 12:32:38 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You need to manipulate a query result</title><link>https://coryhouse.dev/2024/07/03/tweet-1808516043960102989/</link><guid isPermaLink="true">https://coryhouse.dev/2024/07/03/tweet-1808516043960102989/</guid><description>Problem: You need to manipulate a query result. (sort, filter, etc, because the endpoint doesn&apos;t support it) Solution: Do it in react-query’s selec...</description><pubDate>Wed, 03 Jul 2024 15:00:00 GMT</pubDate><category>Tweets</category></item><item><title>The New York Times just upgraded from React 16 to 18</title><link>https://coryhouse.dev/2024/07/03/tweet-1808626530039242847/</link><guid isPermaLink="true">https://coryhouse.dev/2024/07/03/tweet-1808626530039242847/</guid><description>The New York Times just upgraded from React 16 to 18. Result: ~50% fewer re-renders! Why? React 18&apos;s automatic batching and concurrency features.</description><pubDate>Wed, 03 Jul 2024 22:19:02 GMT</pubDate><category>Tweets</category></item><item><title>React&apos;s built-in state works great</title><link>https://coryhouse.dev/2024/07/04/tweet-1808850380119228523/</link><guid isPermaLink="true">https://coryhouse.dev/2024/07/04/tweet-1808850380119228523/</guid><description>React&apos;s built-in state works great. But, it has limitations, so, third-party state libraries are worth considering.</description><pubDate>Thu, 04 Jul 2024 13:08:32 GMT</pubDate><category>Tweets</category></item><item><title>Just learned it&apos;s easy to create beautiful warnings and notes in markdown...</title><link>https://coryhouse.dev/2024/07/04/tweet-1808925774080016534/</link><guid isPermaLink="true">https://coryhouse.dev/2024/07/04/tweet-1808925774080016534/</guid><description>Just learned it&apos;s easy to create beautiful warnings and notes in markdown files: This creates a note: [!NOTE] This creates a warning: [!WARNING] Th...</description><pubDate>Thu, 04 Jul 2024 18:08:07 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Choosing a React state library is hard</title><link>https://coryhouse.dev/2024/07/05/tweet-1809257707695751677/</link><guid isPermaLink="true">https://coryhouse.dev/2024/07/05/tweet-1809257707695751677/</guid><description>Problem: Choosing a React state library is hard. Solution: Consider the tradeoffs. Here are 6 key tradeoffs, with examples: 1. General vs Specific...</description><pubDate>Fri, 05 Jul 2024 16:07:06 GMT</pubDate><category>Tweets</category></item><item><title>I often see web apps with separate frontend and backend dev teams</title><link>https://coryhouse.dev/2024/07/06/tweet-1809576693453275241/</link><guid isPermaLink="true">https://coryhouse.dev/2024/07/06/tweet-1809576693453275241/</guid><description>I often see web apps with separate frontend and backend dev teams. This front/back developer split leads to a common problem: Frontend devs become...</description><pubDate>Sat, 06 Jul 2024 13:14:38 GMT</pubDate><category>Tweets</category></item><item><title>React Query is an asynchronous state management tool</title><link>https://coryhouse.dev/2024/07/06/tweet-1809614625362821445/</link><guid isPermaLink="true">https://coryhouse.dev/2024/07/06/tweet-1809614625362821445/</guid><description>React Query is an asynchronous state management tool. So, most people use it to manage data fetched via HTTP. What other types of async state have...</description><pubDate>Sat, 06 Jul 2024 15:45:22 GMT</pubDate><category>Tweets</category></item><item><title>An easy mistake to make: Needlessly “high” state</title><link>https://coryhouse.dev/2024/07/08/tweet-1810350564594573707/</link><guid isPermaLink="true">https://coryhouse.dev/2024/07/08/tweet-1810350564594573707/</guid><description>An easy mistake to make: Needlessly “high” state. Example: State that is merely passed down to a child component. Why it&apos;s a problem: Wastes resour...</description><pubDate>Mon, 08 Jul 2024 16:29:43 GMT</pubDate><category>Tweets</category></item><item><title>How I typically handle React state today: Data fetched via HTTP: React Query</title><link>https://coryhouse.dev/2024/07/09/tweet-1810670643379368275/</link><guid isPermaLink="true">https://coryhouse.dev/2024/07/09/tweet-1810670643379368275/</guid><description>How I typically handle React state today: Data fetched via HTTP: React Query. Local state: useState or useReducer. Forms: useState or React Hook Fo...</description><pubDate>Tue, 09 Jul 2024 13:41:36 GMT</pubDate><category>Tweets</category></item><item><title>Work gets better when you don’t need the money</title><link>https://coryhouse.dev/2024/07/10/tweet-1811023676726198323/</link><guid isPermaLink="true">https://coryhouse.dev/2024/07/10/tweet-1811023676726198323/</guid><description>Work gets better when you don’t need the money. And “don’t need the money” doesn’t mean you never need money again. It just means you don’t *immedi...</description><pubDate>Wed, 10 Jul 2024 13:04:26 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Sometimes a component is &quot;too big&quot;</title><link>https://coryhouse.dev/2024/07/13/tweet-1812128120264090079/</link><guid isPermaLink="true">https://coryhouse.dev/2024/07/13/tweet-1812128120264090079/</guid><description>Problem: Sometimes a component is &quot;too big&quot;. Signs: - Lots of props - Hard to reuse - Feels unfocused - Performance problems - Hard to understand w...</description><pubDate>Sat, 13 Jul 2024 14:13:06 GMT</pubDate><category>Tweets</category></item><item><title>Forms in React 19</title><link>https://coryhouse.dev/2024/07/15/forms-in-react-19/</link><guid isPermaLink="true">https://coryhouse.dev/2024/07/15/forms-in-react-19/</guid><description>React 19 has many new form-related features: Server actions – Call async functions that run on the server in a client component useActionState – Update state ba…</description><pubDate>Mon, 15 Jul 2024 15:15:47 GMT</pubDate><category>Uncategorized</category></item><item><title>React 19 has many new form-related features: Server actions - Call async...</title><link>https://coryhouse.dev/2024/07/15/tweet-1812826304984588580/</link><guid isPermaLink="true">https://coryhouse.dev/2024/07/15/tweet-1812826304984588580/</guid><description>React 19 has many new form-related features: Server actions - Call async functions that run on the server in a client component useActionState - Up...</description><pubDate>Mon, 15 Jul 2024 12:27:26 GMT</pubDate><category>Tweets</category></item><item><title>A bug I see in nearly every web app: Last in wins</title><link>https://coryhouse.dev/2024/07/17/tweet-1813575103571013972/</link><guid isPermaLink="true">https://coryhouse.dev/2024/07/17/tweet-1813575103571013972/</guid><description>A bug I see in nearly every web app: Last in wins. Bug: If two users are editing the same record, the user who clicks save last “wins”. The last sa...</description><pubDate>Wed, 17 Jul 2024 14:02:53 GMT</pubDate><category>Tweets</category></item><item><title>Look around your team</title><link>https://coryhouse.dev/2024/07/21/tweet-1815023996636696665/</link><guid isPermaLink="true">https://coryhouse.dev/2024/07/21/tweet-1815023996636696665/</guid><description>Look around your team. Ask yourself: - Do I often work harder than my teammates? - Is my work output and quality higher? - Do I seem to care the mo...</description><pubDate>Sun, 21 Jul 2024 14:00:16 GMT</pubDate><category>Tweets</category></item><item><title>One of the most common sources of needless complexity I see in code:...</title><link>https://coryhouse.dev/2024/07/21/tweet-1815099141611212813/</link><guid isPermaLink="true">https://coryhouse.dev/2024/07/21/tweet-1815099141611212813/</guid><description>One of the most common sources of needless complexity I see in code: Inconsistent terminology. Example: I just reviewed a PR that uses all these te...</description><pubDate>Sun, 21 Jul 2024 18:58:52 GMT</pubDate><category>Tweets</category></item><item><title>React 19 is huge</title><link>https://coryhouse.dev/2024/07/22/tweet-1815375681720606924/</link><guid isPermaLink="true">https://coryhouse.dev/2024/07/22/tweet-1815375681720606924/</guid><description>React 19 is huge. Here&apos;s a cheat sheet. Nine new features: 1. React Server Components - Components that render at build time, or for each request....</description><pubDate>Mon, 22 Jul 2024 13:17:45 GMT</pubDate><category>Tweets</category></item><item><title>Using fetch</title><link>https://coryhouse.dev/2024/07/23/tweet-1815730974694449396/</link><guid isPermaLink="true">https://coryhouse.dev/2024/07/23/tweet-1815730974694449396/</guid><description>Using fetch? Consider Ky. Benefits: - Simpler API - Requires about half the code - Treats non-2xx status codes as errors - Includes timeout support...</description><pubDate>Tue, 23 Jul 2024 12:49:33 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You want to quickly publish an npm package using TypeScript</title><link>https://coryhouse.dev/2024/07/25/tweet-1816475344192274521/</link><guid isPermaLink="true">https://coryhouse.dev/2024/07/25/tweet-1816475344192274521/</guid><description>Problem: You want to quickly publish an npm package using TypeScript. Solution: tsup tsup bundles your TypeScript library with no config, powered b...</description><pubDate>Thu, 25 Jul 2024 14:07:25 GMT</pubDate><category>Tweets</category></item><item><title>Problem: With in-browser testing tools like Playwright, each page load takes...</title><link>https://coryhouse.dev/2024/07/26/tweet-1816867564796117228/</link><guid isPermaLink="true">https://coryhouse.dev/2024/07/26/tweet-1816867564796117228/</guid><description>Problem: With in-browser testing tools like Playwright, each page load takes time. So, many separate tests redundantly loading the same page slows...</description><pubDate>Fri, 26 Jul 2024 16:05:57 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m creating a reusable React component that I plan to publish via npm</title><link>https://coryhouse.dev/2024/07/26/tweet-1816921314038522250/</link><guid isPermaLink="true">https://coryhouse.dev/2024/07/26/tweet-1816921314038522250/</guid><description>I&apos;m creating a reusable React component that I plan to publish via npm. I&apos;m considering styling it via Tailwind. But I&apos;m having a hard time finding...</description><pubDate>Fri, 26 Jul 2024 19:39:32 GMT</pubDate><category>Tweets</category></item><item><title>Problem: It’s unclear if a test is a unit, integration, or e2e test</title><link>https://coryhouse.dev/2024/07/27/tweet-1817211808979079672/</link><guid isPermaLink="true">https://coryhouse.dev/2024/07/27/tweet-1817211808979079672/</guid><description>Problem: It’s unclear if a test is a unit, integration, or e2e test. Solutions: 1. Location: Colocate unit tests with the file under test. Store in...</description><pubDate>Sat, 27 Jul 2024 14:53:52 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You want to compare two files</title><link>https://coryhouse.dev/2024/07/28/tweet-1817554130782568927/</link><guid isPermaLink="true">https://coryhouse.dev/2024/07/28/tweet-1817554130782568927/</guid><description>Problem: You want to compare two files. Solution: Use VS Code. Here&apos;s how: 1. Right click file 1 and “Select for compare” 2. Right click file 2 and...</description><pubDate>Sun, 28 Jul 2024 13:34:07 GMT</pubDate><category>Tweets</category></item><item><title>Storybook is useful, but the number of dependencies it drags in feels excessive</title><link>https://coryhouse.dev/2024/07/28/tweet-1817567002224996366/</link><guid isPermaLink="true">https://coryhouse.dev/2024/07/28/tweet-1817567002224996366/</guid><description>Storybook is useful, but the number of dependencies it drags in feels excessive. Look at this diff! Anyone using something lighter? I&apos;ve used Ladle...</description><pubDate>Sun, 28 Jul 2024 14:25:16 GMT</pubDate><category>Tweets</category></item><item><title>Two ways to write a test: 1</title><link>https://coryhouse.dev/2024/07/29/tweet-1818021632985755980/</link><guid isPermaLink="true">https://coryhouse.dev/2024/07/29/tweet-1818021632985755980/</guid><description>Two ways to write a test: 1. DRY: reference const that’s used in code 2. Repeat: repeat value that’s used in code Which do you prefer, and why?</description><pubDate>Mon, 29 Jul 2024 20:31:49 GMT</pubDate><category>Tweets</category></item><item><title>Problem: React Router’s useSearchParams is clunky, and not type safe</title><link>https://coryhouse.dev/2024/07/30/tweet-1818328141896843346/</link><guid isPermaLink="true">https://coryhouse.dev/2024/07/30/tweet-1818328141896843346/</guid><description>Problem: React Router’s useSearchParams is clunky, and not type safe. Values are always returned as strings, and there’s no type-safe protection fo...</description><pubDate>Tue, 30 Jul 2024 16:49:46 GMT</pubDate><category>Tweets</category></item><item><title>Custom DevTools are a powerful way to speed up development</title><link>https://coryhouse.dev/2024/07/31/tweet-1818640625484378231/</link><guid isPermaLink="true">https://coryhouse.dev/2024/07/31/tweet-1818640625484378231/</guid><description>Custom DevTools are a powerful way to speed up development. ✅Toggle feature flags ✅Configure mocks ✅Change users ✅Simulate slowness ✅Force errors ✅...</description><pubDate>Wed, 31 Jul 2024 13:31:28 GMT</pubDate><category>Tweets</category></item><item><title>Just realized my React Berlin talk &quot;Managing React State: 10 Years of...</title><link>https://coryhouse.dev/2024/08/05/tweet-1820507275900952736/</link><guid isPermaLink="true">https://coryhouse.dev/2024/08/05/tweet-1820507275900952736/</guid><description>Just realized my React Berlin talk &quot;Managing React State: 10 Years of Lessons Learned&quot; is published here: https://gitnation.com/contents/managing-r...</description><pubDate>Mon, 05 Aug 2024 17:08:52 GMT</pubDate><category>Tweets</category></item><item><title>The most common needless use of `let` I see: Setting an initial value,...</title><link>https://coryhouse.dev/2024/08/07/tweet-1821199471453098290/</link><guid isPermaLink="true">https://coryhouse.dev/2024/08/07/tweet-1821199471453098290/</guid><description>The most common needless use of `let` I see: Setting an initial value, followed by mutations. This is hard to read because it requires the reader t...</description><pubDate>Wed, 07 Aug 2024 14:59:24 GMT</pubDate><category>Tweets</category></item><item><title>I’m looking for a good technical book to read on vacation</title><link>https://coryhouse.dev/2024/08/08/tweet-1821560223640768548/</link><guid isPermaLink="true">https://coryhouse.dev/2024/08/08/tweet-1821560223640768548/</guid><description>I’m looking for a good technical book to read on vacation. Something that will challenge my thinking. I’ve read some classics: Code complete Design...</description><pubDate>Thu, 08 Aug 2024 14:52:54 GMT</pubDate><category>Tweets</category></item><item><title>How do we accomplish this in software</title><link>https://coryhouse.dev/2024/08/09/tweet-1821981304528814321/</link><guid isPermaLink="true">https://coryhouse.dev/2024/08/09/tweet-1821981304528814321/</guid><description>How do we accomplish this in software? - Focus. Eliminate needless features and needless complexity. - Reuse. Create reusable components. - Delegat...</description><pubDate>Fri, 09 Aug 2024 18:46:08 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You need to check if a value matches one of many potential values</title><link>https://coryhouse.dev/2024/08/11/tweet-1822646174165197274/</link><guid isPermaLink="true">https://coryhouse.dev/2024/08/11/tweet-1822646174165197274/</guid><description>Problem: You need to check if a value matches one of many potential values. Solution: Consider array.includes. This avoids declaring a bunch of rep...</description><pubDate>Sun, 11 Aug 2024 14:48:05 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;ve spent the last few weeks working on a React developer tool that I think...</title><link>https://coryhouse.dev/2024/08/11/tweet-1822717087397347643/</link><guid isPermaLink="true">https://coryhouse.dev/2024/08/11/tweet-1822717087397347643/</guid><description>I&apos;ve spent the last few weeks working on a React developer tool that I think you&apos;ll enjoy. Excited to show it off at @ReactRally tomorrow!</description><pubDate>Sun, 11 Aug 2024 19:29:52 GMT</pubDate><category>Tweets</category></item><item><title>I don’t normally do this but I coded over 12 hours yesterday and stayed up...</title><link>https://coryhouse.dev/2024/08/12/tweet-1823003311324192989/</link><guid isPermaLink="true">https://coryhouse.dev/2024/08/12/tweet-1823003311324192989/</guid><description>I don’t normally do this but I coded over 12 hours yesterday and stayed up past midnight tweaking things. If you’re using React, I think you’ll lik...</description><pubDate>Mon, 12 Aug 2024 14:27:13 GMT</pubDate><category>Tweets</category></item><item><title>Announcement: react-switchboard Create custom dev tools for your React app</title><link>https://coryhouse.dev/2024/08/13/tweet-1823182847902912730/</link><guid isPermaLink="true">https://coryhouse.dev/2024/08/13/tweet-1823182847902912730/</guid><description>Announcement: react-switchboard Create custom dev tools for your React app. Uses: - Force errors - Configure mock APIs - Change feature toggles - L...</description><pubDate>Tue, 13 Aug 2024 02:20:38 GMT</pubDate><category>Tweets</category></item><item><title>My philosophy: If I need an alarm or caffeine to wake up, I should go to bed...</title><link>https://coryhouse.dev/2024/08/17/tweet-1824850213695361049/</link><guid isPermaLink="true">https://coryhouse.dev/2024/08/17/tweet-1824850213695361049/</guid><description>My philosophy: If I need an alarm or caffeine to wake up, I should go to bed earlier. If I’m “too busy” to get enough sleep or exercise, my life is...</description><pubDate>Sat, 17 Aug 2024 16:46:09 GMT</pubDate><category>Tweets</category></item><item><title>I’m looking forward to useActionState in React 19</title><link>https://coryhouse.dev/2024/08/19/tweet-1825519506338308300/</link><guid isPermaLink="true">https://coryhouse.dev/2024/08/19/tweet-1825519506338308300/</guid><description>I’m looking forward to useActionState in React 19. Here are six useActionState benefits: 1. No event.preventDefault needed. 2. Can read the form’s...</description><pubDate>Mon, 19 Aug 2024 13:05:41 GMT</pubDate><category>Tweets</category></item><item><title>Problem: I want to require a specific format for a TypeScript string</title><link>https://coryhouse.dev/2024/08/20/tweet-1825905267109753292/</link><guid isPermaLink="true">https://coryhouse.dev/2024/08/20/tweet-1825905267109753292/</guid><description>Problem: I want to require a specific format for a TypeScript string. Solution: Template literal type. Example: In react-switchboard, each state ke...</description><pubDate>Tue, 20 Aug 2024 14:38:34 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m tired of bad test names</title><link>https://coryhouse.dev/2024/08/22/tweet-1826603307785212382/</link><guid isPermaLink="true">https://coryhouse.dev/2024/08/22/tweet-1826603307785212382/</guid><description>I&apos;m tired of bad test names. Examples: 🚩Renders 🚩Form validation 🚩Submit button Good test names describe two things: 1. The scenario under test...</description><pubDate>Thu, 22 Aug 2024 12:52:19 GMT</pubDate><category>Tweets</category></item><item><title>I care about code quality</title><link>https://coryhouse.dev/2024/08/22/tweet-1826711180406305022/</link><guid isPermaLink="true">https://coryhouse.dev/2024/08/22/tweet-1826711180406305022/</guid><description>I care about code quality. But, I also recognize it’s a tradeoff. My old boss didn’t believe in automated testing. He thought worrying about “code...</description><pubDate>Thu, 22 Aug 2024 20:00:58 GMT</pubDate><category>Tweets</category></item><item><title>React is typically fast enough</title><link>https://coryhouse.dev/2024/08/23/tweet-1826966166566318131/</link><guid isPermaLink="true">https://coryhouse.dev/2024/08/23/tweet-1826966166566318131/</guid><description>React is typically fast enough. But here&apos;s a simple way to optimize performance: Decompose components so state changes impact a small amount of JSX...</description><pubDate>Fri, 23 Aug 2024 12:54:12 GMT</pubDate><category>Tweets</category></item><item><title>I love being a software developer</title><link>https://coryhouse.dev/2024/08/24/tweet-1827342684710637992/</link><guid isPermaLink="true">https://coryhouse.dev/2024/08/24/tweet-1827342684710637992/</guid><description>I love being a software developer. But, I have concerns about the future of software development as a career. Four reasons: 1. AI is radically incr...</description><pubDate>Sat, 24 Aug 2024 13:50:21 GMT</pubDate><category>Tweets</category></item><item><title>Just used Cursor to eliminate a needless useEffect in a big React component</title><link>https://coryhouse.dev/2024/08/26/tweet-1828167421506572747/</link><guid isPermaLink="true">https://coryhouse.dev/2024/08/26/tweet-1828167421506572747/</guid><description>Just used Cursor to eliminate a needless useEffect in a big React component. I simply asked &quot;Can you eliminate this useEffect?&quot; The explanation was...</description><pubDate>Mon, 26 Aug 2024 20:27:33 GMT</pubDate><category>Tweets</category></item><item><title>Problem I just saw in a code review: Using useEffect to copy URL search...</title><link>https://coryhouse.dev/2024/08/27/tweet-1828418379490959551/</link><guid isPermaLink="true">https://coryhouse.dev/2024/08/27/tweet-1828418379490959551/</guid><description>Problem I just saw in a code review: Using useEffect to copy URL search params to state. Solution: Use the URL as the single source of truth. Example:</description><pubDate>Tue, 27 Aug 2024 13:04:46 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m ready for AI that&apos;s pushy, like a smarter linter</title><link>https://coryhouse.dev/2024/08/27/tweet-1828466365604262155/</link><guid isPermaLink="true">https://coryhouse.dev/2024/08/27/tweet-1828466365604262155/</guid><description>I&apos;m ready for AI that&apos;s pushy, like a smarter linter. I want an AI that says &quot;This variable name is misleading. Click here to rename to x.&quot; Same fo...</description><pubDate>Tue, 27 Aug 2024 16:15:27 GMT</pubDate><category>Tweets</category></item><item><title>Problem: I want strongly typed React search params</title><link>https://coryhouse.dev/2024/08/27/tweet-1828489337656254471/</link><guid isPermaLink="true">https://coryhouse.dev/2024/08/27/tweet-1828489337656254471/</guid><description>Problem: I want strongly typed React search params. Solutions: Using React Router or Remix? Wrap useSearchParams in a custom hook and parse the par...</description><pubDate>Tue, 27 Aug 2024 17:46:44 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript problem: A subset of fields are optional, but should all be...</title><link>https://coryhouse.dev/2024/08/30/tweet-1829489264746213496/</link><guid isPermaLink="true">https://coryhouse.dev/2024/08/30/tweet-1829489264746213496/</guid><description>TypeScript problem: A subset of fields are optional, but should all be populated if one is populated. Solution: 1. Put related properties under an...</description><pubDate>Fri, 30 Aug 2024 12:00:05 GMT</pubDate><category>Tweets</category></item><item><title>React performance mistake: Calling a function multiple times with the same args</title><link>https://coryhouse.dev/2024/08/31/tweet-1829911407007088901/</link><guid isPermaLink="true">https://coryhouse.dev/2024/08/31/tweet-1829911407007088901/</guid><description>React performance mistake: Calling a function multiple times with the same args. Solution: Call the function once above the JSX.</description><pubDate>Sat, 31 Aug 2024 15:57:32 GMT</pubDate><category>Tweets</category></item><item><title>I had a wonderful job, but I always dreamed of being independent</title><link>https://coryhouse.dev/2024/09/02/tweet-1830626514267713945/</link><guid isPermaLink="true">https://coryhouse.dev/2024/09/02/tweet-1830626514267713945/</guid><description>I had a wonderful job, but I always dreamed of being independent. I knew it might require grinding for years to get there. So, I spent countless ni...</description><pubDate>Mon, 02 Sep 2024 15:19:07 GMT</pubDate><category>Tweets</category></item><item><title>Great advice from “A Philosophy of Software Design”</title><link>https://coryhouse.dev/2024/09/02/tweet-1830710582082781542/</link><guid isPermaLink="true">https://coryhouse.dev/2024/09/02/tweet-1830710582082781542/</guid><description>Great advice from “A Philosophy of Software Design”. Prefer deep modules. (Yes, I’m enjoying this read on the beach! 🏖️)</description><pubDate>Mon, 02 Sep 2024 20:53:10 GMT</pubDate><category>Tweets</category></item><item><title>“I’ll add tests in an upcoming PR.” When I hear this, I push back</title><link>https://coryhouse.dev/2024/09/04/tweet-1831377252296360050/</link><guid isPermaLink="true">https://coryhouse.dev/2024/09/04/tweet-1831377252296360050/</guid><description>“I’ll add tests in an upcoming PR.” When I hear this, I push back. Here&apos;s why. - Tests make the PR easier to review to understand. Tests are docume...</description><pubDate>Wed, 04 Sep 2024 17:02:16 GMT</pubDate><category>Tweets</category></item><item><title>7 things I search for when I audit a TypeScript codebase: any - Use a...</title><link>https://coryhouse.dev/2024/09/06/tweet-1832069375702040962/</link><guid isPermaLink="true">https://coryhouse.dev/2024/09/06/tweet-1832069375702040962/</guid><description>7 things I search for when I audit a TypeScript codebase: any - Use a narrower type. ?. - Avoid by narrowing type. ?: - Optional properties are oft...</description><pubDate>Fri, 06 Sep 2024 14:52:32 GMT</pubDate><category>Tweets</category></item><item><title>I’ve been happily using Vitest for quite awhile, but I just tried using Jest...</title><link>https://coryhouse.dev/2024/09/09/tweet-1833137492175773790/</link><guid isPermaLink="true">https://coryhouse.dev/2024/09/09/tweet-1833137492175773790/</guid><description>I’ve been happily using Vitest for quite awhile, but I just tried using Jest again. Ouch. I remember when Jest was easy to use, but I hit a number...</description><pubDate>Mon, 09 Sep 2024 13:36:50 GMT</pubDate><category>Tweets</category></item><item><title>I occasionally see people using HTML entities like &amp;apos; or &amp;quot;</title><link>https://coryhouse.dev/2024/09/09/tweet-1833183920864592388/</link><guid isPermaLink="true">https://coryhouse.dev/2024/09/09/tweet-1833183920864592388/</guid><description>I occasionally see people using HTML entities like &amp;apos; or &amp;quot;. Now that UTF-8 is ubiquitous, there&apos;s typically no need to do so anymo...</description><pubDate>Mon, 09 Sep 2024 16:41:20 GMT</pubDate><category>Tweets</category></item><item><title>Situation: A web app has no end-to-end (E2E) tests</title><link>https://coryhouse.dev/2024/09/12/tweet-1834294381806841989/</link><guid isPermaLink="true">https://coryhouse.dev/2024/09/12/tweet-1834294381806841989/</guid><description>Situation: A web app has no end-to-end (E2E) tests. Solution: Consider writing E2E tests in phases. Phase 1: Smoke test - Write E2E tests that mere...</description><pubDate>Thu, 12 Sep 2024 18:13:54 GMT</pubDate><category>Tweets</category></item><item><title>React mistake: State too high</title><link>https://coryhouse.dev/2024/09/13/tweet-1834573451228488151/</link><guid isPermaLink="true">https://coryhouse.dev/2024/09/13/tweet-1834573451228488151/</guid><description>React mistake: State too high. If state is merely passed down to one child, it’s too high. It should be moved down to the child. Benefits: - Elimin...</description><pubDate>Fri, 13 Sep 2024 12:42:50 GMT</pubDate><category>Tweets</category></item><item><title>Every developer has to balance two concerns: 1</title><link>https://coryhouse.dev/2024/09/17/tweet-1836046553003282725/</link><guid isPermaLink="true">https://coryhouse.dev/2024/09/17/tweet-1836046553003282725/</guid><description>Every developer has to balance two concerns: 1. Be tactical - Get it done as soon as possible. Cut corners if necessary. Favor delivery over qualit...</description><pubDate>Tue, 17 Sep 2024 14:16:24 GMT</pubDate><category>Tweets</category></item><item><title>These days, many old JavaScript projects have converted to TypeScript</title><link>https://coryhouse.dev/2024/09/19/tweet-1836563523893174469/</link><guid isPermaLink="true">https://coryhouse.dev/2024/09/19/tweet-1836563523893174469/</guid><description>These days, many old JavaScript projects have converted to TypeScript. If you haven’t yet, here’s a compelling stat: A survey of six months worth o...</description><pubDate>Thu, 19 Sep 2024 00:30:40 GMT</pubDate><category>Tweets</category></item><item><title>Somehow I overlooked this new React 19 feature until now: Problem: I want to...</title><link>https://coryhouse.dev/2024/09/26/tweet-1839313069086060649/</link><guid isPermaLink="true">https://coryhouse.dev/2024/09/26/tweet-1839313069086060649/</guid><description>Somehow I overlooked this new React 19 feature until now: Problem: I want to run some code when *any* caught or uncaught error occurs in my React a...</description><pubDate>Thu, 26 Sep 2024 14:36:23 GMT</pubDate><category>Tweets</category></item><item><title>Problem: The backend returns a needlessly wide type</title><link>https://coryhouse.dev/2024/09/27/tweet-1839666274265403822/</link><guid isPermaLink="true">https://coryhouse.dev/2024/09/27/tweet-1839666274265403822/</guid><description>Problem: The backend returns a needlessly wide type. Example: The backend returns null, undefined, or an array. Solutions: (ranked by preferability...</description><pubDate>Fri, 27 Sep 2024 13:59:53 GMT</pubDate><category>Tweets</category></item><item><title>9 ways I’ve made money as a software dev, sorted from most enjoyable to least: 1</title><link>https://coryhouse.dev/2024/10/02/tweet-1841480350133895346/</link><guid isPermaLink="true">https://coryhouse.dev/2024/10/02/tweet-1841480350133895346/</guid><description>9 ways I’ve made money as a software dev, sorted from most enjoyable to least: 1. Independent consultant and developer 2. Teaching workshops at com...</description><pubDate>Wed, 02 Oct 2024 14:08:23 GMT</pubDate><category>Tweets</category></item><item><title>Just saw this performance mistake in a React code review</title><link>https://coryhouse.dev/2024/10/03/tweet-1841824760327532780/</link><guid isPermaLink="true">https://coryhouse.dev/2024/10/03/tweet-1841824760327532780/</guid><description>Just saw this performance mistake in a React code review. Problem: If you invoke a function in useState&apos;s default, it&apos;s called on every render. (No...</description><pubDate>Thu, 03 Oct 2024 12:56:56 GMT</pubDate><category>Tweets</category></item><item><title>Perhaps the most common mistake I see in TypeScript code reviews: Needless...</title><link>https://coryhouse.dev/2024/10/03/tweet-1841931144104657297/</link><guid isPermaLink="true">https://coryhouse.dev/2024/10/03/tweet-1841931144104657297/</guid><description>Perhaps the most common mistake I see in TypeScript code reviews: Needless optional properties. People seem to think &quot;I&apos;ll make this optional just...</description><pubDate>Thu, 03 Oct 2024 19:59:40 GMT</pubDate><category>Tweets</category></item><item><title>Problem: SQL is an old, leaky abstraction</title><link>https://coryhouse.dev/2024/10/04/tweet-1842217593135919410/</link><guid isPermaLink="true">https://coryhouse.dev/2024/10/04/tweet-1842217593135919410/</guid><description>Problem: SQL is an old, leaky abstraction. It doesn’t play nice with typed languages. Just learned about an alternative called Convex. Idea: Strong...</description><pubDate>Fri, 04 Oct 2024 14:57:55 GMT</pubDate><category>Tweets</category></item><item><title>New React framework: One Strongly typed file-based routes (like Tanstack...</title><link>https://coryhouse.dev/2024/10/06/tweet-1842765933657653460/</link><guid isPermaLink="true">https://coryhouse.dev/2024/10/06/tweet-1842765933657653460/</guid><description>New React framework: One Strongly typed file-based routes (like Tanstack router) Loaders (like Remix/React Router) SPA, RSC, SSG support, with per...</description><pubDate>Sun, 06 Oct 2024 03:16:50 GMT</pubDate><category>Tweets</category></item><item><title>In the age of AI, code reviews are more important than ever</title><link>https://coryhouse.dev/2024/10/08/tweet-1843690071834407169/</link><guid isPermaLink="true">https://coryhouse.dev/2024/10/08/tweet-1843690071834407169/</guid><description>In the age of AI, code reviews are more important than ever. The developer may not have read the code.</description><pubDate>Tue, 08 Oct 2024 16:29:01 GMT</pubDate><category>Tweets</category></item><item><title>Skeleton screens improve perceived load times, reduce bounce rates, and can...</title><link>https://coryhouse.dev/2024/10/09/tweet-1844017798772621390/</link><guid isPermaLink="true">https://coryhouse.dev/2024/10/09/tweet-1844017798772621390/</guid><description>Skeleton screens improve perceived load times, reduce bounce rates, and can reduce layout shift. But in practice, I&apos;ve found skeleton screens are h...</description><pubDate>Wed, 09 Oct 2024 14:11:18 GMT</pubDate><category>Tweets</category></item><item><title>Problem: The backend API returns poorly structured JSON</title><link>https://coryhouse.dev/2024/10/09/tweet-1844066676591006038/</link><guid isPermaLink="true">https://coryhouse.dev/2024/10/09/tweet-1844066676591006038/</guid><description>Problem: The backend API returns poorly structured JSON. Solution: Ideally, fix the backend. But if we can&apos;t, I reformat the data in the response h...</description><pubDate>Wed, 09 Oct 2024 17:25:31 GMT</pubDate><category>Tweets</category></item><item><title>Goal: Calculate a value once per render</title><link>https://coryhouse.dev/2024/10/10/tweet-1844437730790416551/</link><guid isPermaLink="true">https://coryhouse.dev/2024/10/10/tweet-1844437730790416551/</guid><description>Goal: Calculate a value once per render. Mistake: Declaring a parameterless function. Why? Because then the function may be needlessly called multi...</description><pubDate>Thu, 10 Oct 2024 17:59:57 GMT</pubDate><category>Tweets</category></item><item><title>PSA: 📢 The useId hook is stable in React 18</title><link>https://coryhouse.dev/2024/10/11/tweet-1844828322796019963/</link><guid isPermaLink="true">https://coryhouse.dev/2024/10/11/tweet-1844828322796019963/</guid><description>PSA: 📢 The useId hook is stable in React 18. So, you don&apos;t have to write your own logic for unique ids in reusable components. Quite handy for ass...</description><pubDate>Fri, 11 Oct 2024 19:52:02 GMT</pubDate><category>Tweets</category></item><item><title>I don’t ask for permission to refactor</title><link>https://coryhouse.dev/2024/10/18/tweet-1847271145822642303/</link><guid isPermaLink="true">https://coryhouse.dev/2024/10/18/tweet-1847271145822642303/</guid><description>I don’t ask for permission to refactor. I don’t ask for permission to optimize performance. I don’t ask for permission to make it secure. I don’t a...</description><pubDate>Fri, 18 Oct 2024 13:38:56 GMT</pubDate><category>Tweets</category></item><item><title>Refactoring without tests is basically this: “I changed some stuff and...</title><link>https://coryhouse.dev/2024/10/20/tweet-1848018742350930277/</link><guid isPermaLink="true">https://coryhouse.dev/2024/10/20/tweet-1848018742350930277/</guid><description>Refactoring without tests is basically this: “I changed some stuff and hopefully didn’t break anything”. Risky business.</description><pubDate>Sun, 20 Oct 2024 15:09:37 GMT</pubDate><category>Tweets</category></item><item><title>“Code should be obvious</title><link>https://coryhouse.dev/2024/10/21/tweet-1848359544382005508/</link><guid isPermaLink="true">https://coryhouse.dev/2024/10/21/tweet-1848359544382005508/</guid><description>“Code should be obvious. If someone reading your code says it’s not obvious, then it’s not obvious, no matter how clear it may seem to you.” - John...</description><pubDate>Mon, 21 Oct 2024 13:43:50 GMT</pubDate><category>Tweets</category></item><item><title>New React framework: One</title><link>https://coryhouse.dev/2024/10/21/tweet-1848396991249908219/</link><guid isPermaLink="true">https://coryhouse.dev/2024/10/21/tweet-1848396991249908219/</guid><description>New React framework: One. In this episode, I talk to One’s lead developer, Nate Wienert. What makes One special? - Do React and React native in the...</description><pubDate>Mon, 21 Oct 2024 16:12:38 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript problem: Related object properties should either all be provided,...</title><link>https://coryhouse.dev/2024/10/22/tweet-1848772826368442609/</link><guid isPermaLink="true">https://coryhouse.dev/2024/10/22/tweet-1848772826368442609/</guid><description>TypeScript problem: Related object properties should either all be provided, or all omitted. Two solutions: 1. Nest them under an optional object....</description><pubDate>Tue, 22 Oct 2024 17:06:05 GMT</pubDate><category>Tweets</category></item><item><title>Two popular, but conflicting programming styles: Small functions vs deep...</title><link>https://coryhouse.dev/2024/10/23/tweet-1849128785670549795/</link><guid isPermaLink="true">https://coryhouse.dev/2024/10/23/tweet-1849128785670549795/</guid><description>Two popular, but conflicting programming styles: Small functions vs deep functions. The book “Clean Code” argues for small functions: “The first ru...</description><pubDate>Wed, 23 Oct 2024 16:40:32 GMT</pubDate><category>Tweets</category></item><item><title>I have a theory: 🌶️Some developers are letting their political views impact...</title><link>https://coryhouse.dev/2024/10/24/tweet-1849478179271868731/</link><guid isPermaLink="true">https://coryhouse.dev/2024/10/24/tweet-1849478179271868731/</guid><description>I have a theory: 🌶️Some developers are letting their political views impact how they write code. Avoid associating ideas with people. Evaluate ide...</description><pubDate>Thu, 24 Oct 2024 15:48:54 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript has a structural type system, not a nominal type system</title><link>https://coryhouse.dev/2024/10/30/tweet-1851696412586655992/</link><guid isPermaLink="true">https://coryhouse.dev/2024/10/30/tweet-1851696412586655992/</guid><description>TypeScript has a structural type system, not a nominal type system. What&apos;s that mean? When determining if a type &quot;fits&quot;, the type&apos;s *structure* mat...</description><pubDate>Wed, 30 Oct 2024 18:43:22 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;ve spent the last few weeks trying all sorts of React 19 edge cases</title><link>https://coryhouse.dev/2024/11/02/tweet-1852758378000642526/</link><guid isPermaLink="true">https://coryhouse.dev/2024/11/02/tweet-1852758378000642526/</guid><description>I&apos;ve spent the last few weeks trying all sorts of React 19 edge cases. (publishing vids on this soon) Realization: I rarely need useState anymore....</description><pubDate>Sat, 02 Nov 2024 17:03:14 GMT</pubDate><category>Tweets</category></item><item><title>One of the most unkind things you can do is disparage someone else’s passion</title><link>https://coryhouse.dev/2024/11/03/tweet-1853172855548076509/</link><guid isPermaLink="true">https://coryhouse.dev/2024/11/03/tweet-1853172855548076509/</guid><description>One of the most unkind things you can do is disparage someone else’s passion. We all enjoy different things. We all need to find a reason to get up...</description><pubDate>Sun, 03 Nov 2024 20:30:13 GMT</pubDate><category>Tweets</category></item><item><title>In code reviews, I&apos;ve learned to watch out for many related useState calls...</title><link>https://coryhouse.dev/2024/11/04/tweet-1853520696833441958/</link><guid isPermaLink="true">https://coryhouse.dev/2024/11/04/tweet-1853520696833441958/</guid><description>In code reviews, I&apos;ve learned to watch out for many related useState calls in the same component - especially when they&apos;re booleans. Multiple useSt...</description><pubDate>Mon, 04 Nov 2024 19:32:25 GMT</pubDate><category>Tweets</category></item><item><title>All these years I&apos;ve been using &quot;new Error&quot; for nothing</title><link>https://coryhouse.dev/2024/11/04/tweet-1853541482587721903/</link><guid isPermaLink="true">https://coryhouse.dev/2024/11/04/tweet-1853541482587721903/</guid><description>All these years I&apos;ve been using &quot;new Error&quot; for nothing!? Just learned that these are equivalent in JS: throw Error(&apos;oops&apos;) and throw new Error(&apos;oo...</description><pubDate>Mon, 04 Nov 2024 20:55:01 GMT</pubDate><category>Tweets</category></item><item><title>If I can’t clearly explain why people vote differently than me, then I need...</title><link>https://coryhouse.dev/2024/11/05/tweet-1853821150675050898/</link><guid isPermaLink="true">https://coryhouse.dev/2024/11/05/tweet-1853821150675050898/</guid><description>If I can’t clearly explain why people vote differently than me, then I need to research more. It’s not love vs hate. It’s not good vs evil. It’s no...</description><pubDate>Tue, 05 Nov 2024 15:26:19 GMT</pubDate><category>Tweets</category></item><item><title>Mistake: Needlessly wide optional field</title><link>https://coryhouse.dev/2024/11/05/tweet-1853843374392177015/</link><guid isPermaLink="true">https://coryhouse.dev/2024/11/05/tweet-1853843374392177015/</guid><description>Mistake: Needlessly wide optional field. What&apos;s the semantic difference between an omitted address property, a null address, an undefined address,...</description><pubDate>Tue, 05 Nov 2024 16:54:37 GMT</pubDate><category>Tweets</category></item><item><title>Studio setup 2.0: - Closed blinds (to control the light) - New 5600K...</title><link>https://coryhouse.dev/2024/11/06/tweet-1854218626871542197/</link><guid isPermaLink="true">https://coryhouse.dev/2024/11/06/tweet-1854218626871542197/</guid><description>Studio setup 2.0: - Closed blinds (to control the light) - New 5600K keylight &amp; backlight - Camera white balance at 5600K - New camera angle (h...</description><pubDate>Wed, 06 Nov 2024 17:45:45 GMT</pubDate><category>Tweets</category></item><item><title>Tanstack query is awesome for fetching and caching data</title><link>https://coryhouse.dev/2024/11/06/tweet-1854272478878601336/</link><guid isPermaLink="true">https://coryhouse.dev/2024/11/06/tweet-1854272478878601336/</guid><description>Tanstack query is awesome for fetching and caching data. But, it&apos;s broader than that. It&apos;s an *async state* library. Example: Here&apos;s a custom React...</description><pubDate>Wed, 06 Nov 2024 21:19:44 GMT</pubDate><category>Tweets</category></item><item><title>Problem: I want to test my React app&apos;s error boundaries</title><link>https://coryhouse.dev/2024/11/08/tweet-1854911186707337451/</link><guid isPermaLink="true">https://coryhouse.dev/2024/11/08/tweet-1854911186707337451/</guid><description>Problem: I want to test my React app&apos;s error boundaries. Solution: Force an error via search params. This hook throws an error when a &quot;throwError&quot;...</description><pubDate>Fri, 08 Nov 2024 15:37:44 GMT</pubDate><category>Tweets</category></item><item><title>It&apos;s 2024 and I still see keys like this in React PRs</title><link>https://coryhouse.dev/2024/11/12/tweet-1856384898484814037/</link><guid isPermaLink="true">https://coryhouse.dev/2024/11/12/tweet-1856384898484814037/</guid><description>It&apos;s 2024 and I still see keys like this in React PRs. A key that changes on every render is worthless. Use something stable like a primary key, or...</description><pubDate>Tue, 12 Nov 2024 17:13:44 GMT</pubDate><category>Tweets</category></item><item><title>React 19 RC1 is out</title><link>https://coryhouse.dev/2024/11/15/tweet-1857416151153738135/</link><guid isPermaLink="true">https://coryhouse.dev/2024/11/15/tweet-1857416151153738135/</guid><description>React 19 RC1 is out. Suspense siblings prerender! When a component suspends, React commits the fallback of the nearest Suspense boundary without wa...</description><pubDate>Fri, 15 Nov 2024 13:31:34 GMT</pubDate><category>Tweets</category></item><item><title>Knip finds unused JS and TS code</title><link>https://coryhouse.dev/2024/11/15/tweet-1857452829939483135/</link><guid isPermaLink="true">https://coryhouse.dev/2024/11/15/tweet-1857452829939483135/</guid><description>Knip finds unused JS and TS code. It&apos;s wonderful. But here&apos;s a tip: Configure Knip to ignore your tests. This way, if you have code that&apos;s only ref...</description><pubDate>Fri, 15 Nov 2024 15:57:19 GMT</pubDate><category>Tweets</category></item><item><title>Tanstack Query pattern: 1</title><link>https://coryhouse.dev/2024/11/15/tweet-1857527433617969454/</link><guid isPermaLink="true">https://coryhouse.dev/2024/11/15/tweet-1857527433617969454/</guid><description>Tanstack Query pattern: 1. Colocate related queries and mutations 2. Centralize queryKeys If a query sets a key, and a mutation invalidates the sam...</description><pubDate>Fri, 15 Nov 2024 20:53:46 GMT</pubDate><category>Tweets</category></item><item><title>I often talk to developers who are thinking about going independent</title><link>https://coryhouse.dev/2024/11/19/tweet-1858941336436474140/</link><guid isPermaLink="true">https://coryhouse.dev/2024/11/19/tweet-1858941336436474140/</guid><description>I often talk to developers who are thinking about going independent. My advice: 1. Build a business while you have a full-time job. 2. Don’t quit y...</description><pubDate>Tue, 19 Nov 2024 18:32:06 GMT</pubDate><category>Tweets</category></item><item><title>React 19 is in RC React compiler is in Beta Tanstack Start is in Beta React...</title><link>https://coryhouse.dev/2024/11/20/tweet-1859226658709938540/</link><guid isPermaLink="true">https://coryhouse.dev/2024/11/20/tweet-1859226658709938540/</guid><description>React 19 is in RC React compiler is in Beta Tanstack Start is in Beta React Router 7 is in pre release So much good stuff coming soon! 2025 is goin...</description><pubDate>Wed, 20 Nov 2024 13:25:52 GMT</pubDate><category>Tweets</category></item><item><title>Next.js and React Router 7 (RR7) have fundamentally different approaches to...</title><link>https://coryhouse.dev/2024/11/25/tweet-1861058545040376141/</link><guid isPermaLink="true">https://coryhouse.dev/2024/11/25/tweet-1861058545040376141/</guid><description>Next.js and React Router 7 (RR7) have fundamentally different approaches to decomposition. In Next.js, you decompose via files. In React Router 7,...</description><pubDate>Mon, 25 Nov 2024 14:45:08 GMT</pubDate><category>Tweets</category></item><item><title>The State of Frontend 2024 report is out</title><link>https://coryhouse.dev/2024/11/27/tweet-1861815718339063871/</link><guid isPermaLink="true">https://coryhouse.dev/2024/11/27/tweet-1861815718339063871/</guid><description>The State of Frontend 2024 report is out. Lots of interesting insights. Also, this year I was invited to write a summary of the automated testing r...</description><pubDate>Wed, 27 Nov 2024 16:53:52 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You want to use Node with TypeScript</title><link>https://coryhouse.dev/2024/11/27/tweet-1861890234033766408/</link><guid isPermaLink="true">https://coryhouse.dev/2024/11/27/tweet-1861890234033766408/</guid><description>Problem: You want to use Node with TypeScript. Solutions: tsc (compile, then run js via node) ts-node tsx Bun esbuild swc babel-node vite-note My f...</description><pubDate>Wed, 27 Nov 2024 21:49:58 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m creating a new TypeScript project using Bun</title><link>https://coryhouse.dev/2024/12/02/tweet-1863661019970654624/</link><guid isPermaLink="true">https://coryhouse.dev/2024/12/02/tweet-1863661019970654624/</guid><description>I&apos;m creating a new TypeScript project using Bun. Loving it so far. Lightning fast and easy to use. Look how little code I need to create a REST API...</description><pubDate>Mon, 02 Dec 2024 19:06:26 GMT</pubDate><category>Tweets</category></item><item><title>I’ve found the fewer environments a software team has the better</title><link>https://coryhouse.dev/2024/12/04/tweet-1864340645239808440/</link><guid isPermaLink="true">https://coryhouse.dev/2024/12/04/tweet-1864340645239808440/</guid><description>I’ve found the fewer environments a software team has the better. Every additional environment adds cost, management overhead, out of sync risk, an...</description><pubDate>Wed, 04 Dec 2024 16:07:02 GMT</pubDate><category>Tweets</category></item><item><title>Hot take 🌶️: I’m not a fan of dedicated QA</title><link>https://coryhouse.dev/2024/12/04/tweet-1864371893626646598/</link><guid isPermaLink="true">https://coryhouse.dev/2024/12/04/tweet-1864371893626646598/</guid><description>Hot take 🌶️: I’m not a fan of dedicated QA. I prefer the dev team to be solely responsible for quality. When dedicated QA exists, 2 problems tend...</description><pubDate>Wed, 04 Dec 2024 18:11:12 GMT</pubDate><category>Tweets</category></item><item><title>Yep</title><link>https://coryhouse.dev/2024/12/04/tweet-1864402475723141523/</link><guid isPermaLink="true">https://coryhouse.dev/2024/12/04/tweet-1864402475723141523/</guid><description>Yep. A staging environment is an architectural code smell. Prefer continuous deploy and feature flags if possible. https://t.co/uN7kjpSe5A</description><pubDate>Wed, 04 Dec 2024 20:12:43 GMT</pubDate><category>Tweets</category></item><item><title>Wow, Supabase is 🔥</title><link>https://coryhouse.dev/2024/12/08/tweet-1865816052740817394/</link><guid isPermaLink="true">https://coryhouse.dev/2024/12/08/tweet-1865816052740817394/</guid><description>Wow, Supabase is 🔥. So far I&apos;m enjoying: Edge functions Built-in user auth Solid docs and SDKs Granular row level security Web-based DB Admin inte...</description><pubDate>Sun, 08 Dec 2024 17:49:46 GMT</pubDate><category>Tweets</category></item><item><title>Someone posted the V0 system prompt on GitHub</title><link>https://coryhouse.dev/2024/12/08/tweet-1865844934001185041/</link><guid isPermaLink="true">https://coryhouse.dev/2024/12/08/tweet-1865844934001185041/</guid><description>Someone posted the V0 system prompt on GitHub. This is fascinating reading. And as a V0 user, it helps me understand how to effectively interact wi...</description><pubDate>Sun, 08 Dec 2024 19:44:32 GMT</pubDate><category>Tweets</category></item><item><title>Yesterday read through V0&apos;s 1600+ line system prompt</title><link>https://coryhouse.dev/2024/12/09/tweet-1866123359915835788/</link><guid isPermaLink="true">https://coryhouse.dev/2024/12/09/tweet-1866123359915835788/</guid><description>Yesterday read through V0&apos;s 1600+ line system prompt. It specifies that V0 should follow these best practices. This is a good general code review c...</description><pubDate>Mon, 09 Dec 2024 14:10:54 GMT</pubDate><category>Tweets</category></item><item><title>My preferred development workflow for 2024: 1</title><link>https://coryhouse.dev/2024/12/13/tweet-1867582713638658059/</link><guid isPermaLink="true">https://coryhouse.dev/2024/12/13/tweet-1867582713638658059/</guid><description>My preferred development workflow for 2024: 1. All devs have their own DB instance so we don’t conflict with each other. The DBs run locally, and c...</description><pubDate>Fri, 13 Dec 2024 14:49:51 GMT</pubDate><category>Tweets</category></item><item><title>Controversial opinion: 🌶️ I prefer for all quality checks to occur *before*...</title><link>https://coryhouse.dev/2024/12/13/tweet-1867636067429442009/</link><guid isPermaLink="true">https://coryhouse.dev/2024/12/13/tweet-1867636067429442009/</guid><description>Controversial opinion: 🌶️ I prefer for all quality checks to occur *before* merge. Here&apos;s why. Merging code that hasn&apos;t been fully quality checked...</description><pubDate>Fri, 13 Dec 2024 18:21:52 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You want to push your changes, but skip CI because you&apos;re not done...</title><link>https://coryhouse.dev/2024/12/15/tweet-1868376700033413151/</link><guid isPermaLink="true">https://coryhouse.dev/2024/12/15/tweet-1868376700033413151/</guid><description>Problem: You want to push your changes, but skip CI because you&apos;re not done yet, so running CI would be wasteful. Solution: Put this in the push co...</description><pubDate>Sun, 15 Dec 2024 19:24:52 GMT</pubDate><category>Tweets</category></item><item><title>What I love about Tanstack start: Simplicity</title><link>https://coryhouse.dev/2024/12/19/tweet-1869874817324794017/</link><guid isPermaLink="true">https://coryhouse.dev/2024/12/19/tweet-1869874817324794017/</guid><description>What I love about Tanstack start: Simplicity. Competitors have larger, more confusing APIs because they have to support previous “mistakes”. Tansta...</description><pubDate>Thu, 19 Dec 2024 22:37:51 GMT</pubDate><category>Tweets</category></item><item><title>Woah, I agree with v0’s state management preferences</title><link>https://coryhouse.dev/2024/12/20/tweet-1870147915554959800/</link><guid isPermaLink="true">https://coryhouse.dev/2024/12/20/tweet-1870147915554959800/</guid><description>Woah, I agree with v0’s state management preferences. This is from V0’s system prompt: PREFER: - React&apos;s built-in useState/useReducer - Server Comp...</description><pubDate>Fri, 20 Dec 2024 16:43:03 GMT</pubDate><category>Tweets</category></item><item><title>Claim: Your app is slow because it uses React/Vue/Angular instead of plain...</title><link>https://coryhouse.dev/2024/12/23/tweet-1871264815362064594/</link><guid isPermaLink="true">https://coryhouse.dev/2024/12/23/tweet-1871264815362064594/</guid><description>Claim: Your app is slow because it uses React/Vue/Angular instead of plain HTML and Vanilla JS. Reality: It’s probably slow because of two things:...</description><pubDate>Mon, 23 Dec 2024 18:41:13 GMT</pubDate><category>Tweets</category></item><item><title>In my experience, it’s rare to find someone in QA who is as good at writing...</title><link>https://coryhouse.dev/2024/12/24/tweet-1871565768539914678/</link><guid isPermaLink="true">https://coryhouse.dev/2024/12/24/tweet-1871565768539914678/</guid><description>In my experience, it’s rare to find someone in QA who is as good at writing automated tests as a developer. My theory on why: If you’re good at wri...</description><pubDate>Tue, 24 Dec 2024 14:37:05 GMT</pubDate><category>Tweets</category></item><item><title>What if I take my career seriously and AI replaces me</title><link>https://coryhouse.dev/2024/12/26/tweet-1872281028892782846/</link><guid isPermaLink="true">https://coryhouse.dev/2024/12/26/tweet-1872281028892782846/</guid><description>What if I take my career seriously and AI replaces me? What if I don’t take my career seriously and a human replaces me? Thus, there are really jus...</description><pubDate>Thu, 26 Dec 2024 13:59:17 GMT</pubDate><category>Tweets</category></item><item><title>Next.js and React Router 7 (RR7) have fundamentally different approaches to...</title><link>https://coryhouse.dev/2024/12/26/tweet-1872368621508243576/</link><guid isPermaLink="true">https://coryhouse.dev/2024/12/26/tweet-1872368621508243576/</guid><description>Next.js and React Router 7 (RR7) have fundamentally different approaches to decomposition. In Next.js, you create many small files per route (Page....</description><pubDate>Thu, 26 Dec 2024 19:47:20 GMT</pubDate><category>Tweets</category></item><item><title>In modern TypeScript, there are at least a dozen ways to narrow types</title><link>https://coryhouse.dev/2024/12/31/tweet-1874227746135572941/</link><guid isPermaLink="true">https://coryhouse.dev/2024/12/31/tweet-1874227746135572941/</guid><description>In modern TypeScript, there are at least a dozen ways to narrow types. 1. typeof Type guards 2. Truthiness narrowing 3. Equality narrowing 4. `in`...</description><pubDate>Tue, 31 Dec 2024 22:54:50 GMT</pubDate><category>Tweets</category></item><item><title>V0&apos;s system prompt specifies these naming and casing rules</title><link>https://coryhouse.dev/2025/01/01/tweet-1874462701835202942/</link><guid isPermaLink="true">https://coryhouse.dev/2025/01/01/tweet-1874462701835202942/</guid><description>V0&apos;s system prompt specifies these naming and casing rules. I agree with all this. For years, I used PascalCase for React components. But I now I u...</description><pubDate>Wed, 01 Jan 2025 14:28:28 GMT</pubDate><category>Tweets</category></item><item><title>Why does coding pay well</title><link>https://coryhouse.dev/2025/01/01/tweet-1874517988025454697/</link><guid isPermaLink="true">https://coryhouse.dev/2025/01/01/tweet-1874517988025454697/</guid><description>Why does coding pay well? 4 reasons: 1. Keeping up with the syntax, patterns, best-practices, and tools is hard work. Many can’t do it, or aren’t w...</description><pubDate>Wed, 01 Jan 2025 18:08:09 GMT</pubDate><category>Tweets</category></item><item><title>I recently joined a team that’s using V0 for rapid UI prototyping</title><link>https://coryhouse.dev/2025/01/01/tweet-1874562453985464335/</link><guid isPermaLink="true">https://coryhouse.dev/2025/01/01/tweet-1874562453985464335/</guid><description>I recently joined a team that’s using V0 for rapid UI prototyping. We’re not using Figma - V0 *is* the requirements. Here’s the process: 1. A non-t...</description><pubDate>Wed, 01 Jan 2025 21:04:51 GMT</pubDate><category>Tweets</category></item><item><title>In TypeScript, many people argue over when to use type vs interface</title><link>https://coryhouse.dev/2025/01/03/tweet-1875224554374930493/</link><guid isPermaLink="true">https://coryhouse.dev/2025/01/03/tweet-1875224554374930493/</guid><description>In TypeScript, many people argue over when to use type vs interface. My rule? Use type when necessary. Here are 5 things only type can do. Otherwis...</description><pubDate>Fri, 03 Jan 2025 16:55:48 GMT</pubDate><category>Tweets</category></item><item><title>Interesting</title><link>https://coryhouse.dev/2025/01/04/tweet-1875538180570493161/</link><guid isPermaLink="true">https://coryhouse.dev/2025/01/04/tweet-1875538180570493161/</guid><description>Interesting. Years ago, Jared Palmer created Formik, one of React’s most popular form libraries. Fast forward to today, and Jared is VP of AI at Ve...</description><pubDate>Sat, 04 Jan 2025 13:42:02 GMT</pubDate><category>Tweets</category></item><item><title>In one of my client’s apps, we centralized date formats in an enum to...</title><link>https://coryhouse.dev/2025/01/04/tweet-1875588216755011976/</link><guid isPermaLink="true">https://coryhouse.dev/2025/01/04/tweet-1875588216755011976/</guid><description>In one of my client’s apps, we centralized date formats in an enum to encourage consistency. But over time, we ended up with this huge list! That s...</description><pubDate>Sat, 04 Jan 2025 17:00:52 GMT</pubDate><category>Tweets</category></item><item><title>One of the weirdest JavaScript features: Functions can have properties</title><link>https://coryhouse.dev/2025/01/04/tweet-1875651336534163767/</link><guid isPermaLink="true">https://coryhouse.dev/2025/01/04/tweet-1875651336534163767/</guid><description>One of the weirdest JavaScript features: Functions can have properties. Why? Because JavaScript functions are objects. So, this is valid JS.</description><pubDate>Sat, 04 Jan 2025 21:11:41 GMT</pubDate><category>Tweets</category></item><item><title>Problem: I may forget to pass an optional param in cases where it should be...</title><link>https://coryhouse.dev/2025/01/05/tweet-1875914371420828026/</link><guid isPermaLink="true">https://coryhouse.dev/2025/01/05/tweet-1875914371420828026/</guid><description>Problem: I may forget to pass an optional param in cases where it should be provided. Solution: Require the parameter, but also accept undefined. T...</description><pubDate>Sun, 05 Jan 2025 14:36:53 GMT</pubDate><category>Tweets</category></item><item><title>Just talked to a business owner who reduced his dev staff from 18 to 3 using...</title><link>https://coryhouse.dev/2025/01/10/tweet-1877774610420125929/</link><guid isPermaLink="true">https://coryhouse.dev/2025/01/10/tweet-1877774610420125929/</guid><description>Just talked to a business owner who reduced his dev staff from 18 to 3 using generative AI. Claims he&apos;s getting the same velocity with only 3 devs....</description><pubDate>Fri, 10 Jan 2025 17:48:49 GMT</pubDate><category>Tweets</category></item><item><title>I ❤️ TypeScript</title><link>https://coryhouse.dev/2025/01/11/tweet-1878160498006299039/</link><guid isPermaLink="true">https://coryhouse.dev/2025/01/11/tweet-1878160498006299039/</guid><description>I ❤️ TypeScript. But it contains 4 features that I avoid: 1. The &quot;private&quot; and &quot;protected&quot; keywords on classes. Largely redundant since JS has nati...</description><pubDate>Sat, 11 Jan 2025 19:22:11 GMT</pubDate><category>Tweets</category></item><item><title>Problem: When the left and right side match, a TypeScript enum or const...</title><link>https://coryhouse.dev/2025/01/13/tweet-1878836954969579947/</link><guid isPermaLink="true">https://coryhouse.dev/2025/01/13/tweet-1878836954969579947/</guid><description>Problem: When the left and right side match, a TypeScript enum or const object is needlessly verbose. Solution: Use a union.</description><pubDate>Mon, 13 Jan 2025 16:10:11 GMT</pubDate><category>Tweets</category></item><item><title>Everybody dreams of retiring early</title><link>https://coryhouse.dev/2025/01/17/tweet-1880244247703572875/</link><guid isPermaLink="true">https://coryhouse.dev/2025/01/17/tweet-1880244247703572875/</guid><description>Everybody dreams of retiring early. But it’s a mirage. Not because it’s impossible. Because it’s not as desirable as it sounds. Unlimited free time...</description><pubDate>Fri, 17 Jan 2025 13:22:16 GMT</pubDate><category>Tweets</category></item><item><title>People complain about complex TypeScript types, but complex types are...</title><link>https://coryhouse.dev/2025/01/18/tweet-1880684233364308362/</link><guid isPermaLink="true">https://coryhouse.dev/2025/01/18/tweet-1880684233364308362/</guid><description>People complain about complex TypeScript types, but complex types are typically only necessary for libraries, not apps. Types for apps should typic...</description><pubDate>Sat, 18 Jan 2025 18:30:37 GMT</pubDate><category>Tweets</category></item><item><title>At Codemash, a photographer saw me at lunch and asked &quot;Is it okay if I take...</title><link>https://coryhouse.dev/2025/01/20/tweet-1881338792176758920/</link><guid isPermaLink="true">https://coryhouse.dev/2025/01/20/tweet-1881338792176758920/</guid><description>At Codemash, a photographer saw me at lunch and asked &quot;Is it okay if I take your picture?&quot; I jokingly said &quot;Sure as long as you photoshop my bald s...</description><pubDate>Mon, 20 Jan 2025 13:51:36 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;ve found the best way to learn is to teach</title><link>https://coryhouse.dev/2025/01/20/tweet-1881425279350165695/</link><guid isPermaLink="true">https://coryhouse.dev/2025/01/20/tweet-1881425279350165695/</guid><description>I&apos;ve found the best way to learn is to teach. And the wonderful thing is, if I have no one to teach, I can pretend. So, I talk to myself - I teach...</description><pubDate>Mon, 20 Jan 2025 19:35:16 GMT</pubDate><category>Tweets</category></item><item><title>Problem: TypeScript doesn&apos;t support specific string or numeric values (a...</title><link>https://coryhouse.dev/2025/01/21/tweet-1881701177550897330/</link><guid isPermaLink="true">https://coryhouse.dev/2025/01/21/tweet-1881701177550897330/</guid><description>Problem: TypeScript doesn&apos;t support specific string or numeric values (a positive number, negative number, a unit of measure like meter, etc). So,...</description><pubDate>Tue, 21 Jan 2025 13:51:35 GMT</pubDate><category>Tweets</category></item><item><title>This article is an excellent overview of why sync engines / local first are...</title><link>https://coryhouse.dev/2025/01/28/tweet-1884072997457383608/</link><guid isPermaLink="true">https://coryhouse.dev/2025/01/28/tweet-1884072997457383608/</guid><description>This article is an excellent overview of why sync engines / local first are the next logical step for ultra-responsive web apps. Better UX. Better...</description><pubDate>Tue, 28 Jan 2025 02:56:21 GMT</pubDate><category>Tweets</category></item><item><title>2025 is going to be a big year for local first web apps</title><link>https://coryhouse.dev/2025/01/28/tweet-1884227423048458744/</link><guid isPermaLink="true">https://coryhouse.dev/2025/01/28/tweet-1884227423048458744/</guid><description>2025 is going to be a big year for local first web apps. I’m especially excited for Zero, but there are many other options. If you’re new to local...</description><pubDate>Tue, 28 Jan 2025 13:09:59 GMT</pubDate><category>Tweets</category></item><item><title>The ending of an era: Create React App is about to be officially marked as...</title><link>https://coryhouse.dev/2025/01/30/tweet-1885047720102051858/</link><guid isPermaLink="true">https://coryhouse.dev/2025/01/30/tweet-1885047720102051858/</guid><description>The ending of an era: Create React App is about to be officially marked as deprecated. See ya CRA. Long live React!</description><pubDate>Thu, 30 Jan 2025 19:29:33 GMT</pubDate><category>Tweets</category></item><item><title>Just presented a two day React workshop</title><link>https://coryhouse.dev/2025/02/06/tweet-1887521581376713085/</link><guid isPermaLink="true">https://coryhouse.dev/2025/02/06/tweet-1887521581376713085/</guid><description>Just presented a two day React workshop. We built an app from scratch as a team. At the end of the session, one of the attendees generated the same...</description><pubDate>Thu, 06 Feb 2025 15:19:48 GMT</pubDate><category>Tweets</category></item><item><title>Wow, just learned React Query is used about about 1 in 5 of all React apps</title><link>https://coryhouse.dev/2025/02/06/tweet-1887634327372243267/</link><guid isPermaLink="true">https://coryhouse.dev/2025/02/06/tweet-1887634327372243267/</guid><description>Wow, just learned React Query is used about about 1 in 5 of all React apps. 6 million downloads/month!</description><pubDate>Thu, 06 Feb 2025 22:47:48 GMT</pubDate><category>Tweets</category></item><item><title>Why React Query</title><link>https://coryhouse.dev/2025/02/06/tweet-1887638992574693718/</link><guid isPermaLink="true">https://coryhouse.dev/2025/02/06/tweet-1887638992574693718/</guid><description>Why React Query? WAY less boilerplate. And this image from @TkDodo doesn&apos;t even mention all the other benefits like caching, retries, etc.</description><pubDate>Thu, 06 Feb 2025 23:06:21 GMT</pubDate><category>Tweets</category></item><item><title>My recipe for feeling great: - Good sleep</title><link>https://coryhouse.dev/2025/02/09/tweet-1888592610479976689/</link><guid isPermaLink="true">https://coryhouse.dev/2025/02/09/tweet-1888592610479976689/</guid><description>My recipe for feeling great: - Good sleep. Avoid alcohol and caffeine. Don’t eat at least 2 hours before bed. Avoid overeating. Go to bed early (ar...</description><pubDate>Sun, 09 Feb 2025 14:15:41 GMT</pubDate><category>Tweets</category></item><item><title>RSC is the most painful new React API in the State of React survey</title><link>https://coryhouse.dev/2025/02/12/tweet-1889683309707379027/</link><guid isPermaLink="true">https://coryhouse.dev/2025/02/12/tweet-1889683309707379027/</guid><description>RSC is the most painful new React API in the State of React survey. Complaints: - Hard to test. - Hard to debug. - Hard to reason about. - Confusin...</description><pubDate>Wed, 12 Feb 2025 14:29:44 GMT</pubDate><category>Tweets</category></item><item><title>The React docs finally recommend Vite</title><link>https://coryhouse.dev/2025/02/15/tweet-1890555250735501650/</link><guid isPermaLink="true">https://coryhouse.dev/2025/02/15/tweet-1890555250735501650/</guid><description>The React docs finally recommend Vite! Great to finally see this. However, this text infers you only use Vite with React Router 7. That is unfortun...</description><pubDate>Sat, 15 Feb 2025 00:14:31 GMT</pubDate><category>Tweets</category></item><item><title>For 25 years, I’ve specialized in frontend web development</title><link>https://coryhouse.dev/2025/02/15/tweet-1890731084733636996/</link><guid isPermaLink="true">https://coryhouse.dev/2025/02/15/tweet-1890731084733636996/</guid><description>For 25 years, I’ve specialized in frontend web development. But we’re moving into a new era: I simply tell the machine what I want. I’m increasingl...</description><pubDate>Sat, 15 Feb 2025 11:53:13 GMT</pubDate><category>Tweets</category></item><item><title>Docs should be honest</title><link>https://coryhouse.dev/2025/02/17/tweet-1891495801014169778/</link><guid isPermaLink="true">https://coryhouse.dev/2025/02/17/tweet-1891495801014169778/</guid><description>Docs should be honest. So, here&apos;s what I think the &quot;Sunsetting Create React App&quot; blog post should say:</description><pubDate>Mon, 17 Feb 2025 14:31:55 GMT</pubDate><category>Tweets</category></item><item><title>A full-time job sounds safe, but it’s not</title><link>https://coryhouse.dev/2025/02/19/tweet-1892276011351376377/</link><guid isPermaLink="true">https://coryhouse.dev/2025/02/19/tweet-1892276011351376377/</guid><description>A full-time job sounds safe, but it’s not. It puts all my eggs in *one* basket. In contrast, as an independent I’m diversified. I have many income...</description><pubDate>Wed, 19 Feb 2025 18:12:12 GMT</pubDate><category>Tweets</category></item><item><title>I was already a big fan of Tailwind, but I&apos;m even more bullish now that AI...</title><link>https://coryhouse.dev/2025/02/21/tweet-1892969596120174752/</link><guid isPermaLink="true">https://coryhouse.dev/2025/02/21/tweet-1892969596120174752/</guid><description>I was already a big fan of Tailwind, but I&apos;m even more bullish now that AI is here. Why? Because Tailwind is more AI friendly than plain CSS. With...</description><pubDate>Fri, 21 Feb 2025 16:08:16 GMT</pubDate><category>Tweets</category></item><item><title>Surprisingly, I&apos;m using Bun instead of Node in my new TypeScript courses</title><link>https://coryhouse.dev/2025/02/21/tweet-1893042151514058828/</link><guid isPermaLink="true">https://coryhouse.dev/2025/02/21/tweet-1893042151514058828/</guid><description>Surprisingly, I&apos;m using Bun instead of Node in my new TypeScript courses. Here&apos;s a short clip from the course that explains why. Excited to publish...</description><pubDate>Fri, 21 Feb 2025 20:56:34 GMT</pubDate><category>Tweets</category></item><item><title>Years ago I was a team lead at a growing startup</title><link>https://coryhouse.dev/2025/02/22/tweet-1893309924702077220/</link><guid isPermaLink="true">https://coryhouse.dev/2025/02/22/tweet-1893309924702077220/</guid><description>Years ago I was a team lead at a growing startup. My VP said “keep interviewing and hiring good developers and I’ll tell you when to stop.” So, I i...</description><pubDate>Sat, 22 Feb 2025 14:40:36 GMT</pubDate><category>Tweets</category></item><item><title>Problem: React Query’s useSuspenseQuery displays the Suspense fallback...</title><link>https://coryhouse.dev/2025/02/24/tweet-1894075883184378224/</link><guid isPermaLink="true">https://coryhouse.dev/2025/02/24/tweet-1894075883184378224/</guid><description>Problem: React Query’s useSuspenseQuery displays the Suspense fallback anytime the query key changes. What if you want to only show the fallback th...</description><pubDate>Mon, 24 Feb 2025 17:24:15 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript rule: The stricter we are, the safer we are</title><link>https://coryhouse.dev/2025/03/03/tweet-1896577951065628858/</link><guid isPermaLink="true">https://coryhouse.dev/2025/03/03/tweet-1896577951065628858/</guid><description>TypeScript rule: The stricter we are, the safer we are. But safety is a tradeoff. It’s not free. Excessively strict typing rules may slow us down m...</description><pubDate>Mon, 03 Mar 2025 15:06:34 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You need to convert a big JavaScript project to TypeScript</title><link>https://coryhouse.dev/2025/03/03/tweet-1896705927991939197/</link><guid isPermaLink="true">https://coryhouse.dev/2025/03/03/tweet-1896705927991939197/</guid><description>Problem: You need to convert a big JavaScript project to TypeScript. Solution: ts-migrate It converts all files to .ts, and adds types where it can...</description><pubDate>Mon, 03 Mar 2025 23:35:06 GMT</pubDate><category>Tweets</category></item><item><title>Tanstack form was announced a day ago and everyone is excited about it...</title><link>https://coryhouse.dev/2025/03/04/tweet-1896933386935251117/</link><guid isPermaLink="true">https://coryhouse.dev/2025/03/04/tweet-1896933386935251117/</guid><description>Tanstack form was announced a day ago and everyone is excited about it despite the fact that they haven’t used it yet. This is a powerful statement...</description><pubDate>Tue, 04 Mar 2025 14:38:57 GMT</pubDate><category>Tweets</category></item><item><title>Misconception: &quot;Separate useState is faster&quot; Reality: When state changes,...</title><link>https://coryhouse.dev/2025/03/04/tweet-1896973128489951507/</link><guid isPermaLink="true">https://coryhouse.dev/2025/03/04/tweet-1896973128489951507/</guid><description>Misconception: &quot;Separate useState is faster&quot; Reality: When state changes, React renders. So, separate useState vs a single useState doesn&apos;t typical...</description><pubDate>Tue, 04 Mar 2025 17:16:52 GMT</pubDate><category>Tweets</category></item><item><title>Theory: If you know a tech well, there are probably features you try to avoid</title><link>https://coryhouse.dev/2025/03/06/tweet-1897664761346535566/</link><guid isPermaLink="true">https://coryhouse.dev/2025/03/06/tweet-1897664761346535566/</guid><description>Theory: If you know a tech well, there are probably features you try to avoid. Thus, one of my favorite interview questions: &quot;What features do you...</description><pubDate>Thu, 06 Mar 2025 15:05:10 GMT</pubDate><category>Tweets</category></item><item><title>My new TypeScript: Zero to Hero courses are different than any courses I&apos;ve...</title><link>https://coryhouse.dev/2025/03/08/tweet-1898390554347466954/</link><guid isPermaLink="true">https://coryhouse.dev/2025/03/08/tweet-1898390554347466954/</guid><description>My new TypeScript: Zero to Hero courses are different than any courses I&apos;ve ever done. - Nearly all code. No slides. - Showing my face for narratio...</description><pubDate>Sat, 08 Mar 2025 15:09:13 GMT</pubDate><category>Tweets</category></item><item><title>My M1 Mac is still wonderful</title><link>https://coryhouse.dev/2025/03/11/tweet-1899262050779496834/</link><guid isPermaLink="true">https://coryhouse.dev/2025/03/11/tweet-1899262050779496834/</guid><description>My M1 Mac is still wonderful. Easily the best machine I’ve ever owned. But the battery life is fading and it’s pricey to replace. Solution? Bought...</description><pubDate>Tue, 11 Mar 2025 00:52:14 GMT</pubDate><category>Tweets</category></item><item><title>Woah</title><link>https://coryhouse.dev/2025/03/11/tweet-1899480456975778106/</link><guid isPermaLink="true">https://coryhouse.dev/2025/03/11/tweet-1899480456975778106/</guid><description>Woah! Microsoft is rewriting TypeScript in Go. Result? 10x faster performance! https://devblogs.microsoft.com/typescript/typescript-native-port/</description><pubDate>Tue, 11 Mar 2025 15:20:06 GMT</pubDate><category>Tweets</category></item><item><title>In TypeScript, interfaces and type aliases can &quot;extend&quot; each another</title><link>https://coryhouse.dev/2025/03/11/tweet-1899486458462773389/</link><guid isPermaLink="true">https://coryhouse.dev/2025/03/11/tweet-1899486458462773389/</guid><description>In TypeScript, interfaces and type aliases can &quot;extend&quot; each another. - An interface can extend a type. - A type alias can &quot;extend&quot; an interface (v...</description><pubDate>Tue, 11 Mar 2025 15:43:57 GMT</pubDate><category>Tweets</category></item><item><title>Wow, the speed impact of rewriting TypeScript in Go is wild</title><link>https://coryhouse.dev/2025/03/11/tweet-1899505012918587759/</link><guid isPermaLink="true">https://coryhouse.dev/2025/03/11/tweet-1899505012918587759/</guid><description>Wow, the speed impact of rewriting TypeScript in Go is wild. Check out these differences. 9-13 times faster?! So excited to see this. Huge win for...</description><pubDate>Tue, 11 Mar 2025 16:57:40 GMT</pubDate><category>Tweets</category></item><item><title>I think I finally have my phone-friendly vertical video format dialed in</title><link>https://coryhouse.dev/2025/03/11/tweet-1899505992263418199/</link><guid isPermaLink="true">https://coryhouse.dev/2025/03/11/tweet-1899505992263418199/</guid><description>I think I finally have my phone-friendly vertical video format dialed in. I&apos;m using an iPad with a Neewer teleprompter as my monitor so I can look...</description><pubDate>Tue, 11 Mar 2025 17:01:34 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript will soon compile 10x faster</title><link>https://coryhouse.dev/2025/03/11/tweet-1899562873577213961/</link><guid isPermaLink="true">https://coryhouse.dev/2025/03/11/tweet-1899562873577213961/</guid><description>TypeScript will soon compile 10x faster. So, using JSDoc comments to declare types for &quot;performance reasons&quot; will soon be even harder to justify.</description><pubDate>Tue, 11 Mar 2025 20:47:35 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript is great</title><link>https://coryhouse.dev/2025/03/13/tweet-1900190627276427638/</link><guid isPermaLink="true">https://coryhouse.dev/2025/03/13/tweet-1900190627276427638/</guid><description>TypeScript is great. But it has 3 features that you should probably avoid. Here&apos;s what I suggest using instead. Clip from &quot;TypeScript: Getting Star...</description><pubDate>Thu, 13 Mar 2025 14:22:04 GMT</pubDate><category>Tweets</category></item><item><title>In TypeScript, interfaces and types are often interchangeable</title><link>https://coryhouse.dev/2025/03/17/tweet-1901629128849138052/</link><guid isPermaLink="true">https://coryhouse.dev/2025/03/17/tweet-1901629128849138052/</guid><description>In TypeScript, interfaces and types are often interchangeable. But these are 6 features that only work with a type alias. Clip from &quot;TypeScript: Ge...</description><pubDate>Mon, 17 Mar 2025 13:38:09 GMT</pubDate><category>Tweets</category></item><item><title>Now that Node, Bun, and Deno can run TS files directly without compilation,...</title><link>https://coryhouse.dev/2025/03/18/tweet-1902045523172827639/</link><guid isPermaLink="true">https://coryhouse.dev/2025/03/18/tweet-1902045523172827639/</guid><description>Now that Node, Bun, and Deno can run TS files directly without compilation, using JSDoc syntax to declare TypeScript types is even harder to justif...</description><pubDate>Tue, 18 Mar 2025 17:12:45 GMT</pubDate><category>Tweets</category></item><item><title>In TypeScript, there are at least 4 ways to implement immutability</title><link>https://coryhouse.dev/2025/03/19/tweet-1902378789859885550/</link><guid isPermaLink="true">https://coryhouse.dev/2025/03/19/tweet-1902378789859885550/</guid><description>In TypeScript, there are at least 4 ways to implement immutability. Here&apos;s how I choose between them.</description><pubDate>Wed, 19 Mar 2025 15:17:02 GMT</pubDate><category>Tweets</category></item><item><title>Just read &quot;Next.js vs Tanstack&quot; by @gill_kyle</title><link>https://coryhouse.dev/2025/03/20/tweet-1902774008526877004/</link><guid isPermaLink="true">https://coryhouse.dev/2025/03/20/tweet-1902774008526877004/</guid><description>Just read &quot;Next.js vs Tanstack&quot; by @gill_kyle. Summary: Next is comprehensive and offers many micro-optimizations. But caching is complex, it&apos;s har...</description><pubDate>Thu, 20 Mar 2025 17:27:30 GMT</pubDate><category>Tweets</category></item><item><title>Problem: I want to see a list of the settings I&apos;ve changed in VS Code</title><link>https://coryhouse.dev/2025/03/21/tweet-1903120001160053231/</link><guid isPermaLink="true">https://coryhouse.dev/2025/03/21/tweet-1903120001160053231/</guid><description>Problem: I want to see a list of the settings I&apos;ve changed in VS Code. Solution: Search for &quot;@modified&quot;. This displays a list of modified settings....</description><pubDate>Fri, 21 Mar 2025 16:22:21 GMT</pubDate><category>Tweets</category></item><item><title>Today I&apos;m auditing a codebase for a client</title><link>https://coryhouse.dev/2025/03/24/tweet-1904211150981435399/</link><guid isPermaLink="true">https://coryhouse.dev/2025/03/24/tweet-1904211150981435399/</guid><description>Today I&apos;m auditing a codebase for a client. It has over 100 warnings. That&apos;s a problem. Why? Because if there are already warnings, I won&apos;t notice...</description><pubDate>Mon, 24 Mar 2025 16:38:11 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Unused npm dependencies</title><link>https://coryhouse.dev/2025/03/25/tweet-1904571512549482657/</link><guid isPermaLink="true">https://coryhouse.dev/2025/03/25/tweet-1904571512549482657/</guid><description>Problem: Unused npm dependencies. They make package.json harder to read, bloat node_modules, waste our time updating packages we don’t use, and cre...</description><pubDate>Tue, 25 Mar 2025 16:30:08 GMT</pubDate><category>Tweets</category></item><item><title>A codebase shouldn&apos;t feel like this, but I see it a lot</title><link>https://coryhouse.dev/2025/03/25/tweet-1904574822446772413/</link><guid isPermaLink="true">https://coryhouse.dev/2025/03/25/tweet-1904574822446772413/</guid><description>A codebase shouldn&apos;t feel like this, but I see it a lot. unused imports and packages rampant copy/paste half-written features unclear patterns comm...</description><pubDate>Tue, 25 Mar 2025 16:43:17 GMT</pubDate><category>Tweets</category></item><item><title>Just watched &quot;React Query API Design: Lessons Learned&quot; by @TkDodo 7 insights: 1</title><link>https://coryhouse.dev/2025/03/26/tweet-1904686464291729572/</link><guid isPermaLink="true">https://coryhouse.dev/2025/03/26/tweet-1904686464291729572/</guid><description>Just watched &quot;React Query API Design: Lessons Learned&quot; by @TkDodo 7 insights: 1. Don&apos;t be excited about major versions - they&apos;re *breaking*. 2. Des...</description><pubDate>Wed, 26 Mar 2025 00:06:55 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript radically improved my frontend code</title><link>https://coryhouse.dev/2025/03/26/tweet-1904902241317793932/</link><guid isPermaLink="true">https://coryhouse.dev/2025/03/26/tweet-1904902241317793932/</guid><description>TypeScript radically improved my frontend code. Here are 7 reasons I use TypeScript instead of JavaScript.</description><pubDate>Wed, 26 Mar 2025 14:24:20 GMT</pubDate><category>Tweets</category></item><item><title>Over-abstractor: A dev who immediately wants to abstract any new library...</title><link>https://coryhouse.dev/2025/03/26/tweet-1904921498894106989/</link><guid isPermaLink="true">https://coryhouse.dev/2025/03/26/tweet-1904921498894106989/</guid><description>Over-abstractor: A dev who immediately wants to abstract any new library we&apos;re considering. Examples: &quot;Let&apos;s create a wrapper around React in case...</description><pubDate>Wed, 26 Mar 2025 15:40:51 GMT</pubDate><category>Tweets</category></item><item><title>PSA 📢: This isn’t error handling</title><link>https://coryhouse.dev/2025/03/27/tweet-1905279949637849577/</link><guid isPermaLink="true">https://coryhouse.dev/2025/03/27/tweet-1905279949637849577/</guid><description>PSA 📢: This isn’t error handling. .catch((e) =&gt; console.log(e)) It&apos;s error swallowing. The user isn’t watching the console. Solution: Show the...</description><pubDate>Thu, 27 Mar 2025 15:25:13 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;ve heard people say &quot;spelling mistakes in code are harmless&quot;</title><link>https://coryhouse.dev/2025/03/28/tweet-1905647515942195301/</link><guid isPermaLink="true">https://coryhouse.dev/2025/03/28/tweet-1905647515942195301/</guid><description>I&apos;ve heard people say &quot;spelling mistakes in code are harmless&quot;. I disagree. Spelling mistakes slow reading, create confusion, and can lead to bugs....</description><pubDate>Fri, 28 Mar 2025 15:45:47 GMT</pubDate><category>Tweets</category></item><item><title>The biggest reason I prefer working in TypeScript over typed alternatives...</title><link>https://coryhouse.dev/2025/04/01/tweet-1907076979360157916/</link><guid isPermaLink="true">https://coryhouse.dev/2025/04/01/tweet-1907076979360157916/</guid><description>The biggest reason I prefer working in TypeScript over typed alternatives like C# or Java: Bare functions. In C# and Java, everything has to be a c...</description><pubDate>Tue, 01 Apr 2025 14:25:58 GMT</pubDate><category>Tweets</category></item><item><title>React Server Components have gotten a lot of hate recently</title><link>https://coryhouse.dev/2025/04/02/tweet-1907459201930047510/</link><guid isPermaLink="true">https://coryhouse.dev/2025/04/02/tweet-1907459201930047510/</guid><description>React Server Components have gotten a lot of hate recently. I&apos;m not saying they&apos;re perfect, but this short comparison shows why I still think they&apos;...</description><pubDate>Wed, 02 Apr 2025 15:44:47 GMT</pubDate><category>Tweets</category></item><item><title>Just generated Playwright tests for a feature that had no tests with this...</title><link>https://coryhouse.dev/2025/04/04/tweet-1908243530427859386/</link><guid isPermaLink="true">https://coryhouse.dev/2025/04/04/tweet-1908243530427859386/</guid><description>Just generated Playwright tests for a feature that had no tests with this 2-step LLM workflow: 1. ChatGPT prompt: &quot;Create a requirements document i...</description><pubDate>Fri, 04 Apr 2025 19:41:25 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript has around 20 handy utility types - Pick, Omit, Partial, etc</title><link>https://coryhouse.dev/2025/04/08/tweet-1909594788149838028/</link><guid isPermaLink="true">https://coryhouse.dev/2025/04/08/tweet-1909594788149838028/</guid><description>TypeScript has around 20 handy utility types - Pick, Omit, Partial, etc. But there are 100&apos;s handy of third-party utility types too. Here are the t...</description><pubDate>Tue, 08 Apr 2025 13:10:50 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Manually creating TypeScript types is time-consuming, tedious, and...</title><link>https://coryhouse.dev/2025/04/08/tweet-1909651518481170521/</link><guid isPermaLink="true">https://coryhouse.dev/2025/04/08/tweet-1909651518481170521/</guid><description>Problem: Manually creating TypeScript types is time-consuming, tedious, and error prone. Solution: Generate the types if you can. Here are 4 exampl...</description><pubDate>Tue, 08 Apr 2025 16:56:16 GMT</pubDate><category>Tweets</category></item><item><title>One of my favorite tools during a code audit is jscpd</title><link>https://coryhouse.dev/2025/04/09/tweet-1910029435656429859/</link><guid isPermaLink="true">https://coryhouse.dev/2025/04/09/tweet-1910029435656429859/</guid><description>One of my favorite tools during a code audit is jscpd. It detects copy/pasted code. In a codebase I’m currently reviewing, nearly half of the JS is...</description><pubDate>Wed, 09 Apr 2025 17:57:58 GMT</pubDate><category>Tweets</category></item><item><title>So Dan Abramov&apos;s new *giant* blog post (think small book) is worth the read</title><link>https://coryhouse.dev/2025/04/09/tweet-1910086473874895113/</link><guid isPermaLink="true">https://coryhouse.dev/2025/04/09/tweet-1910086473874895113/</guid><description>So Dan Abramov&apos;s new *giant* blog post (think small book) is worth the read. I admire how Dan encourages thinking in first principles. If you haven...</description><pubDate>Wed, 09 Apr 2025 21:44:37 GMT</pubDate><category>Tweets</category></item><item><title>Zod is TypeScript&apos;s most popular runtime validation library</title><link>https://coryhouse.dev/2025/04/10/tweet-1910356057207050750/</link><guid isPermaLink="true">https://coryhouse.dev/2025/04/10/tweet-1910356057207050750/</guid><description>Zod is TypeScript&apos;s most popular runtime validation library. But, I just tried ArkType, and it&apos;s compelling. Here&apos;s why: - Simpler, TS-like API - 1...</description><pubDate>Thu, 10 Apr 2025 15:35:51 GMT</pubDate><category>Tweets</category></item><item><title>There are many JS runtimes - Node, Deno, Bun, etc</title><link>https://coryhouse.dev/2025/04/13/tweet-1911398731980628377/</link><guid isPermaLink="true">https://coryhouse.dev/2025/04/13/tweet-1911398731980628377/</guid><description>There are many JS runtimes - Node, Deno, Bun, etc. Just learned about a new one: Bare. Bare is unique: - Light (so can run on mobile) - No server r...</description><pubDate>Sun, 13 Apr 2025 12:39:04 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m reviewing a TypeScript codebase that&apos;s filled with type assertions like this</title><link>https://coryhouse.dev/2025/04/17/tweet-1912921425536569681/</link><guid isPermaLink="true">https://coryhouse.dev/2025/04/17/tweet-1912921425536569681/</guid><description>I&apos;m reviewing a TypeScript codebase that&apos;s filled with type assertions like this. return fieldErrors as { [key: string]: { errors: string[] } } Typ...</description><pubDate>Thu, 17 Apr 2025 17:29:42 GMT</pubDate><category>Tweets</category></item><item><title>Claim: &quot;Those who can&apos;t do, teach&quot;</title><link>https://coryhouse.dev/2025/04/17/tweet-1912957720627748991/</link><guid isPermaLink="true">https://coryhouse.dev/2025/04/17/tweet-1912957720627748991/</guid><description>Claim: &quot;Those who can&apos;t do, teach&quot;. Reality: &quot;To go deeper, teach.&quot; For example, I&apos;ve worked successfully in TypeScript for years. But now that I&apos;m...</description><pubDate>Thu, 17 Apr 2025 19:53:56 GMT</pubDate><category>Tweets</category></item><item><title>I validate all my runtime inputs: -Cookies -Local storage -URL params -API...</title><link>https://coryhouse.dev/2025/04/18/tweet-1913228039401451730/</link><guid isPermaLink="true">https://coryhouse.dev/2025/04/18/tweet-1913228039401451730/</guid><description>I validate all my runtime inputs: -Cookies -Local storage -URL params -API responses -Form values -Environment variables I use Zod to validate runt...</description><pubDate>Fri, 18 Apr 2025 13:48:05 GMT</pubDate><category>Tweets</category></item><item><title>The fact that so many apps out there blindly trust runtime inputs is the...</title><link>https://coryhouse.dev/2025/04/18/tweet-1913230398068326669/</link><guid isPermaLink="true">https://coryhouse.dev/2025/04/18/tweet-1913230398068326669/</guid><description>The fact that so many apps out there blindly trust runtime inputs is the source of countless bugs and security vulnerabilities. NEVER trust the cli...</description><pubDate>Fri, 18 Apr 2025 13:57:27 GMT</pubDate><category>Tweets</category></item><item><title>Here&apos;s how I validate a URL param via Zod</title><link>https://coryhouse.dev/2025/04/19/tweet-1913580255157031417/</link><guid isPermaLink="true">https://coryhouse.dev/2025/04/19/tweet-1913580255157031417/</guid><description>Here&apos;s how I validate a URL param via Zod. I&apos;m sharing more details on how I use Zod including validating APIs, localStorage, etc in &quot;TypeScript: D...</description><pubDate>Sat, 19 Apr 2025 13:07:40 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript types can be intimidating to read</title><link>https://coryhouse.dev/2025/04/20/tweet-1914017224219672595/</link><guid isPermaLink="true">https://coryhouse.dev/2025/04/20/tweet-1914017224219672595/</guid><description>TypeScript types can be intimidating to read. My solution? Break it into pieces. This is a preview of my upcoming new course, &quot;TypeScript: Deep Div...</description><pubDate>Sun, 20 Apr 2025 18:04:01 GMT</pubDate><category>Tweets</category></item><item><title>Oooof</title><link>https://coryhouse.dev/2025/04/22/tweet-1914682178857795918/</link><guid isPermaLink="true">https://coryhouse.dev/2025/04/22/tweet-1914682178857795918/</guid><description>Oooof. This quote hits. “I think people get old when they stop talking about the future. If you want to find someone’s true age, listen to them. If...</description><pubDate>Tue, 22 Apr 2025 14:06:19 GMT</pubDate><category>Tweets</category></item><item><title>Just converted a small test suite from Vitest to bun:test</title><link>https://coryhouse.dev/2025/04/22/tweet-1914778507856765288/</link><guid isPermaLink="true">https://coryhouse.dev/2025/04/22/tweet-1914778507856765288/</guid><description>Just converted a small test suite from Vitest to bun:test. Bun is about 2x faster. Vitest: 575ms Bun: 273ms And since bun:test syntax is similar to...</description><pubDate>Tue, 22 Apr 2025 20:29:05 GMT</pubDate><category>Tweets</category></item><item><title>How to write bad software: Standardize nothing</title><link>https://coryhouse.dev/2025/04/28/tweet-1916897024131072408/</link><guid isPermaLink="true">https://coryhouse.dev/2025/04/28/tweet-1916897024131072408/</guid><description>How to write bad software: Standardize nothing. Let each developer pick their own conventions, patterns, languages, and libraries. Ignore quality....</description><pubDate>Mon, 28 Apr 2025 16:47:19 GMT</pubDate><category>Tweets</category></item><item><title>Vibe coding is the modern version of copy/pasting code you don’t understand...</title><link>https://coryhouse.dev/2025/05/08/tweet-1920481908246388961/</link><guid isPermaLink="true">https://coryhouse.dev/2025/05/08/tweet-1920481908246388961/</guid><description>Vibe coding is the modern version of copy/pasting code you don’t understand from Stack Overflow. It seems fine at first, but at some point you need...</description><pubDate>Thu, 08 May 2025 14:12:22 GMT</pubDate><category>Tweets</category></item><item><title>Vibe coding is a leaky abstraction</title><link>https://coryhouse.dev/2025/05/08/tweet-1920499885767303176/</link><guid isPermaLink="true">https://coryhouse.dev/2025/05/08/tweet-1920499885767303176/</guid><description>Vibe coding is a leaky abstraction. A leaky abstraction means I often have to understand the underlying implementation (in other words, the code) t...</description><pubDate>Thu, 08 May 2025 15:23:48 GMT</pubDate><category>Tweets</category></item><item><title>Just realized Vitest now has built in support for testing TypeScript types</title><link>https://coryhouse.dev/2025/05/13/tweet-1922324692641194037/</link><guid isPermaLink="true">https://coryhouse.dev/2025/05/13/tweet-1922324692641194037/</guid><description>Just realized Vitest now has built in support for testing TypeScript types. How? It includes expect-type now by default. Handy. Example:</description><pubDate>Tue, 13 May 2025 16:14:56 GMT</pubDate><category>Tweets</category></item><item><title>Four related web app problems: 1</title><link>https://coryhouse.dev/2025/05/14/tweet-1922664639726231691/</link><guid isPermaLink="true">https://coryhouse.dev/2025/05/14/tweet-1922664639726231691/</guid><description>Four related web app problems: 1. If I’m temporarily offline, I still want the app to be fast and reliable. 2. If my work conflicts with someone el...</description><pubDate>Wed, 14 May 2025 14:45:46 GMT</pubDate><category>Tweets</category></item><item><title>Local-first web apps already have a big ecosystem</title><link>https://coryhouse.dev/2025/05/16/tweet-1923373896260050976/</link><guid isPermaLink="true">https://coryhouse.dev/2025/05/16/tweet-1923373896260050976/</guid><description>Local-first web apps already have a big ecosystem. Here’s what I’ve found so far. What else should I try? CRDT libraries: - Automerge - Purely clie...</description><pubDate>Fri, 16 May 2025 13:44:06 GMT</pubDate><category>Tweets</category></item><item><title>Woah, @tan_stack just added Tanstack DB, a sync engine that works with...</title><link>https://coryhouse.dev/2025/05/16/tweet-1923442658816499900/</link><guid isPermaLink="true">https://coryhouse.dev/2025/05/16/tweet-1923442658816499900/</guid><description>Woah, @tan_stack just added Tanstack DB, a sync engine that works with Tanstack query. It adds: -Live queries -Fine grained reactivity (to minimize...</description><pubDate>Fri, 16 May 2025 18:17:20 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You have complex logic for narrowing a TypeScript type that you&apos;d...</title><link>https://coryhouse.dev/2025/05/24/tweet-1926329536792203740/</link><guid isPermaLink="true">https://coryhouse.dev/2025/05/24/tweet-1926329536792203740/</guid><description>Problem: You have complex logic for narrowing a TypeScript type that you&apos;d like to reuse in a few spots. Solution: Consider an assertion function.</description><pubDate>Sat, 24 May 2025 17:28:45 GMT</pubDate><category>Tweets</category></item><item><title>For me, LLMs work quite well as “glorified autocomplete”</title><link>https://coryhouse.dev/2025/05/27/tweet-1927359305797267762/</link><guid isPermaLink="true">https://coryhouse.dev/2025/05/27/tweet-1927359305797267762/</guid><description>For me, LLMs work quite well as “glorified autocomplete”. But so far I’m skeptical about using them for agentic workflows - feels like a house of c...</description><pubDate>Tue, 27 May 2025 13:40:41 GMT</pubDate><category>Tweets</category></item><item><title>Problem: I want to ensure my switch statement handles all potential cases</title><link>https://coryhouse.dev/2025/05/28/tweet-1927688347754881245/</link><guid isPermaLink="true">https://coryhouse.dev/2025/05/28/tweet-1927688347754881245/</guid><description>Problem: I want to ensure my switch statement handles all potential cases. Solution: Use TypeScript&apos;s never type. Here&apos;s how:</description><pubDate>Wed, 28 May 2025 11:28:11 GMT</pubDate><category>Tweets</category></item><item><title>The rumors were true - Remix is coming back and it’s not using React</title><link>https://coryhouse.dev/2025/05/28/tweet-1927773999020314905/</link><guid isPermaLink="true">https://coryhouse.dev/2025/05/28/tweet-1927773999020314905/</guid><description>The rumors were true - Remix is coming back and it’s not using React. Instead, it’s a fork of Preact! The new Remix is aiming for lightweight, modu...</description><pubDate>Wed, 28 May 2025 17:08:32 GMT</pubDate><category>Tweets</category></item><item><title>My favorite things about Europe vs the USA: 1</title><link>https://coryhouse.dev/2025/05/29/tweet-1927972539772350485/</link><guid isPermaLink="true">https://coryhouse.dev/2025/05/29/tweet-1927972539772350485/</guid><description>My favorite things about Europe vs the USA: 1. Better transportation infrastructure - Trains, trams, buses, rental scooters, bikes, wide sidewalks,...</description><pubDate>Thu, 29 May 2025 06:17:28 GMT</pubDate><category>Tweets</category></item><item><title>Seeing these two side-by-side in my timeline really sums up the current...</title><link>https://coryhouse.dev/2025/05/29/tweet-1928066649157943632/</link><guid isPermaLink="true">https://coryhouse.dev/2025/05/29/tweet-1928066649157943632/</guid><description>Seeing these two side-by-side in my timeline really sums up the current schism on the upcoming impact of AI.</description><pubDate>Thu, 29 May 2025 12:31:25 GMT</pubDate><category>Tweets</category></item><item><title>TypeScript syntax is often inspired by JavaScript</title><link>https://coryhouse.dev/2025/06/02/tweet-1929576451017228674/</link><guid isPermaLink="true">https://coryhouse.dev/2025/06/02/tweet-1929576451017228674/</guid><description>TypeScript syntax is often inspired by JavaScript. In some cases, TS even uses the exact same syntax as JS for a different purpose. The difference?...</description><pubDate>Mon, 02 Jun 2025 16:30:50 GMT</pubDate><category>Tweets</category></item><item><title>In a React app, declaring an ErrorBoundary at the root is common, but rarely...</title><link>https://coryhouse.dev/2025/06/03/tweet-1929942586132746426/</link><guid isPermaLink="true">https://coryhouse.dev/2025/06/03/tweet-1929942586132746426/</guid><description>In a React app, declaring an ErrorBoundary at the root is common, but rarely sufficient. I also wrap routes and page sections in an ErrorBoundary t...</description><pubDate>Tue, 03 Jun 2025 16:45:43 GMT</pubDate><category>Tweets</category></item><item><title>I love Tanstack Router&apos;s type safe search params</title><link>https://coryhouse.dev/2025/06/04/tweet-1930310848234295610/</link><guid isPermaLink="true">https://coryhouse.dev/2025/06/04/tweet-1930310848234295610/</guid><description>I love Tanstack Router&apos;s type safe search params. ✅Autocomplete support ✅Zod schema validates params ✅Param validation logic is centralized with th...</description><pubDate>Wed, 04 Jun 2025 17:09:04 GMT</pubDate><category>Tweets</category></item><item><title>This post by Dan Abramov on &quot;Progressive JSON&quot; helped me understand how...</title><link>https://coryhouse.dev/2025/06/04/tweet-1930338546612875401/</link><guid isPermaLink="true">https://coryhouse.dev/2025/06/04/tweet-1930338546612875401/</guid><description>This post by Dan Abramov on &quot;Progressive JSON&quot; helped me understand how RSC&apos;s streaming works, and its over-the-wire format. It&apos;s like the differen...</description><pubDate>Wed, 04 Jun 2025 18:59:08 GMT</pubDate><category>Tweets</category></item><item><title>I bought my M1 Max Macbook Pro in October 2021</title><link>https://coryhouse.dev/2025/06/08/tweet-1931775957871780223/</link><guid isPermaLink="true">https://coryhouse.dev/2025/06/08/tweet-1931775957871780223/</guid><description>I bought my M1 Max Macbook Pro in October 2021. After over 3.5 years of HEAVY use, the battery finally reports &quot;Service recommended&quot;. Max capacity...</description><pubDate>Sun, 08 Jun 2025 18:10:53 GMT</pubDate><category>Tweets</category></item><item><title>&quot;Today&apos;s LLMs are like a junior developer&quot;</title><link>https://coryhouse.dev/2025/06/08/tweet-1931820798043426995/</link><guid isPermaLink="true">https://coryhouse.dev/2025/06/08/tweet-1931820798043426995/</guid><description>&quot;Today&apos;s LLMs are like a junior developer&quot;. Great, that means I can hire a junior dev to help me for just $20/month! The productivity gap between d...</description><pubDate>Sun, 08 Jun 2025 21:09:04 GMT</pubDate><category>Tweets</category></item><item><title>This can’t be real The sign of a failing organization is when everyone knows...</title><link>https://coryhouse.dev/2025/06/10/tweet-1932481458733768949/</link><guid isPermaLink="true">https://coryhouse.dev/2025/06/10/tweet-1932481458733768949/</guid><description>This can’t be real The sign of a failing organization is when everyone knows it’s wrong but it ships anyway.</description><pubDate>Tue, 10 Jun 2025 16:54:18 GMT</pubDate><category>Tweets</category></item><item><title>Problem: ESLint is slow on large projects with complex rules</title><link>https://coryhouse.dev/2025/06/10/tweet-1932576467700899945/</link><guid isPermaLink="true">https://coryhouse.dev/2025/06/10/tweet-1932576467700899945/</guid><description>Problem: ESLint is slow on large projects with complex rules. Solution: Use a fast Rust-based alternative. Two options: 1. Biome (which also replac...</description><pubDate>Tue, 10 Jun 2025 23:11:50 GMT</pubDate><category>Tweets</category></item><item><title>The weird thing about 2025</title><link>https://coryhouse.dev/2025/06/10/tweet-1932585234836394348/</link><guid isPermaLink="true">https://coryhouse.dev/2025/06/10/tweet-1932585234836394348/</guid><description>The weird thing about 2025? Memorizing is rarely useful now. Sure, Google and Stackoverflow made memorization less useful many years ago. But AI ma...</description><pubDate>Tue, 10 Jun 2025 23:46:40 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You want to run a &quot;real&quot; DB in the browser</title><link>https://coryhouse.dev/2025/06/11/tweet-1932919379013804520/</link><guid isPermaLink="true">https://coryhouse.dev/2025/06/11/tweet-1932919379013804520/</guid><description>Problem: You want to run a &quot;real&quot; DB in the browser. Two solutions: 1. Run SQLite in the browser via sql.js 2. Run Postgres in the browser via PGLi...</description><pubDate>Wed, 11 Jun 2025 21:54:26 GMT</pubDate><category>Tweets</category></item><item><title>Confession: The last year has been hard for me</title><link>https://coryhouse.dev/2025/06/12/tweet-1933190703779397990/</link><guid isPermaLink="true">https://coryhouse.dev/2025/06/12/tweet-1933190703779397990/</guid><description>Confession: The last year has been hard for me. AI has me feeling uneasy about my software development career. Part of me thinks &quot;Why bother if an...</description><pubDate>Thu, 12 Jun 2025 15:52:35 GMT</pubDate><category>Tweets</category></item><item><title>The local-first / sync engine ecosystem is far bigger than I realized</title><link>https://coryhouse.dev/2025/06/14/tweet-1933860203537047589/</link><guid isPermaLink="true">https://coryhouse.dev/2025/06/14/tweet-1933860203537047589/</guid><description>The local-first / sync engine ecosystem is far bigger than I realized. There are DBs / BAAS providers that provide real-time sync like Supabase, Fi...</description><pubDate>Sat, 14 Jun 2025 12:12:56 GMT</pubDate><category>Tweets</category></item><item><title>Prediction: AI will replace most web app UIs</title><link>https://coryhouse.dev/2025/06/14/tweet-1933942757401169940/</link><guid isPermaLink="true">https://coryhouse.dev/2025/06/14/tweet-1933942757401169940/</guid><description>Prediction: AI will replace most web app UIs. Why? Because nobody wants to use your UI. They just want results. AI provides results without requiri...</description><pubDate>Sat, 14 Jun 2025 17:40:58 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Choosing technologies is hard</title><link>https://coryhouse.dev/2025/06/17/tweet-1935059135730491868/</link><guid isPermaLink="true">https://coryhouse.dev/2025/06/17/tweet-1935059135730491868/</guid><description>Problem: Choosing technologies is hard. Solution: Be honest about tradeoffs. Tell me when it&apos;s a good fit, and when it&apos;s not. Example: @livestorede...</description><pubDate>Tue, 17 Jun 2025 19:37:04 GMT</pubDate><category>Tweets</category></item><item><title>Trend I&apos;m seeing: AI app generators are a sales funnel</title><link>https://coryhouse.dev/2025/06/17/tweet-1935093049534615788/</link><guid isPermaLink="true">https://coryhouse.dev/2025/06/17/tweet-1935093049534615788/</guid><description>Trend I&apos;m seeing: AI app generators are a sales funnel. -Chef uses Convex. -V0 is optimized for Vercel. -Lovable uses Supabase and Clerk. -Firebase...</description><pubDate>Tue, 17 Jun 2025 21:51:49 GMT</pubDate><category>Tweets</category></item><item><title>Programming isn&apos;t easy</title><link>https://coryhouse.dev/2025/06/18/tweet-1935405716711280683/</link><guid isPermaLink="true">https://coryhouse.dev/2025/06/18/tweet-1935405716711280683/</guid><description>Programming isn&apos;t easy. But, it&apos;s getting easier. Innovations that made shipping software easier: 1890: Punch cards 1945: High-level languages 1958...</description><pubDate>Wed, 18 Jun 2025 18:34:15 GMT</pubDate><category>Tweets</category></item><item><title>5 types of React state, and when I use each: 1</title><link>https://coryhouse.dev/2025/06/24/tweet-1937492248284823873/</link><guid isPermaLink="true">https://coryhouse.dev/2025/06/24/tweet-1937492248284823873/</guid><description>5 types of React state, and when I use each: 1. useState - For simple component-local state 2. useReducer - For complex component-local state 3. Zu...</description><pubDate>Tue, 24 Jun 2025 12:45:23 GMT</pubDate><category>Tweets</category></item><item><title>What are people using instead of Storybook these days</title><link>https://coryhouse.dev/2025/06/24/tweet-1937500872491049004/</link><guid isPermaLink="true">https://coryhouse.dev/2025/06/24/tweet-1937500872491049004/</guid><description>What are people using instead of Storybook these days? One simple alternative I enjoy: Create a page in the app that shows reusable components. Thi...</description><pubDate>Tue, 24 Jun 2025 13:19:39 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;ve never enjoyed writing CSS, but two innovations solved that: 1</title><link>https://coryhouse.dev/2025/06/27/tweet-1938405903499182364/</link><guid isPermaLink="true">https://coryhouse.dev/2025/06/27/tweet-1938405903499182364/</guid><description>I&apos;ve never enjoyed writing CSS, but two innovations solved that: 1. Tailwind. No more wasting time coming up with class names. No more worries abou...</description><pubDate>Fri, 27 Jun 2025 01:15:55 GMT</pubDate><category>Tweets</category></item><item><title>Shots fired</title><link>https://coryhouse.dev/2025/06/27/tweet-1938715585631645703/</link><guid isPermaLink="true">https://coryhouse.dev/2025/06/27/tweet-1938715585631645703/</guid><description>Shots fired. I&apos;ve been a fan of Tanstack Query for years, but this post on caching by Convex has me thinking. &quot;Periodic invalidation and stale-whil...</description><pubDate>Fri, 27 Jun 2025 21:46:29 GMT</pubDate><category>Tweets</category></item><item><title>One of my favorite uses for rest/spread is creating a new object that omits...</title><link>https://coryhouse.dev/2025/06/29/tweet-1939354116192657472/</link><guid isPermaLink="true">https://coryhouse.dev/2025/06/29/tweet-1939354116192657472/</guid><description>One of my favorite uses for rest/spread is creating a new object that omits one or more properties. In this example, I created a vehicle object wit...</description><pubDate>Sun, 29 Jun 2025 16:03:47 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;ve spent the last few weeks experimenting with different local-first /...</title><link>https://coryhouse.dev/2025/07/04/tweet-1941169860483948686/</link><guid isPermaLink="true">https://coryhouse.dev/2025/07/04/tweet-1941169860483948686/</guid><description>I&apos;ve spent the last few weeks experimenting with different local-first / sync engine solutions. So far I&apos;ve built the same app using: @convex_dev @...</description><pubDate>Fri, 04 Jul 2025 16:18:54 GMT</pubDate><category>Tweets</category></item><item><title>I wish more library/framework docs had a section for “Stuff we don’t do well”</title><link>https://coryhouse.dev/2025/07/04/tweet-1941231875944742952/</link><guid isPermaLink="true">https://coryhouse.dev/2025/07/04/tweet-1941231875944742952/</guid><description>I wish more library/framework docs had a section for “Stuff we don’t do well”. Example: “Tailwind works best with a component abstraction. Without...</description><pubDate>Fri, 04 Jul 2025 20:25:20 GMT</pubDate><category>Tweets</category></item><item><title>After 25 years of coding I&apos;ve realized there is no end to learning</title><link>https://coryhouse.dev/2025/07/05/tweet-1941299234290172120/</link><guid isPermaLink="true">https://coryhouse.dev/2025/07/05/tweet-1941299234290172120/</guid><description>After 25 years of coding I&apos;ve realized there is no end to learning. So go enjoy your 4th of July weekend 🇺🇸 Don&apos;t worry, work will be waiting for...</description><pubDate>Sat, 05 Jul 2025 00:52:59 GMT</pubDate><category>Tweets</category></item><item><title>Two related, but separate ideas: 1</title><link>https://coryhouse.dev/2025/07/06/tweet-1941892951140913519/</link><guid isPermaLink="true">https://coryhouse.dev/2025/07/06/tweet-1941892951140913519/</guid><description>Two related, but separate ideas: 1. Local-first: An app that stores data locally, and works offline. 2. Sync-engine: Automatically syncing data bet...</description><pubDate>Sun, 06 Jul 2025 16:12:12 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;ve found arguing is more productive when I do 3 things: 1</title><link>https://coryhouse.dev/2025/07/06/tweet-1941949070190264358/</link><guid isPermaLink="true">https://coryhouse.dev/2025/07/06/tweet-1941949070190264358/</guid><description>I&apos;ve found arguing is more productive when I do 3 things: 1. Be open to changing my mind. 2. Be curious. Why do we disagree? How do our experiences...</description><pubDate>Sun, 06 Jul 2025 19:55:12 GMT</pubDate><category>Tweets</category></item><item><title>&quot;Developers don&apos;t write automated tests</title><link>https://coryhouse.dev/2025/07/07/tweet-1942271087016042925/</link><guid isPermaLink="true">https://coryhouse.dev/2025/07/07/tweet-1942271087016042925/</guid><description>&quot;Developers don&apos;t write automated tests. That&apos;s QA&apos;s job&quot;. I just had a consulting call with a dev team in this situation. I see this often, and it...</description><pubDate>Mon, 07 Jul 2025 17:14:47 GMT</pubDate><category>Tweets</category></item><item><title>&quot;Should my web app use a sync engine?&quot; If your web app would benefit from...</title><link>https://coryhouse.dev/2025/07/11/tweet-1943737717222691193/</link><guid isPermaLink="true">https://coryhouse.dev/2025/07/11/tweet-1943737717222691193/</guid><description>&quot;Should my web app use a sync engine?&quot; If your web app would benefit from caching, live queries, retries, instantaneous UX, offline support, stream...</description><pubDate>Fri, 11 Jul 2025 18:22:39 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m bullish on sync engines, but I admit there&apos;s a lot of downsides to...</title><link>https://coryhouse.dev/2025/07/13/tweet-1944377416442425741/</link><guid isPermaLink="true">https://coryhouse.dev/2025/07/13/tweet-1944377416442425741/</guid><description>I&apos;m bullish on sync engines, but I admit there&apos;s a lot of downsides to consider too. Here&apos;s 9. 1. Distributed state is a complex mental model 2. Ha...</description><pubDate>Sun, 13 Jul 2025 12:44:35 GMT</pubDate><category>Tweets</category></item><item><title>When learning a new tech, I like to open PRs to improve the docs</title><link>https://coryhouse.dev/2025/07/17/tweet-1945958426778931454/</link><guid isPermaLink="true">https://coryhouse.dev/2025/07/17/tweet-1945958426778931454/</guid><description>When learning a new tech, I like to open PRs to improve the docs. It&apos;s easy for a maintainer to forget what it&apos;s like for a beginner to try their p...</description><pubDate>Thu, 17 Jul 2025 21:26:57 GMT</pubDate><category>Tweets</category></item><item><title>My preferred React stack for 2025 Package manager: Bun Starter: Vite...</title><link>https://coryhouse.dev/2025/07/23/tweet-1948105214017380774/</link><guid isPermaLink="true">https://coryhouse.dev/2025/07/23/tweet-1948105214017380774/</guid><description>My preferred React stack for 2025 Package manager: Bun Starter: Vite Language: TypeScript Router: Tanstack Router Remote state: Sync engine like Co...</description><pubDate>Wed, 23 Jul 2025 19:37:31 GMT</pubDate><category>Tweets</category></item><item><title>AI is supposed to make us faster coders, right</title><link>https://coryhouse.dev/2025/07/24/tweet-1948386512430678050/</link><guid isPermaLink="true">https://coryhouse.dev/2025/07/24/tweet-1948386512430678050/</guid><description>AI is supposed to make us faster coders, right? So, 3 questions: 1. Are your estimates lower now? 2. Has your team’ velocity increased? 3. Does you...</description><pubDate>Thu, 24 Jul 2025 14:15:18 GMT</pubDate><category>Tweets</category></item><item><title>Just heard of a team where non-developers (such as designers and product...</title><link>https://coryhouse.dev/2025/07/24/tweet-1948404290176913437/</link><guid isPermaLink="true">https://coryhouse.dev/2025/07/24/tweet-1948404290176913437/</guid><description>Just heard of a team where non-developers (such as designers and product owners) are contributing code using AI. Like any other code, the dev team...</description><pubDate>Thu, 24 Jul 2025 15:25:57 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m curious - Who&apos;s doing development with just two environments</title><link>https://coryhouse.dev/2025/08/02/tweet-1951729394285957156/</link><guid isPermaLink="true">https://coryhouse.dev/2025/08/02/tweet-1951729394285957156/</guid><description>I&apos;m curious - Who&apos;s doing development with just two environments? (dev and prod) Would love to hear your experience and approach. If you have more...</description><pubDate>Sat, 02 Aug 2025 19:38:43 GMT</pubDate><category>Tweets</category></item><item><title>Theory: The fewer long-lived environments the better</title><link>https://coryhouse.dev/2025/08/03/tweet-1951976630605193358/</link><guid isPermaLink="true">https://coryhouse.dev/2025/08/03/tweet-1951976630605193358/</guid><description>Theory: The fewer long-lived environments the better. I prefer having only one long-lived environment - Production. Here&apos;s my ideal 3 step workflow...</description><pubDate>Sun, 03 Aug 2025 12:01:09 GMT</pubDate><category>Tweets</category></item><item><title>Wild story of working with Claude I just heard from a friend: I was coding...</title><link>https://coryhouse.dev/2025/08/08/tweet-1953906776220291511/</link><guid isPermaLink="true">https://coryhouse.dev/2025/08/08/tweet-1953906776220291511/</guid><description>Wild story of working with Claude I just heard from a friend: I was coding late at night and angrily prompting Claude. Claude replied &quot;It&apos;s late. P...</description><pubDate>Fri, 08 Aug 2025 19:50:51 GMT</pubDate><category>Tweets</category></item><item><title>How I’d pick a router in React in 2025: 1</title><link>https://coryhouse.dev/2025/08/11/tweet-1954954315543744872/</link><guid isPermaLink="true">https://coryhouse.dev/2025/08/11/tweet-1954954315543744872/</guid><description>How I’d pick a router in React in 2025: 1. Using a framework with a built-in router like Next? Use the built-in router, but add nuqs for type safe...</description><pubDate>Mon, 11 Aug 2025 17:13:24 GMT</pubDate><category>Tweets</category></item><item><title>I think sync engines are the future</title><link>https://coryhouse.dev/2025/08/14/tweet-1956035949621580160/</link><guid isPermaLink="true">https://coryhouse.dev/2025/08/14/tweet-1956035949621580160/</guid><description>I think sync engines are the future. These slides show why. https://www.dropbox.com/scl/fi/ofac1voz9hwj3mgrzfd6o/Local-first-web-apps.pptx?rlkey=mz...</description><pubDate>Thu, 14 Aug 2025 16:51:26 GMT</pubDate><category>Tweets</category></item><item><title>I’m eager to see how LLM usage changes when the venture capital money dries up</title><link>https://coryhouse.dev/2025/08/15/tweet-1956468804072194452/</link><guid isPermaLink="true">https://coryhouse.dev/2025/08/15/tweet-1956468804072194452/</guid><description>I’m eager to see how LLM usage changes when the venture capital money dries up. People think it’s expensive today, but it’s actually artificially c...</description><pubDate>Fri, 15 Aug 2025 21:31:26 GMT</pubDate><category>Tweets</category></item><item><title>If you give a junior dev a vague task, you’ll probably get bad results</title><link>https://coryhouse.dev/2025/08/18/tweet-1957441190439092480/</link><guid isPermaLink="true">https://coryhouse.dev/2025/08/18/tweet-1957441190439092480/</guid><description>If you give a junior dev a vague task, you’ll probably get bad results. Same story with an LLM. Vague, high-level prompts produce bad results. Be s...</description><pubDate>Mon, 18 Aug 2025 13:55:21 GMT</pubDate><category>Tweets</category></item><item><title>How I&apos;ve fetched in React over 10 years: 2014: Fetch in componentDidMount...</title><link>https://coryhouse.dev/2025/08/20/tweet-1958233442103025671/</link><guid isPermaLink="true">https://coryhouse.dev/2025/08/20/tweet-1958233442103025671/</guid><description>How I&apos;ve fetched in React over 10 years: 2014: Fetch in componentDidMount 2019: Fetch in useEffect 2020: Custom useFetch hook 2021: React query 202...</description><pubDate>Wed, 20 Aug 2025 18:23:29 GMT</pubDate><category>Tweets</category></item><item><title>Each time I open up an old JS project, I get dozens of breaking changes when...</title><link>https://coryhouse.dev/2025/08/21/tweet-1958646960313049589/</link><guid isPermaLink="true">https://coryhouse.dev/2025/08/21/tweet-1958646960313049589/</guid><description>Each time I open up an old JS project, I get dozens of breaking changes when I update npm packages. It&apos;s wonderful that all these open source proje...</description><pubDate>Thu, 21 Aug 2025 21:46:39 GMT</pubDate><category>Tweets</category></item><item><title>I enjoy having my own an app that’s just for experiments</title><link>https://coryhouse.dev/2025/08/22/tweet-1958879187034423378/</link><guid isPermaLink="true">https://coryhouse.dev/2025/08/22/tweet-1958879187034423378/</guid><description>I enjoy having my own an app that’s just for experiments. It’s a spot where I can try new tech, ideas, patterns, and libraries. I can toy with perf...</description><pubDate>Fri, 22 Aug 2025 13:09:27 GMT</pubDate><category>Tweets</category></item><item><title>So I&apos;m using Tanstack Router on another new project and I gotta say it again...</title><link>https://coryhouse.dev/2025/08/23/tweet-1959046511423094824/</link><guid isPermaLink="true">https://coryhouse.dev/2025/08/23/tweet-1959046511423094824/</guid><description>So I&apos;m using Tanstack Router on another new project and I gotta say it again - it&apos;s fantastic. Elegant API File or config based routing Superb type...</description><pubDate>Sat, 23 Aug 2025 00:14:20 GMT</pubDate><category>Tweets</category></item><item><title>Claude&apos;s init command is impressive</title><link>https://coryhouse.dev/2025/08/23/tweet-1959365391081238998/</link><guid isPermaLink="true">https://coryhouse.dev/2025/08/23/tweet-1959365391081238998/</guid><description>Claude&apos;s init command is impressive. It inspected my project and generated this markdown file for future reference. I only had to make one minor tw...</description><pubDate>Sat, 23 Aug 2025 21:21:27 GMT</pubDate><category>Tweets</category></item><item><title>Spending more time with Tanstack DB this week and it&apos;s finally clicking</title><link>https://coryhouse.dev/2025/08/27/tweet-1960708091462234411/</link><guid isPermaLink="true">https://coryhouse.dev/2025/08/27/tweet-1960708091462234411/</guid><description>Spending more time with Tanstack DB this week and it&apos;s finally clicking. Lot&apos;s of little &quot;ah ha&quot; moments. Here&apos;s an example. In typical React, I&apos;d:...</description><pubDate>Wed, 27 Aug 2025 14:16:51 GMT</pubDate><category>Tweets</category></item><item><title>&quot;Solid is better than React.&quot; Sure</title><link>https://coryhouse.dev/2025/08/27/tweet-1960725300586635280/</link><guid isPermaLink="true">https://coryhouse.dev/2025/08/27/tweet-1960725300586635280/</guid><description>&quot;Solid is better than React.&quot; Sure. But switching isn&apos;t worth it *for me*. I&apos;m an independent consultant, and I enjoy working with a variety of com...</description><pubDate>Wed, 27 Aug 2025 15:25:14 GMT</pubDate><category>Tweets</category></item><item><title>Many apps are basically Excel in the browser</title><link>https://coryhouse.dev/2025/08/28/tweet-1961055688932655340/</link><guid isPermaLink="true">https://coryhouse.dev/2025/08/28/tweet-1961055688932655340/</guid><description>Many apps are basically Excel in the browser. This is common when the app doesn&apos;t have a professional designer. Developers think &quot;I&apos;ll display all...</description><pubDate>Thu, 28 Aug 2025 13:18:05 GMT</pubDate><category>Tweets</category></item><item><title>Problem: LLMs may be trained on old docs and thus suggest outdated APIs</title><link>https://coryhouse.dev/2025/08/29/tweet-1961437567271809527/</link><guid isPermaLink="true">https://coryhouse.dev/2025/08/29/tweet-1961437567271809527/</guid><description>Problem: LLMs may be trained on old docs and thus suggest outdated APIs. Solution: context7. It provides the latest docs for tons of projects via M...</description><pubDate>Fri, 29 Aug 2025 14:35:32 GMT</pubDate><category>Tweets</category></item><item><title>A portion of the React community seems to enjoy hating on Vercel</title><link>https://coryhouse.dev/2025/08/29/tweet-1961530554236768343/</link><guid isPermaLink="true">https://coryhouse.dev/2025/08/29/tweet-1961530554236768343/</guid><description>A portion of the React community seems to enjoy hating on Vercel. That’s a shame. Sure, they’ve made mistakes. But they’ve also given us so much. -...</description><pubDate>Fri, 29 Aug 2025 20:45:02 GMT</pubDate><category>Tweets</category></item><item><title>How I routed in React over 10 years: 2014: React Router 2016: Next page...</title><link>https://coryhouse.dev/2025/08/30/tweet-1961783764352151902/</link><guid isPermaLink="true">https://coryhouse.dev/2025/08/30/tweet-1961783764352151902/</guid><description>How I routed in React over 10 years: 2014: React Router 2016: Next page router 2022: React Router with loaders 2023: Next app router 2024: Tanstack...</description><pubDate>Sat, 30 Aug 2025 13:31:12 GMT</pubDate><category>Tweets</category></item><item><title>How I handled React state over 10 years: 2014: Class state 2016: Redux 2018:...</title><link>https://coryhouse.dev/2025/09/01/tweet-1962514748798337213/</link><guid isPermaLink="true">https://coryhouse.dev/2025/09/01/tweet-1962514748798337213/</guid><description>How I handled React state over 10 years: 2014: Class state 2016: Redux 2018: useState, useReducer, useContext 2020: React query 2021: Zustand for g...</description><pubDate>Mon, 01 Sep 2025 13:55:52 GMT</pubDate><category>Tweets</category></item><item><title>A big difference between Tanstack Query and Tanstack DB: Tanstack Query is...</title><link>https://coryhouse.dev/2025/09/03/tweet-1963246858374918356/</link><guid isPermaLink="true">https://coryhouse.dev/2025/09/03/tweet-1963246858374918356/</guid><description>A big difference between Tanstack Query and Tanstack DB: Tanstack Query is pessimistic by default. It updates the UI *after* an async write complet...</description><pubDate>Wed, 03 Sep 2025 14:25:01 GMT</pubDate><category>Tweets</category></item><item><title>New version of VS Code chat automatically selects the appropriate LLM model...</title><link>https://coryhouse.dev/2025/09/12/tweet-1966429828808352233/</link><guid isPermaLink="true">https://coryhouse.dev/2025/09/12/tweet-1966429828808352233/</guid><description>New version of VS Code chat automatically selects the appropriate LLM model based on your request and rate limits. It automatically chooses between...</description><pubDate>Fri, 12 Sep 2025 09:13:00 GMT</pubDate><category>Tweets</category></item><item><title>General rule: Feature flags should default *off* for new features</title><link>https://coryhouse.dev/2025/09/20/tweet-1969416902238704109/</link><guid isPermaLink="true">https://coryhouse.dev/2025/09/20/tweet-1969416902238704109/</guid><description>General rule: Feature flags should default *off* for new features. This way, if we push to prod and the flag isn’t configured, the feature is safel...</description><pubDate>Sat, 20 Sep 2025 15:02:34 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Too many feature flags</title><link>https://coryhouse.dev/2025/09/21/tweet-1969763229510340687/</link><guid isPermaLink="true">https://coryhouse.dev/2025/09/21/tweet-1969763229510340687/</guid><description>Problem: Too many feature flags. We forget to clean them up when they’re no longer needed. Solution: Only allow creating flags for targeting a *sub...</description><pubDate>Sun, 21 Sep 2025 13:58:45 GMT</pubDate><category>Tweets</category></item><item><title>Just found awesome-copilot</title><link>https://coryhouse.dev/2025/09/23/tweet-1970317545975713987/</link><guid isPermaLink="true">https://coryhouse.dev/2025/09/23/tweet-1970317545975713987/</guid><description>Just found awesome-copilot. Handy repo of instructions, prompts, and configs for enhancing GitHub Copilot. Lots of interesting examples in here hav...</description><pubDate>Tue, 23 Sep 2025 02:41:24 GMT</pubDate><category>Tweets</category></item><item><title>Just implemented a feature using GitHub spec-kit</title><link>https://coryhouse.dev/2025/09/24/tweet-1970666878797258990/</link><guid isPermaLink="true">https://coryhouse.dev/2025/09/24/tweet-1970666878797258990/</guid><description>Just implemented a feature using GitHub spec-kit. It&apos;s an opinionated workflow for coding via an LLM. I used it with Claude Code, but it works with...</description><pubDate>Wed, 24 Sep 2025 01:49:31 GMT</pubDate><category>Tweets</category></item><item><title>My 6-step approach to learning: 1</title><link>https://coryhouse.dev/2025/09/25/tweet-1971209813645459691/</link><guid isPermaLink="true">https://coryhouse.dev/2025/09/25/tweet-1971209813645459691/</guid><description>My 6-step approach to learning: 1. Read the docs. 2. Build an example. 3. Iterate as I make mistakes. 4. Experiment with edge cases and approaches....</description><pubDate>Thu, 25 Sep 2025 13:46:57 GMT</pubDate><category>Tweets</category></item><item><title>I’m a fan of Tanstack and excited for Tanstack Start</title><link>https://coryhouse.dev/2025/09/25/tweet-1971268845294977388/</link><guid isPermaLink="true">https://coryhouse.dev/2025/09/25/tweet-1971268845294977388/</guid><description>I’m a fan of Tanstack and excited for Tanstack Start. I’m also a fan of Vercel and admire their continual innovation. @leerob replied courteously f...</description><pubDate>Thu, 25 Sep 2025 17:41:31 GMT</pubDate><category>Tweets</category></item><item><title>Anyone using a Macbook Air as their dev machine</title><link>https://coryhouse.dev/2025/09/26/tweet-1971391995479458209/</link><guid isPermaLink="true">https://coryhouse.dev/2025/09/26/tweet-1971391995479458209/</guid><description>Anyone using a Macbook Air as their dev machine? I currently have a 16&quot; M1 Max Macbook Pro with 32 GB of RAM, but I&apos;m considering trying a 15&quot; M4 A...</description><pubDate>Fri, 26 Sep 2025 01:50:53 GMT</pubDate><category>Tweets</category></item><item><title>Problem: I want to learn while coding in a new tech</title><link>https://coryhouse.dev/2025/09/26/tweet-1971612026742112543/</link><guid isPermaLink="true">https://coryhouse.dev/2025/09/26/tweet-1971612026742112543/</guid><description>Problem: I want to learn while coding in a new tech. Solution: Set Claude Code&apos;s output style to &quot;Learning&quot; With this enabled, Claude explains its...</description><pubDate>Fri, 26 Sep 2025 16:25:12 GMT</pubDate><category>Tweets</category></item><item><title>Imagine your team only had two environments: 1</title><link>https://coryhouse.dev/2025/09/26/tweet-1971726079292477498/</link><guid isPermaLink="true">https://coryhouse.dev/2025/09/26/tweet-1971726079292477498/</guid><description>Imagine your team only had two environments: 1. Your machine (where you code and test) 2. Production Could you successfully ship software this way?</description><pubDate>Fri, 26 Sep 2025 23:58:24 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Using coding with agents, it&apos;s annoying to constantly check back to...</title><link>https://coryhouse.dev/2025/09/28/tweet-1972303610483749050/</link><guid isPermaLink="true">https://coryhouse.dev/2025/09/28/tweet-1972303610483749050/</guid><description>Problem: Using coding with agents, it&apos;s annoying to constantly check back to see if it&apos;s done. Solution: Configure a hook to notify you when it&apos;s d...</description><pubDate>Sun, 28 Sep 2025 14:13:19 GMT</pubDate><category>Tweets</category></item><item><title>In the last week both Cursor and Copilot announced a new CLI</title><link>https://coryhouse.dev/2025/09/28/tweet-1972366117843997115/</link><guid isPermaLink="true">https://coryhouse.dev/2025/09/28/tweet-1972366117843997115/</guid><description>In the last week both Cursor and Copilot announced a new CLI. The number of CLI coding assistants is growing fast: Claude Code Copilot CLI Cursor C...</description><pubDate>Sun, 28 Sep 2025 18:21:41 GMT</pubDate><category>Tweets</category></item><item><title>&quot;Because I said so.&quot; Early in my career, I asked my team lead why we had to...</title><link>https://coryhouse.dev/2025/09/30/tweet-1973043079587213778/</link><guid isPermaLink="true">https://coryhouse.dev/2025/09/30/tweet-1973043079587213778/</guid><description>&quot;Because I said so.&quot; Early in my career, I asked my team lead why we had to do a process that seemed unnecessary. His gruff reply? &quot;Because I said...</description><pubDate>Tue, 30 Sep 2025 15:11:42 GMT</pubDate><category>Tweets</category></item><item><title>&quot;Test in prod”</title><link>https://coryhouse.dev/2025/10/02/tweet-1973736971676877238/</link><guid isPermaLink="true">https://coryhouse.dev/2025/10/02/tweet-1973736971676877238/</guid><description>&quot;Test in prod”. Sounds risky. But it need not be. It doesn’t mean test *only* in prod. It means test *also* in prod. Testing in prod is the only wa...</description><pubDate>Thu, 02 Oct 2025 13:08:58 GMT</pubDate><category>Tweets</category></item><item><title>&gt; In sprint planning &gt; Team has 19 story points in the sprint and a...</title><link>https://coryhouse.dev/2025/10/03/tweet-1974173839358665162/</link><guid isPermaLink="true">https://coryhouse.dev/2025/10/03/tweet-1974173839358665162/</guid><description>&gt; In sprint planning &gt; Team has 19 story points in the sprint and a “capacity” of 20. &gt; Scrum master searches the backlog for a 1-point ti...</description><pubDate>Fri, 03 Oct 2025 18:04:56 GMT</pubDate><category>Tweets</category></item><item><title>People often separate React component logic via a hook</title><link>https://coryhouse.dev/2025/10/04/tweet-1974511173182857340/</link><guid isPermaLink="true">https://coryhouse.dev/2025/10/04/tweet-1974511173182857340/</guid><description>People often separate React component logic via a hook. But one hook with all the component&apos;s logic isn&apos;t ideal. So, avoid this: Modal.tsx useModal...</description><pubDate>Sat, 04 Oct 2025 16:25:22 GMT</pubDate><category>Tweets</category></item><item><title>In TypeScript, I don&apos;t use screaming case for consts - it&apos;s needless because...</title><link>https://coryhouse.dev/2025/10/04/tweet-1974555794877411713/</link><guid isPermaLink="true">https://coryhouse.dev/2025/10/04/tweet-1974555794877411713/</guid><description>In TypeScript, I don&apos;t use screaming case for consts - it&apos;s needless because TS enforces the const via &quot;as const&quot;. I find camelCase easier to read...</description><pubDate>Sat, 04 Oct 2025 19:22:41 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m watching the Remix Jam stream and this little moment is interesting</title><link>https://coryhouse.dev/2025/10/12/tweet-1977507871655936246/</link><guid isPermaLink="true">https://coryhouse.dev/2025/10/12/tweet-1977507871655936246/</guid><description>I&apos;m watching the Remix Jam stream and this little moment is interesting. Since DOM events bubble, you can declare event handlers in parent elements...</description><pubDate>Sun, 12 Oct 2025 22:53:11 GMT</pubDate><category>Tweets</category></item><item><title>Is Vibe coding effective</title><link>https://coryhouse.dev/2025/10/16/tweet-1978927141262651675/</link><guid isPermaLink="true">https://coryhouse.dev/2025/10/16/tweet-1978927141262651675/</guid><description>Is Vibe coding effective? It appears the answer is “Yes”. Just saw a talk from a team that did an experiment to prove it. They built the same app u...</description><pubDate>Thu, 16 Oct 2025 20:52:51 GMT</pubDate><category>Tweets</category></item><item><title>Two important points: 1</title><link>https://coryhouse.dev/2025/10/17/tweet-1979148081347051757/</link><guid isPermaLink="true">https://coryhouse.dev/2025/10/17/tweet-1979148081347051757/</guid><description>Two important points: 1. The AI team was all real developers. If non-devs were Vibe coding they’d likely have significantly worse results. 2. The A...</description><pubDate>Fri, 17 Oct 2025 11:30:48 GMT</pubDate><category>Tweets</category></item><item><title>If I’m unhappy with the code AI generates, it’s probably my fault</title><link>https://coryhouse.dev/2025/10/17/tweet-1979269446570037666/</link><guid isPermaLink="true">https://coryhouse.dev/2025/10/17/tweet-1979269446570037666/</guid><description>If I’m unhappy with the code AI generates, it’s probably my fault. My prompt is vague. My context is incorrect. My task was too high level. My requ...</description><pubDate>Fri, 17 Oct 2025 19:33:03 GMT</pubDate><category>Tweets</category></item><item><title>Problem: People forget to remove feature flags</title><link>https://coryhouse.dev/2025/10/29/tweet-1983488199432495353/</link><guid isPermaLink="true">https://coryhouse.dev/2025/10/29/tweet-1983488199432495353/</guid><description>Problem: People forget to remove feature flags. Solution: Create &quot;exploding&quot; feature flags. Two techniques: 1. Don&apos;t allow flags that target 100% o...</description><pubDate>Wed, 29 Oct 2025 10:56:52 GMT</pubDate><category>Tweets</category></item><item><title>Just visited The Netherlands for the first time to speak at Techorama</title><link>https://coryhouse.dev/2025/10/30/tweet-1983816932299100409/</link><guid isPermaLink="true">https://coryhouse.dev/2025/10/30/tweet-1983816932299100409/</guid><description>Just visited The Netherlands for the first time to speak at Techorama. I explored Amsterdam and Utrecht. As an American, here’s a few things I admi...</description><pubDate>Thu, 30 Oct 2025 08:43:08 GMT</pubDate><category>Tweets</category></item><item><title>A few years ago I led a team of developers creating reusable software...</title><link>https://coryhouse.dev/2025/11/01/tweet-1984607591675121961/</link><guid isPermaLink="true">https://coryhouse.dev/2025/11/01/tweet-1984607591675121961/</guid><description>A few years ago I led a team of developers creating reusable software components for a large company. We had at least one of our developers embedde...</description><pubDate>Sat, 01 Nov 2025 13:04:56 GMT</pubDate><category>Tweets</category></item><item><title>Custom directives are getting out of control</title><link>https://coryhouse.dev/2025/11/03/tweet-1985442411313565974/</link><guid isPermaLink="true">https://coryhouse.dev/2025/11/03/tweet-1985442411313565974/</guid><description>Custom directives are getting out of control. &apos;use server&apos; &apos;use client&apos; &apos;use cache&apos; &apos;use cache:remote&apos; &apos;use workflow&apos; &apos;use streaming&apos; &apos;use edge&apos; &apos;u...</description><pubDate>Mon, 03 Nov 2025 20:22:13 GMT</pubDate><category>Tweets</category></item><item><title>I talk money with my developer friends</title><link>https://coryhouse.dev/2025/11/11/tweet-1988255893532668339/</link><guid isPermaLink="true">https://coryhouse.dev/2025/11/11/tweet-1988255893532668339/</guid><description>I talk money with my developer friends. Here’s why. Years ago I was managing a dev team full-time and contracting on the side. My friend named Lee...</description><pubDate>Tue, 11 Nov 2025 14:41:59 GMT</pubDate><category>Tweets</category></item><item><title>&quot;LLMs are trained on other people&apos;s code&quot;</title><link>https://coryhouse.dev/2025/11/11/tweet-1988267871772750283/</link><guid isPermaLink="true">https://coryhouse.dev/2025/11/11/tweet-1988267871772750283/</guid><description>&quot;LLMs are trained on other people&apos;s code&quot;. Yep. And before LLM&apos;s, I used other people&apos;s code too. I copied patterns from docs, StackOverflow, forum...</description><pubDate>Tue, 11 Nov 2025 15:29:35 GMT</pubDate><category>Tweets</category></item><item><title>Software development is simpler than it sounds</title><link>https://coryhouse.dev/2025/11/12/tweet-1988608691084382477/</link><guid isPermaLink="true">https://coryhouse.dev/2025/11/12/tweet-1988608691084382477/</guid><description>Software development is simpler than it sounds. You only need to understand a few key concepts to code: variables, conditionals, loops, assignments...</description><pubDate>Wed, 12 Nov 2025 14:03:53 GMT</pubDate><category>Tweets</category></item><item><title>I&apos;m reviewing a codebase with over 750 uses of optional chaining</title><link>https://coryhouse.dev/2025/11/18/tweet-1990885763651633444/</link><guid isPermaLink="true">https://coryhouse.dev/2025/11/18/tweet-1990885763651633444/</guid><description>I&apos;m reviewing a codebase with over 750 uses of optional chaining. Example: user?.email I continue to believe adding this feature to JS was a mistak...</description><pubDate>Tue, 18 Nov 2025 20:52:09 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You want to enable a few specific VS Code settings for everybody</title><link>https://coryhouse.dev/2025/11/20/tweet-1991587043676418237/</link><guid isPermaLink="true">https://coryhouse.dev/2025/11/20/tweet-1991587043676418237/</guid><description>Problem: You want to enable a few specific VS Code settings for everybody. Solution: Put the settings in .vscode/settings.json and they&apos;ll automati...</description><pubDate>Thu, 20 Nov 2025 19:18:47 GMT</pubDate><category>Tweets</category></item><item><title>I don&apos;t need stand-ups, sprints, retrospectives, or a scrum master</title><link>https://coryhouse.dev/2025/11/26/tweet-1993690495415882193/</link><guid isPermaLink="true">https://coryhouse.dev/2025/11/26/tweet-1993690495415882193/</guid><description>I don&apos;t need stand-ups, sprints, retrospectives, or a scrum master. I need good communication, frequent delivery, iteration based on feedback, and...</description><pubDate>Wed, 26 Nov 2025 14:37:09 GMT</pubDate><category>Tweets</category></item><item><title>My biggest beef with Scrum: The sprint time box creates an arbitrary deadline</title><link>https://coryhouse.dev/2025/12/03/tweet-1996319970578358423/</link><guid isPermaLink="true">https://coryhouse.dev/2025/12/03/tweet-1996319970578358423/</guid><description>My biggest beef with Scrum: The sprint time box creates an arbitrary deadline. Arbitrary deadlines lead to rushing. Rushing leads to cutting corner...</description><pubDate>Wed, 03 Dec 2025 20:45:45 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You want to hide a component, but still preload data and remember...</title><link>https://coryhouse.dev/2025/12/09/tweet-1998509140898185505/</link><guid isPermaLink="true">https://coryhouse.dev/2025/12/09/tweet-1998509140898185505/</guid><description>Problem: You want to hide a component, but still preload data and remember it&apos;s local state while hidden. Solution: React&apos;s new &lt;Activity&gt; co...</description><pubDate>Tue, 09 Dec 2025 21:44:44 GMT</pubDate><category>Tweets</category></item><item><title>Problem: I want to run multiple agents at once</title><link>https://coryhouse.dev/2025/12/15/tweet-2000688554771730904/</link><guid isPermaLink="true">https://coryhouse.dev/2025/12/15/tweet-2000688554771730904/</guid><description>Problem: I want to run multiple agents at once. 4 solutions: 1. Clone the repo twice. Use 2 editor instances. 2. Use Git worktree to checkout multi...</description><pubDate>Mon, 15 Dec 2025 22:04:57 GMT</pubDate><category>Tweets</category></item><item><title>Some people run multiple coding agents at once</title><link>https://coryhouse.dev/2025/12/16/tweet-2000931268528406577/</link><guid isPermaLink="true">https://coryhouse.dev/2025/12/16/tweet-2000931268528406577/</guid><description>Some people run multiple coding agents at once. But I&apos;m skeptical - is it worth it? When coding with AI assistance, human inspection and approval i...</description><pubDate>Tue, 16 Dec 2025 14:09:24 GMT</pubDate><category>Tweets</category></item><item><title>AI is an accelerator</title><link>https://coryhouse.dev/2025/12/21/tweet-2002802633728524320/</link><guid isPermaLink="true">https://coryhouse.dev/2025/12/21/tweet-2002802633728524320/</guid><description>AI is an accelerator. So, bad guardrails = bad code, faster. Useful guardrails: -Types -Tests -Linting -Auto-formatting -AI reviews -Clear definiti...</description><pubDate>Sun, 21 Dec 2025 18:05:32 GMT</pubDate><category>Tweets</category></item><item><title>Problem: I want Claude to use Chrome</title><link>https://coryhouse.dev/2026/01/03/tweet-2007516621825552416/</link><guid isPermaLink="true">https://coryhouse.dev/2026/01/03/tweet-2007516621825552416/</guid><description>Problem: I want Claude to use Chrome. Solution: Here&apos;s 3 options and when I use each: 1. Playwright MCP – Use as primary cross-browser testing tool...</description><pubDate>Sat, 03 Jan 2026 18:17:15 GMT</pubDate><category>Tweets</category></item><item><title>Problem: In Claude Code, when should I create a custom slash command vs a skill</title><link>https://coryhouse.dev/2026/01/03/tweet-2007591718196261300/</link><guid isPermaLink="true">https://coryhouse.dev/2026/01/03/tweet-2007591718196261300/</guid><description>Problem: In Claude Code, when should I create a custom slash command vs a skill? Solution: Often either works. But, create a slash command when you...</description><pubDate>Sat, 03 Jan 2026 23:15:39 GMT</pubDate><category>Tweets</category></item><item><title>Last month I enjoyed &quot;Advent of Claude: 31 Days of Claude Code&quot;</title><link>https://coryhouse.dev/2026/01/04/tweet-2007645358730686497/</link><guid isPermaLink="true">https://coryhouse.dev/2026/01/04/tweet-2007645358730686497/</guid><description>Last month I enjoyed &quot;Advent of Claude: 31 Days of Claude Code&quot;. The author just published this single blog post with all the tips in one spot: htt...</description><pubDate>Sun, 04 Jan 2026 02:48:48 GMT</pubDate><category>Tweets</category></item><item><title>Problem: I’d like to be able to check on or work with my laptop’s Claude or...</title><link>https://coryhouse.dev/2026/01/05/tweet-2008306060193370509/</link><guid isPermaLink="true">https://coryhouse.dev/2026/01/05/tweet-2008306060193370509/</guid><description>Problem: I’d like to be able to check on or work with my laptop’s Claude or Codex instance via my phone. Solution: Happy. Jump right into an existi...</description><pubDate>Mon, 05 Jan 2026 22:34:11 GMT</pubDate><category>Tweets</category></item><item><title>With agent instructions files like http://CLAUDE.md, it&apos;s tempting to add...</title><link>https://coryhouse.dev/2026/01/06/tweet-2008596745622589922/</link><guid isPermaLink="true">https://coryhouse.dev/2026/01/06/tweet-2008596745622589922/</guid><description>With agent instructions files like http://CLAUDE.md, it&apos;s tempting to add lots of detailed guidelines. But, I only add to the instructions file as...</description><pubDate>Tue, 06 Jan 2026 17:49:16 GMT</pubDate><category>Tweets</category></item><item><title>Problem: “you could have AI write/maintain your traditional E2E tests, but i...</title><link>https://coryhouse.dev/2026/01/08/tweet-2009259934387523938/</link><guid isPermaLink="true">https://coryhouse.dev/2026/01/08/tweet-2009259934387523938/</guid><description>Problem: “you could have AI write/maintain your traditional E2E tests, but i promise they&apos;ll quickly miss CSS selectors” Solution: Don’t use CSS se...</description><pubDate>Thu, 08 Jan 2026 13:44:33 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Our team uses many different AI coding tools, so where do we put...</title><link>https://coryhouse.dev/2026/01/12/tweet-2010762620899315757/</link><guid isPermaLink="true">https://coryhouse.dev/2026/01/12/tweet-2010762620899315757/</guid><description>Problem: Our team uses many different AI coding tools, so where do we put our instructions? Maintaining separate Claude, Copilot, and Cursor instru...</description><pubDate>Mon, 12 Jan 2026 17:15:41 GMT</pubDate><category>Tweets</category></item><item><title>You&apos;ve probably heard of the BDD testing style, using Given, When, Then</title><link>https://coryhouse.dev/2026/01/15/tweet-2011809304257372219/</link><guid isPermaLink="true">https://coryhouse.dev/2026/01/15/tweet-2011809304257372219/</guid><description>You&apos;ve probably heard of the BDD testing style, using Given, When, Then. Just saw a test suite using this style, but calling well-named functions p...</description><pubDate>Thu, 15 Jan 2026 14:34:50 GMT</pubDate><category>Tweets</category></item><item><title>Woah, Vercel just released the React Best Practices skill</title><link>https://coryhouse.dev/2026/01/15/tweet-2011830593772810266/</link><guid isPermaLink="true">https://coryhouse.dev/2026/01/15/tweet-2011830593772810266/</guid><description>Woah, Vercel just released the React Best Practices skill. Looks super handy. Love the idea of encapsulating all this knowledge in a single skill....</description><pubDate>Thu, 15 Jan 2026 15:59:26 GMT</pubDate><category>Tweets</category></item><item><title>Problem: You want to share a skill with people using different agents, not...</title><link>https://coryhouse.dev/2026/01/15/tweet-2011832212514357421/</link><guid isPermaLink="true">https://coryhouse.dev/2026/01/15/tweet-2011832212514357421/</guid><description>Problem: You want to share a skill with people using different agents, not just Claude. Solution: Use the add-skill npm package. Vercel used the ad...</description><pubDate>Thu, 15 Jan 2026 16:05:52 GMT</pubDate><category>Tweets</category></item><item><title>Prediction: Frameworks will start shipping official skills</title><link>https://coryhouse.dev/2026/01/21/tweet-2014015744204300454/</link><guid isPermaLink="true">https://coryhouse.dev/2026/01/21/tweet-2014015744204300454/</guid><description>Prediction: Frameworks will start shipping official skills. Vercel is already shipping handy React skills, but they&apos;re not included in the Next.js...</description><pubDate>Wed, 21 Jan 2026 16:42:26 GMT</pubDate><category>Tweets</category></item><item><title>I keep improving my agentic feedback loop</title><link>https://coryhouse.dev/2026/01/21/tweet-2014100158082855069/</link><guid isPermaLink="true">https://coryhouse.dev/2026/01/21/tweet-2014100158082855069/</guid><description>I keep improving my agentic feedback loop. A feedback loop is critical because it helps the coding agent see if it made any mistakes. My feedback l...</description><pubDate>Wed, 21 Jan 2026 22:17:52 GMT</pubDate><category>Tweets</category></item><item><title>Problem: Generating code via AI may lead to skill atrophy and code I don&apos;t...</title><link>https://coryhouse.dev/2026/02/02/tweet-2018361783757767002/</link><guid isPermaLink="true">https://coryhouse.dev/2026/02/02/tweet-2018361783757767002/</guid><description>Problem: Generating code via AI may lead to skill atrophy and code I don&apos;t understand. 4 solutions: 1. Use Claude&apos;s /output and select &quot;Explanatory...</description><pubDate>Mon, 02 Feb 2026 16:32:03 GMT</pubDate><category>Tweets</category></item><item><title>Excellent post</title><link>https://coryhouse.dev/2026/02/03/tweet-2018685789945688306/</link><guid isPermaLink="true">https://coryhouse.dev/2026/02/03/tweet-2018685789945688306/</guid><description>Excellent post. Orchestrating multiple agents at once is tricky and the DX could certainly be better. But my take is, I typically don&apos;t need to run...</description><pubDate>Tue, 03 Feb 2026 13:59:32 GMT</pubDate><category>Tweets</category></item><item><title>My big frustration with skills is they&apos;re not consistently invoked</title><link>https://coryhouse.dev/2026/02/06/tweet-2019777420690117062/</link><guid isPermaLink="true">https://coryhouse.dev/2026/02/06/tweet-2019777420690117062/</guid><description>My big frustration with skills is they&apos;re not consistently invoked. In this post, Vercel saw the same issue. Their solution? Put a compressed index...</description><pubDate>Fri, 06 Feb 2026 14:17:17 GMT</pubDate><category>Tweets</category></item><item><title>Using Codex today instead of Claude Code</title><link>https://coryhouse.dev/2026/02/06/tweet-2019843840815899126/</link><guid isPermaLink="true">https://coryhouse.dev/2026/02/06/tweet-2019843840815899126/</guid><description>Using Codex today instead of Claude Code. I like how concise the output is. I can easily do diffs by just expanding next to each impacted file. And...</description><pubDate>Fri, 06 Feb 2026 18:41:13 GMT</pubDate><category>Tweets</category></item><item><title>One of the most common reasons I leave GitHub Copilot is to try a new model...</title><link>https://coryhouse.dev/2026/02/06/tweet-2019882762472247558/</link><guid isPermaLink="true">https://coryhouse.dev/2026/02/06/tweet-2019882762472247558/</guid><description>One of the most common reasons I leave GitHub Copilot is to try a new model the moment it&apos;s announced. The Copilot team usually quickly adds new mo...</description><pubDate>Fri, 06 Feb 2026 21:15:52 GMT</pubDate><category>Tweets</category></item><item><title>Even in the age of AI, I can do many tasks more quickly manually than via...</title><link>https://coryhouse.dev/2026/03/15/tweet-2033221267864662392/</link><guid isPermaLink="true">https://coryhouse.dev/2026/03/15/tweet-2033221267864662392/</guid><description>Even in the age of AI, I can do many tasks more quickly manually than via prompting. Entering the right prompt, granting access, waiting for respon...</description><pubDate>Sun, 15 Mar 2026 16:38:20 GMT</pubDate><category>Tweets</category></item><item><title>Rule: If the prompt is likely to be longer than the code change, I should...</title><link>https://coryhouse.dev/2026/03/16/tweet-2033332604686958655/</link><guid isPermaLink="true">https://coryhouse.dev/2026/03/16/tweet-2033332604686958655/</guid><description>Rule: If the prompt is likely to be longer than the code change, I should probably code it myself instead of using AI.</description><pubDate>Mon, 16 Mar 2026 00:00:45 GMT</pubDate><category>Tweets</category></item><item><title>Bun test is crazy fast, but unfortunately we just switched back to Vitest</title><link>https://coryhouse.dev/2026/03/20/tweet-2035014153119662476/</link><guid isPermaLink="true">https://coryhouse.dev/2026/03/20/tweet-2035014153119662476/</guid><description>Bun test is crazy fast, but unfortunately we just switched back to Vitest. Why? Because Bun has an awful mocking bug: Mocks leak. A mock in one tes...</description><pubDate>Fri, 20 Mar 2026 15:22:37 GMT</pubDate><category>Tweets</category></item><item><title>Problem: HTTP status codes in code aren&apos;t type safe and require looking them...</title><link>https://coryhouse.dev/2026/03/20/tweet-2035039297523351939/</link><guid isPermaLink="true">https://coryhouse.dev/2026/03/20/tweet-2035039297523351939/</guid><description>Problem: HTTP status codes in code aren&apos;t type safe and require looking them up or memorizing them all. Solution: http-status-codes Now I have auto...</description><pubDate>Fri, 20 Mar 2026 17:02:32 GMT</pubDate><category>Tweets</category></item><item><title>Y&apos;all out there running multiple agents at once scare me</title><link>https://coryhouse.dev/2026/03/26/tweet-2036963912134910191/</link><guid isPermaLink="true">https://coryhouse.dev/2026/03/26/tweet-2036963912134910191/</guid><description>Y&apos;all out there running multiple agents at once scare me. Why? Because it only saves time if I skip reading the code! And I&apos;ve found human code rev...</description><pubDate>Thu, 26 Mar 2026 00:30:16 GMT</pubDate><category>Tweets</category></item><item><title>I’ve spent 8+ hours a day building with Claude Code and Opus over the last...</title><link>https://coryhouse.dev/2026/03/26/tweet-2037165483053531282/</link><guid isPermaLink="true">https://coryhouse.dev/2026/03/26/tweet-2037165483053531282/</guid><description>I’ve spent 8+ hours a day building with Claude Code and Opus over the last few weeks and I’m going to call it: Programming is more fun than ever. I...</description><pubDate>Thu, 26 Mar 2026 13:51:14 GMT</pubDate><category>Tweets</category></item><item><title>Just learned a team at Microsoft is doing code reviews *after* merge</title><link>https://coryhouse.dev/2026/03/29/tweet-2038357516959019320/</link><guid isPermaLink="true">https://coryhouse.dev/2026/03/29/tweet-2038357516959019320/</guid><description>Just learned a team at Microsoft is doing code reviews *after* merge. Why? To move faster. No more pausing work to wait for code reviews. No need f...</description><pubDate>Sun, 29 Mar 2026 20:47:57 GMT</pubDate><category>Tweets</category></item><item><title>The problem with an immature IT org is it tends to repel the people who are...</title><link>https://coryhouse.dev/2026/04/01/tweet-2039419924313940143/</link><guid isPermaLink="true">https://coryhouse.dev/2026/04/01/tweet-2039419924313940143/</guid><description>The problem with an immature IT org is it tends to repel the people who are most capable of fixing it. When easy things are needlessly hard, and th...</description><pubDate>Wed, 01 Apr 2026 19:09:35 GMT</pubDate><category>Tweets</category></item><item><title>I see many people running multiple agents simultaneously</title><link>https://coryhouse.dev/2026/04/02/tweet-2039726764771909857/</link><guid isPermaLink="true">https://coryhouse.dev/2026/04/02/tweet-2039726764771909857/</guid><description>I see many people running multiple agents simultaneously. I avoid it. Instead, here’s what I typically do while my *one* agent is running: - Review...</description><pubDate>Thu, 02 Apr 2026 15:28:51 GMT</pubDate><category>Tweets</category></item><item><title>I used Windows for 20+ years</title><link>https://coryhouse.dev/2026/04/03/tweet-2040053444740776006/</link><guid isPermaLink="true">https://coryhouse.dev/2026/04/03/tweet-2040053444740776006/</guid><description>I used Windows for 20+ years. Then I spoke at a frontend conference in San Fran...the entire audience was laptops with Apple logos. I actually hid...</description><pubDate>Fri, 03 Apr 2026 13:06:58 GMT</pubDate><category>Tweets</category></item><item><title>This is so slick</title><link>https://coryhouse.dev/2026/04/04/tweet-2040548714557870238/</link><guid isPermaLink="true">https://coryhouse.dev/2026/04/04/tweet-2040548714557870238/</guid><description>This is so slick. It used to be tricky to create an ESLint rule. Now I just tell Claude. Example: We want to assure all SQL queries are multi-line...</description><pubDate>Sat, 04 Apr 2026 21:54:59 GMT</pubDate><category>Tweets</category></item><item><title>I’ve never been great at regex</title><link>https://coryhouse.dev/2026/04/05/tweet-2040891318671475039/</link><guid isPermaLink="true">https://coryhouse.dev/2026/04/05/tweet-2040891318671475039/</guid><description>I’ve never been great at regex. But now, AI generates it for me. It writes tests for each regex it generates, and quickly explains existing regexes...</description><pubDate>Sun, 05 Apr 2026 20:36:22 GMT</pubDate><category>Tweets</category></item><item><title>4 weeks of coding by 4 developers and over 1,000 unit tests that pass in...</title><link>https://coryhouse.dev/2026/04/06/tweet-2041232419844444554/</link><guid isPermaLink="true">https://coryhouse.dev/2026/04/06/tweet-2041232419844444554/</guid><description>4 weeks of coding by 4 developers and over 1,000 unit tests that pass in under 10 seconds. Over 90% code coverage. How? Heavy use of Claude Code wi...</description><pubDate>Mon, 06 Apr 2026 19:11:47 GMT</pubDate><category>Tweets</category></item><item><title>Today at a conference, I asked a room of 250 developers this question: &quot;If...</title><link>https://coryhouse.dev/2026/04/09/tweet-2042345675677921289/</link><guid isPermaLink="true">https://coryhouse.dev/2026/04/09/tweet-2042345675677921289/</guid><description>Today at a conference, I asked a room of 250 developers this question: &quot;If your child was 18, would you recommend they pursue a career in programmi...</description><pubDate>Thu, 09 Apr 2026 20:55:28 GMT</pubDate><category>Tweets</category></item><item><title>The near future: AI generates code</title><link>https://coryhouse.dev/2026/04/10/tweet-2042613331807121469/</link><guid isPermaLink="true">https://coryhouse.dev/2026/04/10/tweet-2042613331807121469/</guid><description>The near future: AI generates code. AI tests code. AI commits code. AI pushes code. AI reviews code. AI deploys code. So, developers don’t write or...</description><pubDate>Fri, 10 Apr 2026 14:39:02 GMT</pubDate><category>Tweets</category></item><item><title>I thought AI would lead to more slop</title><link>https://coryhouse.dev/2026/04/13/tweet-2043811579230065080/</link><guid isPermaLink="true">https://coryhouse.dev/2026/04/13/tweet-2043811579230065080/</guid><description>I thought AI would lead to more slop. I&apos;ve actually found it&apos;s leading to the best code I&apos;ve written. Here&apos;s why: I can fix anti-patterns quickly....</description><pubDate>Mon, 13 Apr 2026 22:00:27 GMT</pubDate><category>Tweets</category></item><item><title>Been building a new Next.js app over the last few weeks and I&apos;m happy to say...</title><link>https://coryhouse.dev/2026/04/16/tweet-2044566484827963593/</link><guid isPermaLink="true">https://coryhouse.dev/2026/04/16/tweet-2044566484827963593/</guid><description>Been building a new Next.js app over the last few weeks and I&apos;m happy to say Next has been stable, fast, and all around enjoyable. RSC works great....</description><pubDate>Thu, 16 Apr 2026 00:00:10 GMT</pubDate><category>Tweets</category></item><item><title>Ya know how in a job interview you can tell if someone is a good candidate...</title><link>https://coryhouse.dev/2026/04/18/tweet-2045506683019911633/</link><guid isPermaLink="true">https://coryhouse.dev/2026/04/18/tweet-2045506683019911633/</guid><description>Ya know how in a job interview you can tell if someone is a good candidate in the first 5 minutes? I’ve found the same thing with dev teams. You ca...</description><pubDate>Sat, 18 Apr 2026 14:16:11 GMT</pubDate><category>Tweets</category></item><item><title>Dev team red flags 🚩 “We do Scrum” “We do Git flow” “We use &lt;insert...</title><link>https://coryhouse.dev/2026/04/18/tweet-2045530927653114300/</link><guid isPermaLink="true">https://coryhouse.dev/2026/04/18/tweet-2045530927653114300/</guid><description>Dev team red flags 🚩 “We do Scrum” “We do Git flow” “We use &lt;insert inferior tech here&gt;” “We have a change approval board” “We rarely deploy...</description><pubDate>Sat, 18 Apr 2026 15:52:31 GMT</pubDate><category>Tweets</category></item><item><title>Problem: AI generates code that doesn&apos;t match our formatting and linting...</title><link>https://coryhouse.dev/2026/04/19/tweet-2045846278915924418/</link><guid isPermaLink="true">https://coryhouse.dev/2026/04/19/tweet-2045846278915924418/</guid><description>Problem: AI generates code that doesn&apos;t match our formatting and linting standards. Solution: Create a stop hook that runs Prettier and ESLint afte...</description><pubDate>Sun, 19 Apr 2026 12:45:37 GMT</pubDate><category>Tweets</category></item><item><title>Pet peeve: Projects where many files are named index</title><link>https://coryhouse.dev/2026/04/19/tweet-2046014388990062868/</link><guid isPermaLink="true">https://coryhouse.dev/2026/04/19/tweet-2046014388990062868/</guid><description>Pet peeve: Projects where many files are named index. Result? Every tab in my editor is named index. Every file in my diff is named index. So I hav...</description><pubDate>Sun, 19 Apr 2026 23:53:38 GMT</pubDate><category>Tweets</category></item><item><title>The acceleration from AI is unbelievable</title><link>https://coryhouse.dev/2026/04/21/tweet-2046619506626199791/</link><guid isPermaLink="true">https://coryhouse.dev/2026/04/21/tweet-2046619506626199791/</guid><description>The acceleration from AI is unbelievable. After *only 5 weeks* of development on a new project with 4 devs, we have over 4,000 tests. That&apos;s ~200 t...</description><pubDate>Tue, 21 Apr 2026 15:58:09 GMT</pubDate><category>Tweets</category></item><item><title>Wild realization: AI means I shouldn&apos;t write *any* code anymore</title><link>https://coryhouse.dev/2026/04/22/tweet-2047031290529284449/</link><guid isPermaLink="true">https://coryhouse.dev/2026/04/22/tweet-2047031290529284449/</guid><description>Wild realization: AI means I shouldn&apos;t write *any* code anymore. Why? Because AI is better than me. 1. AI sees more than me. It sees *all* the conn...</description><pubDate>Wed, 22 Apr 2026 19:14:26 GMT</pubDate><category>Tweets</category></item><item><title>Teammate wanted to try Claude&apos;s new expensive ultrareview but didn&apos;t have access</title><link>https://coryhouse.dev/2026/04/23/tweet-2047391494818955412/</link><guid isPermaLink="true">https://coryhouse.dev/2026/04/23/tweet-2047391494818955412/</guid><description>Teammate wanted to try Claude&apos;s new expensive ultrareview but didn&apos;t have access. So he told Claude &quot;just do what ultrareview does&quot;... Result? It s...</description><pubDate>Thu, 23 Apr 2026 19:05:45 GMT</pubDate><category>Tweets</category></item><item><title>In 2026, many dev teams still fail to get the basics right</title><link>https://coryhouse.dev/2026/05/02/tweet-2050553350035243117/</link><guid isPermaLink="true">https://coryhouse.dev/2026/05/02/tweet-2050553350035243117/</guid><description>In 2026, many dev teams still fail to get the basics right. Click ops No CI server No feature flags No automated tests Long-lived branches Big, amb...</description><pubDate>Sat, 02 May 2026 12:29:50 GMT</pubDate><category>Tweets</category></item><item><title>Problem: How do I quickly tell AI exactly which elements I want to change</title><link>https://coryhouse.dev/2026/05/07/tweet-2052504763690832318/</link><guid isPermaLink="true">https://coryhouse.dev/2026/05/07/tweet-2052504763690832318/</guid><description>Problem: How do I quickly tell AI exactly which elements I want to change? Solution: Agentation This npm package displays a toolbar in your app so...</description><pubDate>Thu, 07 May 2026 21:44:04 GMT</pubDate><category>Tweets</category></item><item><title>Hot take: 🌶️ An agent should be generating nearly all code today</title><link>https://coryhouse.dev/2026/05/08/tweet-2052774233428705610/</link><guid isPermaLink="true">https://coryhouse.dev/2026/05/08/tweet-2052774233428705610/</guid><description>Hot take: 🌶️ An agent should be generating nearly all code today. If the agent fails, the focus should be on improving instructions, prompts, arch...</description><pubDate>Fri, 08 May 2026 15:34:50 GMT</pubDate><category>Tweets</category></item><item><title>My personal site has been on Wordpress for 14 years</title><link>https://coryhouse.dev/2026/05/23/tweet-2058310457702613226/</link><guid isPermaLink="true">https://coryhouse.dev/2026/05/23/tweet-2058310457702613226/</guid><description>My personal site has been on Wordpress for 14 years. Just found out the DB is corrupted and I have no recent backup. Solution: I told Claude &quot;Use d...</description><pubDate>Sat, 23 May 2026 22:13:49 GMT</pubDate><category>Tweets</category></item><item><title>I thought AI would lead to worse code</title><link>https://coryhouse.dev/2026/05/24/tweet-2058657204169818473/</link><guid isPermaLink="true">https://coryhouse.dev/2026/05/24/tweet-2058657204169818473/</guid><description>I thought AI would lead to worse code. I was wrong. My code is better than ever because I&apos;m more willing to refactor when AI does it for me. I&apos;m mo...</description><pubDate>Sun, 24 May 2026 21:11:40 GMT</pubDate><category>Tweets</category></item></channel></rss>