Over-reliance on collaboration has hidden costs. Excessive collaboration can reduce overall output due to time spent in meetings and can create expensive interactions between teams that are not always necessary. It can also hide deeper-rooted problems, like inefficient workflows and unclear team boundaries.
Receiving feedback well means approaching feedback with curiosity and seeking clarification when possible. It's also important to avoid immediate counterarguments when receiving feedback and instead create a safe environment for the feedback giver to be honest with you.
Sponsored
The CamundaCon Process Orchestration Conference [11] is coming to New York City (and streamed live online)! On the agenda: A keynote by Microsoft MVP and Author David Neal (ReverentGeek), hands-on workshops, talks by process automation experts at top-tier companies, and many surprises. Buy a ticket to attend in-person or register
Nitro is a framework for developing high-performance native modules in React Native. It achieves this through hybrid objects, which are native objects implemented in C++, Swift, or Kotlin that provide direct access to native functionalities. Nitro uses a lightweight layer built on JSI and bridges directly to Swift and Kotlin while still prioritizing type safety and null-safety by using a code-generator to make sure that TypeScript specifications are the single source of truth for both JavaScript and native code.
Electrico is a lightweight, cross-platform alternative to Electron that uses Rust and Javascript to emulate Electron and Node APIs within embedded WebViews. This lets users run Electron apps without bundling Node.js and Chromium.
This is a Node.js implementation of FarmHash, Google's family of high performance hash functions. It offers various hash and fingerprint functions with different bit lengths and seeding options.
wordfreq provided snapshots of language usage up to 2021 - it will not be updated anymore due to several reasons. First, the rise of generative AI has contaminated online data with AI-generated text, making it difficult to accurately represent human language usage. Second, previously free sources of data, like Twitter and Reddit, have become inaccessible or expensive, making it impractical to collect new data. Finally, its developer has become disillusioned with the current state of natural language processing.
This is a guide for beginners on self-hosting software and using Uberspace as a platform that emphasizes the software aspect rather than complex hardware setup. The author goes through the process of self-hosting two example apps.
A downloadable cheat sheet for all of the new features in React 19.
You can use git log -- /path/to/deleted/file to find the commit that deleted a file in your local repo, and you can do the same on a hosted repo with https://github.com/⟦user⟧/⟦project⟧/commits/⟦branch⟧/⟦path/to/deleted/file⟧.
A new proposal addresses C++'s memory safety vulnerabilities by introducing features similar to Rust, allowing developers to write safer code without needing to rewrite their projects in a different language.
Apple is the first customer for TSMC's new Arizona chip fabrication facility, producing its A16 mobile processors for the iPhone on American soil.
Notion implemented WebAssembly (WASM) SQLite in its web app. This resulted in a 20% reduction in page navigation latency. To achieve this, its team used Web Workers to offload database operations to background threads and a SharedWorker with the Web Locks API to fix data integrity issues. They also addressed issues of slow disk reads by implementing a "race" between disk cache and network requests.
Infinite queries in React Query, often used in paginated lists or infinite scrolls, allow for continuous data fetching. A bug found in this feature caused queries to restart from the beginning if a page fetch fails during a retry. This article explains how infinite queries work in order to explain how the bug happened, along with the fix, which involves modifying the infinite query behavior to retain the state of the loop, preventing it from restarting from the beginning during retries.
This post proposes a new way to understand TypeScript's type system. It suggests thinking of types as sets of possible values they can construct. This means a string type represents the infinite set of all possible character permutations, and a number type represents the infinite set of all possible digit permutations. TypeScript's features like intersection, union, and type introspection can be understood as operations on these sets.
Simply because two variables move together doesn't mean one directly influences the other. For example, ice cream sales and sunburn rates correlate, but the actual cause is a third variable: temperature. The same applies when making decisions in engineering teams: charts can be helpful, but they shouldn't be taken as the sole representation of reality, as the real world is far more complex.
This engineering manager learned three things from his time at Amazon: solve problems through mechanisms, communicate with precision, and give teams full autonomy. He misses the deep technical talks at Amazon but doesn't miss the inconsistent management culture before Andy Jassy's leadership changes.
Sponsored
Arcjet helps developers protect their apps in code (no agent required). Implement bot protection, rate limiting, email validation, PII detection, and defense against common attacks; test everything
Yazi is a terminal file manager written in Rust, based on non-blocking async I/O. It offers features including built-in image support, code highlighting, a plugin system, and integration with popular command-line tools.
An ESLint plugin for suggesting optimizations in choice of dependencies, native equivalents, and more. It detects dependency tree bloat and redundant polyfills.
The first rule of machine learning is to start without it. It's best to initially tackle problems using simpler methods like heuristics and rules. This approach provides a baseline understanding of the data and problem and can even outperform machine learning models in certain cases.
Startups can differentiate themselves to attract top engineering talent by offering remote work, better work environments, better pay, and good work-life balance. They also can reach out to potential candidates on LinkedIn and have an engineering blog.
The Pragmatic Engineer newsletter, started by ex-Uber engineer/manager Gergely Orosz, is now three years old. Looking ahead, Orosz will continue his deep dives into interesting tech companies and technologies. The Pragmatic Engineer podcast will also launch next week, featuring interviews with experienced engineers and tech professionals.
2024.09.18·newsletter.pragmaticengineer.com·17 min read·TLDR Web Dev A bug in macOS Sequoia 15 causes some DNS requests to bypass DNS encryption, potentially exposing users' browsing activity to monitoring.
The "safe-await" package handles a more explicit and structured approach to handling async operations compared to nested try/catch blocks.
Despite its benefits, Linux's demanding nature prevents widespread adoption, similar to how people choose easy options over healthier choices.
!important is often used to override specific CSS styles, but it may not always work in practice because the style is coming from user agent style sheets, which have higher priority than author agent style sheets.
Sponsored
When your frontend throws unexpected 404s or experiences timeouts, the last thing you want is to sift through logs, stack traces, and dashboards.
chock-full of practical tips on how to make debugging more tolerable. Stick around for the live Q&A [4]!
X's Core Services team rearchitected the read path for Posts by splitting the read and write path of Tweetypie, a core service, into two separate services. They did this because of the service's resource intensity, unbalanced read and write traffic, and code complexity issues caused by its monolithic nature. The new architecture uses X's distributed ecosystem and has resulted in a highly performant Tweet Entity Service capable of handling millions of operations per second.
A Google engineer examines the current state of ES5 on the web, challenging the traditional practice of transpiling to ES5. Data shows that many popular websites unnecessarily bundle ES5 helpers with ES6+ code, leading to unnecessary bloat. Instead, it's better for developers to shift towards "Baseline Widely Available" features, which benefits both library authors, who can focus on publishing modern code, and website developers, who can tailor browser support to their specific needs through their build tools.
Data-fetching in React has shifted from client-side fetching in traditional SPAs to server-side fetching using frameworks like NextJS and Remix. The React team advocates for server-side data-fetching due to its efficiency and the complexity of client-side approaches. This post goes over using React Router loaders, Tanstack Query, and React Server Components for handling data in React.
Working at a Big Tech company offers rare mentorship opportunities that are often overlooked. This developer shares how they learned a lot from experienced colleagues at their Big Tech company, like the engineer who revamped Facebook's newsfeed. Mentorship isn't always a structured program, but rather about proactively reaching out to people for advice and guidance.
Sprints in Scrum can lead to chronic stress due to their constant nature, lack of autonomy, and insufficient time for preparation. Traditional Waterfall methods have waves of high-pressure periods balanced with more reasonable periods. The ongoing, medium-level stress of sprints, in contrast, can be more damaging.
2024.09.17·rethinkingsoftware.substack.com·6 min read·TLDR Web Dev Sponsored
Teams today use an average of 12+ monitoring tools to collect and analyze trillions of data points (including cloud and on-premises resources). Tool sprawl of this scale can take a severe toll on your ability to mitigate outages and risks. Learn how to consolidate monitoring tools [11], maximize uptime, and ship faster. Read the
react-call provides a simple and flexible way to imperatively call React components from anywhere in an application, even outside of React. This makes it ideal for scenarios like confirmations, notifications, popups, and more. It also lets devs present UI, wait for user interaction, and receive response data.
Adze is a universal logging library for TypeScript and JavaScript that can run in any JS runtime without configuration. It supports both server and browser environments. Adze has first-class TypeScript support, a chainable API, log listeners, middleware support, log annotations, and various log formats.
jaqt is a JavaScript library that uses native array functions to provide a query engine inspired by GraphQL and SQL. It lets devs perform complex data transformations while still writing JavaScript (instead of SQL).
Amazon is requiring its corporate employees to return to the office five days a week. It is also flattening its corporate structure by reducing the number of managers and increasing the ratio of individual contributors. The new policies will come into effect on January 2, 2025.
This is an open letter signed by prominent figures in the JavaScript community that urges Oracle to release the "JavaScript" trademark. They argue that Oracle has abandoned the trademark through non-use, as they haven't built a product using the mark and haven't actively protected it. They are calling on Oracle to relinquish the trademark to the public domain, and warn that they will challenge its ownership through a petition for cancellation with the USPTO if Oracle doesn't comply.
A summer intern at Vercel shares his experience working on various projects. He improved the Support Center, implemented citations in the new v0 AI system, and created the "v0 Brain" initiative. His internship involved full autonomy, intense but rewarding work, and learning from industry leaders.
This Internet-Draft defines a new HTTP method, QUERY, which allows for safe and idempotent requests that can carry request content, providing an alternative to GET and POST methods for performing queries.
CSSNANO is a tool that compresses CSS files for production environments, reducing their size by removing unnecessary whitespace, compressing identifiers, and purging redundant definitions.
This online book focuses on software engineering practices necessary for the effective implementation of modern data analysis and machine learning.
Writing simple, readable code is more considerate, durable, and ultimately more satisfying than writing complex code.
Codeforces, a popular online programming platform, has banned the use of AI-generated code in its competitions.