Newslurp

<< Stories

Crowdstrike dev practices 🧑‍ðŸ’ŧïļ, monolith-first design ðŸĪ”, void in TS is strange ðŸĪŠ

TLDR Web Dev <dan@tldrnewsletter.com>

September 16, 11:11 am

TLDR WebDev
CrowdStrike prioritizes speed over quality, which may be a reason behind the huge failure it had recently, which caused significant financial losses 

TLDR

Together With LaunchDarkly

 TLDR Web Dev 2024-09-16

Risk Meter by LaunchDarkly: A Free Tool for Software Release Risk Assessment (Sponsor)

You're about to launch a highly-anticipated feature. What if it glitches, doesn't load, or crashes your customer's environment?

This software release risk assessment will help you avoid unhappy customers, lost revenue, or catastrophes like recent news-making outages and issues. Check your risk level now.

→ Identify the easy-to-overlook risks that could be affecting your feature releases.

→ Find out which parts of your release strategy and system monitoring practices are working well and which need to be improved.

→ Get an informed overview of risks like poor user experience, latency, and outages, and learn how to protect your customers from them.

Take the risk assessment (2 minutes)

🧑‍ðŸ’ŧ

Articles & Tutorials

The Strange Behavior of the void Type in TypeScript (6 minute read)

In TypeScript, the `void` type signifies "nothing" and is mostly used to declare the return type of functions. While you can declare a variable as `void`, it's generally not recommended as it can only hold the value `undefined`, making it impractical. Functions declared with a `void` return type are expected to return `undefined`, either explicitly or implicitly. However, due to how TypeScript handles function type declarations and shorthand syntax, functions with a `void` return type can actually return non-`undefined` values - it's important to note that this is a special case to accommodate common usage patterns.
The Rise of Open Source Time Series Databases (8 minute read)

Time series databases store and query data with timestamps, which is useful for infrastructure monitoring, finance, and IoT applications. These databases are an alternative to traditional relational databases, especially when dealing with billions or trillions of data points. The future of time series databases will likely involve solutions for high cardinality, where a large number of unique data points can strain performance, and time series churn, where frequently changing data points can make historical analysis challenging.
🧠

Opinions & Advice

Terence Tao: I have played a little bit with OpenAI's new iteration of GPT, GPT-o1 (5 minute read)

Terence Tao, a famous mathematician and UCLA professor, says that OpenAI's GPT-o1 is getting closer to helping with advanced math tasks and research. It successfully identified and applied Cramer's theorem to solve a complex mathematical query, something that previous models struggled with. However, it still needed lots of hints and prodding for complex analysis problems.
Monolith First (5 minute read)

A "monolith-first" strategy is better for building new applications, even if microservices are anticipated later. Starting with a monolith is more practical and less risky than starting with microservices due to the significant overhead associated with managing a distributed system. Also, it's hard to define stable service boundaries upfront, making a monolith a better platform for experimentation and refining boundaries before moving to a microservices architecture.
Why you should "design it twice"? (3 minute read)

Brainstorming at least two distinct designs when creating software allows you to compare and identify the best solution and potentially combine ideas from both. This requires more upfront effort, but prevents costly rework later and improves design quality.
🚀

Launches & Tools

Security layer for developers (Sponsor)

Arcjet helps developers protect their apps in code (no agents required). Implement bot protection, rate limiting, email validation, PII detection, and defense against common attacks; test everything locally so you don't break prod. Start free.
Violentmonkey (GitHub Repo)

Violentmonkey provides userscripts support for browsers. It works on browsers with WebExtensions support.
Amplify UI (GitHub Repo)

Amplify UI is an open-source library that offers a range of customizable, accessible, and cloud-connected UI components. It has connected components for streamlined cloud workflows, primitive components for consistent branding, data-bound components for dynamic data display, and various theming options.
Conform (GitHub Repo)

Conform is a type-safe form validation library for HTML forms. It integrates with server frameworks like Remix and Next.js.
🎁

Miscellaneous

Ex-CrowdStrike employees detail rising technical errors before July outage (8 minute read)

A report says that CrowdStrike prioritizes speed over quality, which may be a reason behind the huge failure it had recently, which paralyzed airlines and caused significant financial losses. Former employees claim they repeatedly raised concerns about rushed deadlines, insufficient training, and increasing technical problems, but their warnings were ignored. The company disputes these claims, stating that it is committed to quality control and that the information came from disgruntled former employees.
Grounding AI in reality with a little help from Data Commons (8 minute read)

Google's DataGemma models address the issue of hallucinations in LLMs by grounding them in real-world data from the Data Commons knowledge graph. Two approaches are used: Retrieval Interleaved Generation (RIG) and Retrieval Augmented Generation (RAG). RIG fine-tunes the model to identify statistics and verify them against Data Commons, while RAG retrieves relevant information before the LLM generates text.
Exploring the scalable matrix extension of the Apple M4 processor (16 minute read)

Apple M4 chip's Scalable Matrix Extension (SME) unit can achieve impressive peak compute rates for matrix multiplication. However, its performance for vector operations is much lower due to limitations in data movement. This is due to the architecture's reliance on tile storage, where data needs to be moved from the CPU registers to the ZA storage for optimal performance.
⚡

Quick Links

Learn Git Branching (Website)

Learn Git Branching is an interactive visual website that teaches Git through game levels.
Founder Mode, hackers, and being bored by tech (5 minute read)

The cult of the founder in Silicon Valley has created a one-dimensional tech landscape dominated by hype cycles and self-important personalities.
Blog OS (GitHub Repo)

Source code for writing an OS in Rust.
Why Kubernetes needs an LTS (7 minute read)

Kubernetes should adopt a Long-Term Support (LTS) model with a 24-month support window to address the challenges of frequent upgrades and encourage best practices for cluster management.

Love TLDR? Tell your friends and get rewards!

Share your referral link below with friends to get free TLDR swag!
Track your referrals here.

Want to advertise in TLDR? 📰

If your company is interested in reaching an audience of web developers and engineering decision makers, you may want to advertise with us.

If you have any comments or feedback, just respond to this email!

Thanks for reading,
Priyam Mohanty, Jenny Xu & Ceora Ford


If you don't want to receive future editions of TLDR Web Dev, please unsubscribe from TLDR Web Dev or manage all of your TLDR newsletter subscriptions.