![]() This week, we’ve got a new way to Welcome to #102.
My first (and last) testing conference Fact checking your terrible testsVersion 3.0.0 of What’s Property-Based Testing? Most developers write tests like they do estimates: give the best case scenario and hope it all works out. These With property-based tests, your test is run hundreds of times with different autogenerated inputs. It’s kind of like having an automated QA person that fact checks your code. How does it work? Ngl, it’s a lot to take in but they provide a handy set of tips and interactive examples to help you get get familiar. Property based testing might be for you if you:
Bottom Line: If you want to stop wasting your time with terrible tests, you can A) delete them all (galaxy brain) or B) go all in and use property based testing. We’re big fans of A), but if math is your kink,
Don’t be like Elmo. [sponsored] Sleuth.io can actually make your team more efficientTracking “developer productivity” is stupid. Two reasons:
That’s why Sleuth is the best. It doesn’t track developer productivity — it only measures team output. And it actually works. That’s because it captures your team’s DORA metrics — which multiple studies have shown are the only stats that actually matter. No worthless vanity metrics and no individual stats. Sleuth automatically collects all that data for you (including deploys), unlike most other services that only collect git or issue tracker data. So you can trust that the numbers are legit. It’s also worth noting that Atlassian uses Sleuth. That’s like being Chef Gordon Ramsey’s favorite restaurant — if it works for them, it’ll probably help you too. Try it free and help your team reach its goals faster.
Y’all still looking for a bundler? Let’s get ready to bundleBack in 2018, Airbnb did what lots of us have done when thinking about upgrading to a new version of Webpack — give up. Unfortunately for them, this was before The Great Build Tool Renaissance™️ of the last couple years — esbuild and Rollup weren’t around yet, Parcel wasn’t as robust as it is today, and Rome was still just a European city with lots of roads. So they turned to Metro, Facebook’s open-source JavaScript bundler for React Native. This was a surprising choice for Airbnb’s web app, and it required them to work directly with the Metro team to create their own custom flavor of Metro (yum) that could handle bundling all of Airbnb’s web properties. The 4-year odyssey finally ended last week with an interesting retro outlining the entire process. So let’s dive a little deeper into what makes Metro unique, why Airbnb decided to use it, and how it stacks up to some of the newer bundlers we have today. There are two defining Metro features:
For most projects, implementing these optimizations would probably feel like extreme hair-splitting (my favorite Winter X-Games event). But for a huge app like Airbnb with 49k+ JS modules, it produced great results, including 80% faster TTI (Time to Interactive) and 55% faster compiling of the slowest prod build. 👏 Should you try this at home? Probably not, tbh. In The Year of Our Build 2022, we have better options for powerful, flexible bundlers that don’t require years of customization (esbuild is probably the gold standard for most projects). But you could always just wait around for a couple years until we inevitably get something even faster. JobsBackend TypeScript Engineer at FlightcontrolFlightcontrol recently completed YCombinator and raised $3.3m. They’re a fully remote team that’s focused on solving the huge gap between Heroku and AWS, and they’re led by Brandon Bayer, the creator of Blitz.js. Senior or Staff Front-end Engineer - React (100% Remote)Close.com is looking for 3 experienced individuals that have a solid understanding of React and want to help design, implement and launch major user-facing features. Close is a 100% globally distributed team of ~55 high-performing, happy people that are dedicated to building a product our customers love. Yeti Labs is looking for Frontend (React + Typescript) developersYeti Labs is a human-centered frontend studio designing and building web apps for DeFi protocols. We love UI animations, innovative UXs, best practices, reusing our code, improving our workflow and learning new things. Come join our crew as we solve interesting challenges while having fun. 🔬 Spot the Bug — Sponsored by CarbonQACarbonQA provides QA services geared for dev teams. Let us lift your dev team’s morale by breaking their code. We work in your tools, talk with your team in Slack, and let devs be devs. Leave the testing to us.
Cool Bits
🔬 Spot the Bug Solution — Sponsored by CarbonQA
There’s a lot of misdirection here. The bug happens with our
and before you say it, yes, I know TypeScript prevents this 🙂. |