TLDR Web Dev 2024-04-26

Microsoft open sources MS-DOS 🖥, FCC restores net neutrality ✍️, hashing 101 🧠

🧑‍💻
Articles & Tutorials

No Abstractions: an Increase API design principle (5 minute read)

Increase has a “no abstractions” principle when designing APIs. This means using real-world naming conventions from underlying networks, modeling resources after immutable real-world events, and separating resources with distinct use cases. The approach may seem more complex at first, but it actually makes the API more predictable, more consistent, and reduces cognitive load for developers.

How Robinhood uses Graph Algorithms to prevent Fraud (8 minute read)

Robinhood uses graphs to represent relationships between user accounts. To combat fraud, it uses vertex-centric algorithms (BFS, DFS) for targeted exploration and graph-centric algorithms (Connected Components, PageRank) for broader network analysis. The company uses graph databases to store and query graph-structured data with built-in analytics.

TypeScript: Branded Types 🔧 (6 minute read)

TypeScript's structural typing can make it difficult to differentiate between types with identical structures. To solve this, this article introduces the concept of "branding," which adds a unique symbolic identifier to a type. It shows real-world examples of a “Brand” type and relevant methods like AddBrand and RemoveBrand.
🧠
Opinions & Advice

What's your onboarding like? (Reddit Thread)

The dev onboarding process at companies varies a lot, but a good onboarding process allows new devs to build relationships across the team, improve the team's documentation, and get up to speed quickly. A popular comment on this Reddit thread emphasizes the importance of giving a new hire a tiny bug or feature that allows them to push to prod within the first week. This allows them to build momentum and confidence within the team's codebase.

Most Tech Jobs Are Jokes And I Am Not Laughing (27 minute read)

While recruiting for a tech job, this author went through a lot of negative interviewing experiences and found that interviewers often focused on superficial factors during interviews. They also found it hard to find a “good” work environment with talented colleagues, minimal bureaucracy, and meaningful work. Still, the author tells readers to not settle for a mediocre job and to try their best to prioritize passion and meaning in their work.
🚀
Launches & Tools

MS-DOS v1.25, v2.0, v4.0 Source Code (GitHub Repo)

Microsoft has open-sourced the original source code for MS-DOS v1.25, v2.0, and v4.0.

Plasmic (GitHub Repo)

Plasmic is an open-source visual builder for your codebase. It allows teams to design and build websites fast, with or without code. Its main use cases are for content management and web applications, allowing both devs and non-devs to make edits to a website in a clean manner.

MUI X (GitHub Repo)

MUI X is a collection of advanced React UI components for complex use cases. It includes data grids, date and time pickers, charts, and a tree view component. It can be integrated natively with Material UI or extended by your own design system.
🎁
Miscellaneous

An engineer's guide to talking to users (6 minute read)

When engineers talk to users, they get the rich context that they may miss by relying solely on filtered information from others, like product managers. The best users to talk to are power users and those frequently contacting support teams. Engineers should focus on two areas when asking questions: problem exploration (to guide future product direction) and solution validation (to assess new features or demos).

F.C.C. Votes to Restore Net Neutrality Rules (4 minute read)

The FCC has voted to reinstate net neutrality regulations, which means that broadband providers cannot block or slow down access to their competitors' services. While broadband providers are expected to take legal action to overturn these reinstated rules, this ruling stands to make the internet more open by not allowing providers to play favorites with internet traffic.

Piet (11 minute read)

Piet is a programming language where programs are represented by abstract paintings. The language uses 20 colors with commands determined by the color changes encountered as an interpreter travels through an image. The program manipulates data using a stack and includes commands for arithmetic, logic, stack operations, and input/output.
⚡️
Quick Links

Hashing explained from scratch for noobs (5 minute read)

Hashing transforms a large amount of text into a short, unique code (a hash) representing the original content, making it easy to compare data, verify file integrity, and securely store passwords.

Visualizing malicious IP addresses (4 minute read)

This author visualized the locations of malicious IP addresses that tried to compromise their web server, with most of the attacks concentrated from parts of Asia, Europe, and the US, and (almost) none from South America, the Middle East, and Russia.

Canvas Confetti (GitHub Repo)

A performant confetti animation in JavaScript.

CSS Bonfire (Website)

A Bonfire animation implemented in just CSS.
Get our free, 5-minute newsletter read by 350,000 frontend, backend, and full stack developers
Join 300,000 readers for