TLDR Web Dev 2024-04-12

Bank offline for days 🤯, how testing has evolved 📈, making UUIDs better 💳

🧑‍💻
Articles & Tutorials

The UX of UUIDs (6 minute read)

Unique identifiers (UUIDs) in their standard form can be unfriendly to users. To improve their UX for users, developers can remove hyphens to allow for easy double-click copying. They can also add prefixes (e.g., "prod_" or "test_") to distinguish between environments and resources. Developers should consider encoding UUIDs in base58 for shorter IDs.

The guide to Git I never had (13 minute read)

This guide goes over Git, from key terms to important commands and workflows. It covers branches, commits, and HEAD, along with workflows like forking, feature branches, and more.

Weekend maintenance kicks an Italian bank offline for days (6 minute read)

Italian bank Sella has been offline for days after a weekend system update caused a database problem. It is working with Oracle to resolve the unexpected issue. The extended downtime shows the importance of having a good backup strategy. While "blackout" windows for maintenance are common in banking, they might inadvertently lead to weaker engineering practices compared to industries that require zero-downtime migrations.
🧠
Opinions & Advice

Fixing All The Bugs Won't Solve All The Problems (2 minute read)

Quality improvement programs often yield initial success as obvious flaws ("special causes") are fixed. However, teams will eventually reach a plateau because systemic issues aren't addressed. This means not just fixing bugs, but also tackling architectural problems like geographic distribution, resource allocation, data efficiency, and problematic access patterns.

Are more developers burning out? Or am I just seeing things (Reddit Thread)

Developers are burning out for various reasons, including layoffs, decisions made by non-technical executives, and a tough hiring market. The hiring market is now an “employer's market”, which means that companies have more power over employees and so can dictate working hours, promotions (or lack thereof), and other parts of work to their own benefit.

The 2024 breaking into data engineering roadmap (16 minute read)

To land a data engineering job in 2024, you'll need a skillset that includes SQL knowledge, development skills in Python or Scala, and ideally expertise in distributed compute frameworks like Spark, Snowflake, or BigQuery. Aspiring data engineers should make sure they know how to model data properly and have at least one compelling portfolio project that showcases all of these skills.
🚀
Launches & Tools

New Flow Language Features for React (7 minute read)

Flow, a type checker for JavaScript, now offers dedicated syntax for React components and hooks to improve the developer experience. It now replaces traditional React function syntax with component syntax and enforces React best practices, like making props read-only. It also supports hooks and their corresponding rules.

Madge (7 minute read)

Madge is a development tool that helps visualize and manage module dependencies for JavaScript and CSS projects. It supports several module types and CSS preprocessors. Madge can detect circular dependencies and create visual graphs of project structures. The tool is useful for developers looking to optimize their codebase and maintain clear dependencies.
🎁
Miscellaneous

Why aren't more companies language-agnostic when it comes to hiring? (Reddit Thread)

Large companies (like FAANG) have the resources to offer new hires extended onboarding periods (3-6 months), allowing flexibility in the languages that a new hire knows. In contrast, startups need immediate productivity from new hires since they run lean.

How I discovered a 9.8 critical security vulnerability in ZeroMQ with mostly pure luck and my two cents about xz backdoor (13 minute read)

While working on a project, this developer accidentally discovered a serious security flaw in the ZeroMQ library. The flaw was serious and reminded them of the recent infamous xz backdoor incident. Both flaws could've been prevented. Open-source contributors and maintainers should prioritize focused features and utilize tools like Valgrind to prevent similar security risks.

From the 80's to 2024 - how CI tests were invented and optimized (11 minute read)

Over the last few decades, software testing has evolved from slow manual reviews to automated testing of every code change. Initially focused on finding errors, testing now emphasizes speed and efficiency through vertical scaling (faster machines), parallelization (running tests simultaneously), and caching (avoiding rework). Teams are able to optimize testing further by batching changes in merge queues, testing stacked PRs together, and using AI code review to detect potential errors.
⚡️
Quick Links

Demystifying the Shadow DOM (3 minute read)

The Shadow DOM is a hidden portion of the regular DOM and is ideal for browser extensions, widgets, and component libraries.

Our Response to Hashicorp's Cease and Desist Letter (1 minute read)

HashiCorp claims OpenTofu's "removed" block infringes its copyright, but OpenTofu refutes this, citing evidence that the code originated from an MPL-2.0 licensed project and that Hashicorp's own implementation appears to be derived from the same source.

Transitioning from React to Svelte: Guide for Frontend Developers (20 minute read)

A guide for developers who are moving from React to Svelte that covers differences in reactivity, component lifecycle, and state management, providing code examples along the way.

Top Open-Source AI and ML Tools for 2023-2024 (6 minute read)

An overview of various AI/ML tools, including general frameworks like TensorFlow, tools optimized for local use such as GPT4ALL, and AI development kits like the Unity ML Agents Toolkit.
Get our free, 5-minute newsletter read by 350,000 frontend, backend, and full stack developers
Join 300,000 readers for