Sponsored
馃椊 THE PLACE(S) TO BE FOR ENGINEERING LEADERS IN NY
This September, you have a chance to share ideas and connect with the New York community, with events for all levels [4] of engineering leadership:
Parse notes
Sponsored
This September, you have a chance to share ideas and connect with the New York community, with events for all levels [4] of engineering leadership:
It's good not to call impure functions like `new Date()` inside React components, especially when setting the initial state. Doing so makes testing difficult due to inconsistencies. Instead, it's better to pass the impure function or its result as a prop, which this article shows through code examples.
Traditional database systems have a tough time providing intuitive and user-friendly interfaces. A 2007 paper identifies several "pains" associated with relational databases, such as the complexity of joins, overwhelming options, unexpected results, and difficulties with data creation. There are potential solutions for improving database usability, including the development of presentation data models, integrated provenance, intuitive interactions, using LLMs, and flexible schema design.
A "bug squash" interview, where candidates are presented with a real codebase containing a bug and asked to find and fix it, is an underrated software engineering interview question. This author believes this type of interview is more realistic and engaging than traditional coding challenges, as it reflects the everyday work of software engineers and allows candidates to showcase their debugging skills and understanding of codebases.
Toasts might be a bad user experience because they are disruptive and often appear far from the user's focus. As an alternative, this author suggests using a more integrated approach, such as a loading indicator, to provide feedback for actions. He provides specific examples from YouTube and Gmail to illustrate how toasts can be replaced with more user-friendly methods.
This author struggles to finish personal projects because of the lack of a clear definition of "finished," the absence of external accountability, and the fear of sharing imperfect work. Writing a detailed product spec upfront and setting time constraints for projects helps him get past this block.
Zed AI is a hosted service that integrates AI-powered coding into the Zed text editor, letting developers use LLMs while maintaining full control over their code.
@swan-io/boxed provides TypeScript building blocks for functional programming, including immutable types like Option, Result, and Future. It makes development easier with a chaining API, reliable types, and compatibility with pattern matching libraries.
Preact's Vite preset now includes built-in prerendering. By generating HTML at build time, this approach improves initial load speeds and user experience with minimal changes to existing codebases.
This bug bounty hunter conducted a security audit of the open-source ad blocker Pi-hole and discovered a "harmless" vulnerability in the api.php file. The vulnerability allowed unauthenticated users to change the CPU temperature format displayed on the Pi-hole status page. While considered inconsequential by the Pi-hole team, the bug bounty hunter reported the issue and contributed a fix to the code.
This thread talks about whether a company's expectations of a junior developer are too high. Some say the bar has been raised for junior developers, while others say that some companies just have higher bars in general.
A US judge has blocked the Federal Trade Commission's ban on non-compete agreements, ruling that the FTC lacked the authority to issue such a wide-reaching rule.
With the addition of Server Components and Server Actions, React is evolving into a full-stack framework.
MinusX is a Chrome extension that automates analytics tasks, providing quick and easy access to data insights.
JavaScript's WeakMap should be made iterable, as the original motivation for its non-iterability is no longer valid and the current workaround using FinalizationRegistry is inefficient and non-standard.
This article explores how to implement Rust's Result and Option types in TypeScript to make error handling and null value management easier.