TLDR Web Dev

TLDR WEB DEV 2023-12-21

6 sections19 entrieslinks blockcomplete parse

Parse notes

  • Subscription/account footer truncated before parsefooter_truncated

01GENERAL

Sponsored

DEVELOPER THRIVING FRAMEWORK

Developer productivity is meant to measure ability to produce and deliver adept code directly related to a company’s business outcomes. In practice, most companies fixate on surface definitions, incentivize the wrong behaviors [6], or fall into measurement paralysis. This blog post by Pluralsight [6] introduces the Developer Thriving framework [6] — a new way to measure productivity that’s focused on agency, learning, motivation and efficiency, support and belonging.

pluralsight.comSponsor

02ARTICLES & TUTORIALS

FETCH WATERFALL IN REACT

A “fetch waterfall” is a common data fetching issue in React. It happens when you create a hierarchy of components that fetch their own data and show “loading” states before child components are rendered. There are a couple of ways to resolve this: by fetching data from the server (it’s not always as simple as using a server component), hoisting the data fetching to a higher level component, or through Suspense, which triggers the whole component tree’s fetches in parallel.

blog.sentry.io7 min read

BUILDING A FASTER HASH TABLE FOR HIGH PERFORMANCE SQL JOINS

This article introduces a specialized hash table called FastMap used for hash joins and aggregate handling. FastMap takes an unconventional approach to speeding up SQL execution by using various hash functions (shown through code examples). Benchmarks show how FastMap is faster than standard Java Hashmaps.

questdb.io11 min read

MAKING SOFTWARE RELIABLE: THE IMPORTANCE OF TESTABILITY

Testability refers to how easily software can be tested. It plays a crucial role in identifying and fixing errors, ensuring software reliability. This article discusses automated testing basics, including unit tests, integration tests, and system tests, with examples in Go. It also highlights design principles for enhancing testability, such as modular design, the use of interfaces, and dependency injection.

codereliant.io9 min read

03OPINIONS & ADVICE

ALL CODE IS TECHNICAL DEBT

Technical debt is the idea that rushing software development for short-term gains can lead to future slowdowns. Features add to this debt, so their value must outweigh the debt they introduce. Once added, features are challenging to remove, making it crucial to work within existing assumptions to minimize debt.

tokyodev.com10 min read

ADVICE FOR NEW SOFTWARE DEVS WHO'VE READ ALL THOSE OTHER ADVICE ESSAYS

It’s important to critically evaluate advice, considering that software development is not an extensively researched field. It’s better to try out different approaches and learn from experience. A good way to get better at software engineering is to understand the context and origins of best practices and conventions, take walks to refresh the mind, and explore the hidden depths of the tools used in programming.

buttondown.email5 min read

THE 7 RULES FOR SUCCESSFUL JOB HOPPING IN DATA ENGINEERING

The author of this article went from being a junior data engineer to a staff engineer at big tech companies like Facebook, Netflix, and Airbnb. He outlines seven rules for successful job hopping in data engineering, including rapid onboarding, focusing on high-priority work, measurable impact, and not forcing promotions when your manager doesn't support it. He also shares experiences from job interviews, promotions, and the skills he acquired along the way.

open.substack.com13 min read

04LAUNCHES & TOOLS

QNM

Qnm is a CLI utility for querying the node_modules directory. You can use fuzzy search to find specific things and also see which modules are using the most space.

github.comGitHub repository

GEMINI PRO CHAT

Gemini Pro Chat is a minimal web UI to use Gemini Pro, Google’s new LLM.

github.comGitHub repository

INPAINT WEB

An open-source inpainting and image-upscaling tool powered by WebGPU and Wasm on the browser.

github.comGitHub repository

05MISCELLANEOUS

BUILD A SEARCH ENGINE, NOT A VECTOR DB

Vector database startups have proliferated in the last 12 months. However, vector databases should not be solely seen as a way to expand a language model's memory, but rather should be thought of as a specialized search engine. While embeddings and vector search can enhance search results, building a robust search engine with a combination of high-quality embeddings and traditional search methods is a better approach to utilizing AI well.

blog.elicit.com4 min read

USING STRONGLY TYPED VS. STATICALLY TYPED CODE

Strongly typed languages enforce strict type rules, ensuring that variables adhere to their defined types, while statically typed languages require explicit type declarations for variables during compilation. Statically typed languages catch type errors early in development, enhancing code reliability. TypeScript is a language that combines strong and static typing, providing a balance between type safety and flexibility.

blog.logrocket.com6 min read