<!DOCTYPE html><html lang="en"><head><meta http-equiv="Content-Type" content="text/html charset=UTF-8"><meta charset="UTF-8"><meta name="viewport" content="width=device-width"><meta name="x-apple-disable-message-reformatting"><title>TLDR Dev</title><meta name="color-scheme" content="light dark"><meta name="supported-color-schemes" content="light dark"><style type="text/css">
:root {
color-scheme: light dark; supported-color-schemes: light dark;
}
*,
*:after,
*:before {
-webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box;
}
* {
-ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%;
}
html,
body,
.document {
width: 100% !important; height: 100% !important; margin: 0; padding: 0;
}
body {
-webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility;
}
div[style*="margin: 16px 0"] {
margin: 0 !important;
}
table,
td {
mso-table-lspace: 0pt; mso-table-rspace: 0pt;
}
table {
border-spacing: 0; border-collapse: collapse; table-layout: fixed; margin: 0 auto;
}
img {
-ms-interpolation-mode: bicubic; max-width: 100%; border: 0;
}
*[x-apple-data-detectors] {
color: inherit !important; text-decoration: none !important;
}
.x-gmail-data-detectors,
.x-gmail-data-detectors *,
.aBn {
border-bottom: 0 !important; cursor: default !important;
}
.btn {
-webkit-transition: all 200ms ease; transition: all 200ms ease;
}
.btn:hover {
background-color: #f67575; border-color: #f67575;
}
* {
font-family: Arial, Helvetica, sans-serif; font-size: 18px;
}
@media screen and (max-width: 600px) {
.container {
width: 100%; margin: auto;
}
.stack {
display: block!important; width: 100%!important; max-width: 100%!important;
}
.btn {
display: block; width: 100%; text-align: center;
}
}
body,
p,
td,
tr,
.body,
table,
h1,
h2,
h3,
h4,
h5,
h6,
div,
span {
background-color: #FEFEFE !important; color: #010101 !important;
}
@media (prefers-color-scheme: dark) {
body,
p,
td,
tr,
.body,
table,
h1,
h2,
h3,
h4,
h5,
h6,
div,
span {
background-color: #27292D !important; color: #FEFEFE !important;
}
}
a {
color: inherit !important; text-decoration: underline !important;
}
</style><!--[if mso | ie]>
<style type="text/css">
a {
background-color: #FEFEFE !important; color: #010101 !important;
}
@media (prefers-color-scheme: dark) {
a {
background-color: #27292D !important; color: #FEFEFE !important;
}
}
</style>
<![endif]--></head><body class="">
<div style="display: none; max-height: 0px; overflow: hidden;">Input handling on Linux can be divided into two parts, separated by a common layer. Kernel-level handling deals with what happens in the kernel </div>
<div style="display: none; max-height: 0px; overflow: hidden;">
<br>
</div>
<table align="center" class="document"><tbody><tr><td valign="top">
<table align="center" border="0" cellpadding="0" cellspacing="0" class="container" width="600"><tbody><tr class="inner-body"><td>
<table align="center" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr class="header"><td bgcolor="" class="container">
<table width="100%"><tbody><tr><td class="container">
<table align="center" bgcolor="" border="0" cellpadding="0" cellspacing="0" style="margin-top: 0px;" width="100%"><tbody><tr><td style="padding: 0px;">
<table align="center" bgcolor="" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding: 15px 15px;">
<div style="text-align: center;">
<span style="margin-right: 0px;"><a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Ftldr.tech%2Fdev%3Futm_source=tldrdev/1/0100019aca71761f-07cf4130-aa5e-4f52-90a0-0e2fb9043fe0-000000/Uf0jxJ3BomL-Ofm_0JAn3AHdCGEWtWdehFnR1tPXJGE=433" rel="noopener noreferrer" target="_blank"><span>Sign Up</span></a>
|<span style="margin-right: 2px; margin-left: 2px;"><a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fadvertise.tldr.tech%2F%3Futm_source=tldrdev%26utm_medium=newsletter%26utm_campaign=advertisetopnav/1/0100019aca71761f-07cf4130-aa5e-4f52-90a0-0e2fb9043fe0-000000/-XY7yWomLld07-If_-olCyUnqD0ydJg73XOrKERxE3Q=433" rel="noopener noreferrer" target="_blank"><span>Advertise</span></a></span>|<span style="margin-left: 2px;"><a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fa.tldrnewsletter.com%2Fweb-version%3Fep=1%26lc=156b9020-84b7-11f0-a976-55fc1d40139c%26p=615af772-cc39-11f0-bec4-a5e835536a2c%26pt=campaign%26t=1764333024%26s=9473f27effff834de626cee20ca7982b03c325cb1cfad46607c10a310714f75a/1/0100019aca71761f-07cf4130-aa5e-4f52-90a0-0e2fb9043fe0-000000/vAJ-D5TMGdFg1AlevD5-KSvqNb4GBDVntiMlJ0eeYrY=433"><span>View Online</span></a></span>
<br>
</span></div>
</td></tr></tbody></table>
<table align="center" bgcolor="" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="text-align: center;"><span data-darkreader-inline-color="" style="--darkreader-inline-color:#3db3ff; color: rgb(51, 175, 255) !important; font-size: 30px;">T</span><span style="font-size: 30px;"><span data-darkreader-inline-color="" style="color: rgb(232, 192, 96) !important; --darkreader-inline-color:#e8c163; font-size:30px;">L</span><span data-darkreader-inline-color="" style="color: rgb(101, 195, 173) !important; --darkreader-inline-color:#6ec7b2; font-size:30px;">D</span></span><span data-darkreader-inline-color="" style="--darkreader-inline-color:#dd6e6e; color: rgb(220, 107, 107) !important; font-size: 30px;">R</span>
<br>
</td></tr></tbody></table>
<br>
<table align="center" bgcolor="" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody></tbody></table>
<table style="table-layout: fixed; width:100%;" width="100%"><tbody><tr><td style="padding:0;border-collapse:collapse;border-spacing:0;margin:0;">
<div style="text-align: center;">
<h1><strong> TLDR Dev <span id="date">2025-11-28</span></strong></h1>
</div>
</td></tr></tbody></table>
<table style="table-layout: fixed; width:100%;" width="100%"><tbody></tbody></table>
</td></tr></tbody></table>
</td></tr></tbody></table>
</td></tr>
<tr bgcolor=""><td class="container">
<table align="center" bgcolor="" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td style="padding: 0px;">
<table align="center" bgcolor="" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding-top: 0px; padding-bottom: 0px;">
<div class="text-block">
<div style="text-align: center;"><span style="font-size: 36px;">🧑💻</span></div>
</div>
</td></tr></tbody></table>
<table align="center" bgcolor="" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding-top: 0px; padding-bottom: 0px;">
<div class="text-block">
<div style="text-align: center;">
<h1><strong>Articles & Tutorials</strong></h1>
</div>
</div>
</td></tr></tbody></table>
<table style="table-layout: fixed; width: 100%;" width="100%"><tbody><tr><td style="padding:0;border-collapse:collapse;border-spacing:0;margin:0;" valign="top">
<table align="center" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding: 15px 15px;">
<div class="text-block">
<span>
<a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fvenam.net%2Fblog%2Funix%2F2025%2F11%2F27%2Finput_devices_linux.html%3Futm_source=tldrdev/1/0100019aca71761f-07cf4130-aa5e-4f52-90a0-0e2fb9043fe0-000000/t5hr7vsGvNAS9QcbhPq5icMNlf4i2T4_WW-czwQzySU=433">
<span>
<strong>The Input Stack on Linux (6 hour read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
Input handling on Linux can be divided into two parts, separated by a common layer. Kernel-level handling deals with what happens in the kernel and how events are exposed to user-space. User-space handling includes the user-space device manager and hardware database for device management and setup, the libinput library for general input and other libraries such as XKB for keyboards, and Widgets, X Server, X11 window managers, and Wayland compositors. The middle exposed layer includes the event abstraction subsystem, devtmpfs for device nodes, sysfs for kernel objects and device attributes, and procfs for an introspection interface of the input core.
</span>
</span>
</div>
</td></tr></tbody></table>
<table align="center" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding: 15px 15px;">
<div class="text-block">
<span>
<a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fshiftmag.dev%2Fhow-virtual-threads-saved-me-from-becoming-a-meme-7167%2F%3Futm_source=tldrdev/1/0100019aca71761f-07cf4130-aa5e-4f52-90a0-0e2fb9043fe0-000000/-iqfd4VuC4UE-rlzILYWo9kVBCEYO8amSRTqMKEm27E=433">
<span>
<strong>How Java Virtual Threads Simplify Reactor APIs (11 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
Virtual threads simplify concurrency by reducing the cost of waiting threads. They allow developers to use blocking functions without needing to refactor existing code or rely heavily on reactive libraries like Reactor. By using virtual threads, developers can combine modern reactive workflows with traditional Java code, improving code maintainability and understanding.
</span>
</span>
</div>
</td></tr></tbody></table>
</td></tr></tbody></table>
<table align="center" bgcolor="" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding-top: 0px; padding-bottom: 0px;">
<div class="text-block">
<div style="text-align: center;"><span style="font-size: 36px;">🧠</span></div>
</div>
</td></tr></tbody></table>
<table align="center" bgcolor="" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding-top: 0px; padding-bottom: 0px;">
<div class="text-block">
<div style="text-align: center;">
<h1><strong>Opinions & Advice</strong></h1>
</div>
</div>
</td></tr></tbody></table>
<table style="table-layout: fixed; width: 100%;" width="100%"><tbody><tr><td style="padding:0;border-collapse:collapse;border-spacing:0;margin:0;" valign="top">
<table align="center" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding: 15px 15px;">
<div class="text-block">
<span>
<a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fwww.tweag.io%2Fblog%2F2025-11-27-shrinking-static-libs%2F%3Futm_source=tldrdev/1/0100019aca71761f-07cf4130-aa5e-4f52-90a0-0e2fb9043fe0-000000/eWGEnO-zJ0Udxp3tzSWjYE2lVDo4JdUJwQ0EWTtrMjo=433">
<span>
<strong>Shrinking while linking (12 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
This post discusses two ways to significantly reduce the size of a static library. One uses classic tools like ld and objcopy, while the other uses LLVM-specific tools. They both produce similar-sized outputs, but there are some trade-offs. The 'classic' bintools approach works with both GNU bintools and LLVM bintools, and it's significantly faster than the LLVM tools, which need to recompile everything from the intermediate representation to machine code. However, the LLVM approach works on macOS, Linux, Windows, and probably others, making it more versatile.
</span>
</span>
</div>
</td></tr></tbody></table>
<table align="center" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding: 15px 15px;">
<div class="text-block">
<span>
<a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fbrooker.co.za%2Fblog%2F2025%2F11%2F18%2Fconsistency.html%3Futm_source=tldrdev/1/0100019aca71761f-07cf4130-aa5e-4f52-90a0-0e2fb9043fe0-000000/fbVCtnh-j7Fiw8OvoniKdR6OfoyPepBYeuo_1KNVp_c=433">
<span>
<strong>Why Strong Consistency? (8 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
Eventual consistency causes pain for both customers and application builders as it leads to complex workarounds and potential bugs. Strong consistency, like that implemented in Aurora DSQL, avoids these issues by ensuring reads reflect the latest data. Aurora DSQL achieves strong consistency by ensuring storage replicas only return data for a specific timestamp once they've seen all updates up to that time, simplifying application development.
</span>
</span>
</div>
</td></tr></tbody></table>
</td></tr></tbody></table>
<table align="center" bgcolor="" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding-top: 0px; padding-bottom: 0px;">
<div class="text-block">
<div style="text-align: center;"><span style="font-size: 36px;">🚀</span></div></div>
</td></tr></tbody></table>
<table align="center" bgcolor="" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding-top: 0px; padding-bottom: 0px;">
<div class="text-block">
<div style="text-align: center;">
<h1><strong>Launches & Tools</strong></h1>
</div>
</div>
</td></tr></tbody></table>
<table style="table-layout: fixed; width: 100%;" width="100%"><tbody><tr><td style="padding:0;border-collapse:collapse;border-spacing:0;margin:0;" valign="top">
<table align="center" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding: 15px 15px;">
<div class="text-block">
<span>
<a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fgithub.com%2FDancode-188%2Fsynckit%3Futm_source=tldrdev/1/0100019aca71761f-07cf4130-aa5e-4f52-90a0-0e2fb9043fe0-000000/H7C8sQ6u0YTMbUxyS_FyTPJb1TbHh0X5n73WfEAHg7o=433">
<span>
<strong>SyncKit (GitHub Repo)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
SyncKit is a sync engine that makes it trivial to build local-first applications. It can create production-ready sync in 3 lines of code. SyncKit can sync tasks across tabs instantly, even when offline. It uses true offline-first architecture to ensure apps work anywhere, even with a bad internet connection.
</span>
</span>
</div>
</td></tr></tbody></table>
<table align="center" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding: 15px 15px;">
<div class="text-block">
<span>
<a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fcodeberg.org%2FIow%2Ftype%3Futm_source=tldrdev/1/0100019aca71761f-07cf4130-aa5e-4f52-90a0-0e2fb9043fe0-000000/p74zDd0V5qOnneFjrLQTCU7uONqaOPgQBJCTAxSwwZY=433">
<span>
<strong>LowType (GitHub Repo)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
LowType adds type expressions to method arguments in Ruby. It treats arguments with default values that resolve to a type instead of a value as type expressions. LowType enables types in Ruby with the simplest syntax possible.
</span>
</span>
</div>
</td></tr></tbody></table>
</td></tr></tbody></table>
<table align="center" bgcolor="" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding-top: 0px; padding-bottom: 0px;">
<div class="text-block">
<div style="text-align: center;"><span style="font-size: 36px;">🎁</span></div></div>
</td></tr></tbody></table>
<table align="center" bgcolor="" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding-top: 0px; padding-bottom: 0px;">
<div class="text-block">
<div style="text-align: center;"><strong><h1>Miscellaneous</h1></strong></div>
</div>
</td></tr></tbody></table>
<table bgcolor="" style="table-layout: fixed; width: 100%;" width="100%"><tbody><tr><td style="padding:0;border-collapse:collapse;border-spacing:0;margin:0;" valign="top">
<table align="center" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding: 15px 15px;">
<div class="text-block">
<span>
<a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fread.thecoder.cafe%2Fp%2Flinus-torvalds-ambiguous-abstractions%3Futm_source=tldrdev/1/0100019aca71761f-07cf4130-aa5e-4f52-90a0-0e2fb9043fe0-000000/RTs5LxkJ3Nyulh7T2kzlHwVspAx7ev73YMQMzVg0yTM=433">
<span>
<strong>Linus Torvalds vs. Ambiguous Abstractions (7 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
Linus Torvalds has criticized the helper function, `make_u32_from_two_u16()`, arguing that the issue wasn't abstraction itself but the function's ambiguity. Torvalds found the helper unclear because it didn't explicitly state the word order, increasing cognitive load for the user. This post proposes a clearer alternative, `make_u32_from_msw_lsw()`, that encodes the word order in the name.
</span>
</span>
</div>
</td></tr></tbody></table>
<table align="center" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding: 15px 15px;">
<div class="text-block">
<span>
<a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fziglang.org%2Fnews%2Fmigrating-from-github-to-codeberg%2F%3Futm_source=tldrdev/1/0100019aca71761f-07cf4130-aa5e-4f52-90a0-0e2fb9043fe0-000000/LUj3GdXgF4M580OK6bmDhTAT0VVYD5TS361KBv7ocG0=433">
<span>
<strong>Migrating from GitHub to Codeberg (4 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
The Zig programming language project is migrating its main repository from GitHub to Codeberg due to concerns about GitHub's engineering decline, buggy infrastructure, and push for AI features that violate Zig's policies. The move aims to escape vendor lock-in and support a non-profit platform in response to the increasing concentration of wealth in tech.
</span>
</span>
</div>
</td></tr></tbody></table>
</td></tr></tbody></table>
<table align="center" bgcolor="" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding-top: 0px; padding-bottom: 0px;">
<div class="text-block">
<div style="text-align: center;"><span style="font-size: 36px;">⚡</span></div></div>
</td></tr></tbody></table>
<table align="center" bgcolor="" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding-top: 0px; padding-bottom: 0px;">
<div class="text-block">
<div style="text-align: center;">
<h1><strong>Quick Links</strong></h1>
</div>
</div>
</td></tr></tbody></table>
<table bgcolor="" style="table-layout: fixed; width: 100%;" width="100%"><tbody><tr><td style="padding:0;border-collapse:collapse;border-spacing:0;margin:0;" valign="top">
<table align="center" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding: 15px 15px;">
<div class="text-block">
<span>
<a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Flackofimagination.org%2F2025%2F11%2Fmanaging-side-effects-a-javascript-effect-system-in-30-lines-or-less%2F%3Futm_source=tldrdev/1/0100019aca71761f-07cf4130-aa5e-4f52-90a0-0e2fb9043fe0-000000/K665UFzFIUu_wJ8qp8v7yK0JeoUnAyFYyb77J9yLnm8=433">
<span>
<strong>Managing Side Effects: A JavaScript Effect System in 30 Lines or Less (10 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
This article introduces a JavaScript Effect System for managing side effects by describing them as data instead of executing them directly, improving testability, and allowing for centralized logging and profiling.
</span>
</span>
</div>
</td></tr></tbody></table>
<table align="center" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding: 15px 15px;">
<div class="text-block">
<span>
<a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Ftigerbeetle.com%2Fblog%2F2022-11-23-a-friendly-abstraction-over-iouring-and-kqueue%2F%3Futm_source=tldrdev/1/0100019aca71761f-07cf4130-aa5e-4f52-90a0-0e2fb9043fe0-000000/JfJYc4PJ2g3f-MT4Sn2aSP2oiwwAthn2wwbsxXJkNNU=433">
<span>
<strong>A Programmer-Friendly I/O Abstraction Over io_uring and kqueue (11 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
TigerBeetle implemented a programmer-friendly I/O abstraction layer on top of io_uring and kqueue, enabling efficient and centralized I/O dispatch with callbacks and context management.
</span>
</span>
</div>
</td></tr></tbody></table>
<table align="center" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding: 15px 15px;">
<div class="text-block">
<span>
<a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fwww.better-auth.com%2Fblog%2F1-4%3Futm_source=tldrdev/1/0100019aca71761f-07cf4130-aa5e-4f52-90a0-0e2fb9043fe0-000000/jqiwd_rGMyPC9OFDRUUhydJCcwDEbSomlj5LrokwucQ=433">
<span>
<strong>Better Auth 1.4 (10 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
Better Auth 1.4 features stateless auth, SCIM provisioning, custom OAuth state, database join improvements, secondary storage for API keys, SSO domain verification, JWT key rotation, improved generic OAuth plugin, bundle size optimizations, and UUID support.
</span>
</span>
</div>
</td></tr></tbody></table>
<table align="center" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding: 15px 15px;">
<div class="text-block">
<span>
<a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fwww.deepintodev.com%2Fblog%2Fhow-websockets-work%3Futm_source=tldrdev/1/0100019aca71761f-07cf4130-aa5e-4f52-90a0-0e2fb9043fe0-000000/HseSF5Gs2FLlbd6NsexwQwpRgYlrtLsrsLACeKLDz5Q=433">
<span>
<strong>How WebSockets Work (9 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
WebSockets provide persistent, full-duplex communication channels over a single TCP connection, enabling real-time data exchange between a client and server beyond the traditional request-response model of HTTP.
</span>
</span>
</div>
</td></tr></tbody></table>
<table align="center" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding: 15px 15px;">
<div class="text-block">
<span>
<a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fanother.rodeo%2Ffeedback%2F%3Futm_source=tldrdev/1/0100019aca71761f-07cf4130-aa5e-4f52-90a0-0e2fb9043fe0-000000/uxM5i50YuIy-Va-p8c1YT5jxgd3zjsbFdW315mPt9A0=433">
<span>
<strong>Feedback doesn't scale (8 minute read)</strong>
</span>
</a>
<br>
<br>
<span style="font-family: "Helvetica Neue", Helvetica, Arial, Verdana, sans-serif;">
Feedback becomes overwhelming and loses its actionable signal as the leader's direct relationships diminish, and the volume of opinions increases.
</span>
</span>
</div>
</td></tr></tbody></table>
</td></tr></tbody></table>
<table align="center" bgcolor="" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td align="left" style="word-break: break-word; vertical-align: top; padding: 5px 10px;">
<p style="padding: 0; margin: 0; font-size: 22px; color: #000000; line-height: 1.6; font-weight: bold;">
Love TLDR? Tell your friends and get rewards!
</p>
</td></tr>
<tr><td class="container" style="padding: 0px 10px 15px;">
<div class="text-block">
Share your referral link below with friends to get free TLDR swag!
</div>
</td></tr>
<tr><td align="left" style="padding: 10px;">
<div class="text-block">
<a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Frefer.tldr.tech%2F8770c80a%2F3/1/0100019aca71761f-07cf4130-aa5e-4f52-90a0-0e2fb9043fe0-000000/-Ez351TDFMBexUrWejsft_Jw-9KMXMfTb84q6dkQcfo=433" style="color: #464ba4; text-decoration: underline;">https://refer.tldr.tech/8770c80a/3</a>
</div>
</td></tr>
<tr></tr>
<tr><td align="left" style="padding:5px 10px;">
<a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fhub.sparklp.co%2Fsub_7383e7653c81%2F3/1/0100019aca71761f-07cf4130-aa5e-4f52-90a0-0e2fb9043fe0-000000/JSNagix6zWceeWzJaON9aAuiKLYkRGUIPL4zkme33IY=433" style="font-size: 16px; line-height: 1.6; padding: 10px 0; display: inline-block; text-decoration: underline;"><span style="mso-text-raise:13pt; text-decoration: underline;">Track your referrals here.</span></a>
</td></tr></tbody></table>
<table align="center" bgcolor="" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td align="left" style="word-break: break-word; vertical-align: top; padding: 5px 10px;">
<p style="padding: 0; margin: 0; font-size: 22px; color: #000000; line-height: 1.6; font-weight: bold;">
Want to advertise in TLDR? 📰
</p>
<div class="text-block" style="margin-top: 10px;">
If your company is interested in reaching an audience of web developers and engineering decision makers, you may want to <a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fadvertise.tldr.tech%2F%3Futm_source=tldrdev%26utm_medium=newsletter%26utm_campaign=advertisecta/1/0100019aca71761f-07cf4130-aa5e-4f52-90a0-0e2fb9043fe0-000000/SFKyOqqv3HPcaPmsmp9uOgqJ4Usg_XDCRwTB5GG5TvE=433"><strong><span>advertise with us</span></strong></a>.
</div>
<br>
<!-- New "Want to work at TLDR?" section -->
<p style="padding: 0; margin: 0; font-size: 22px; color: #000000; line-height: 1.6; font-weight: bold;">
Want to work at TLDR? 💼
</p>
<div class="text-block" style="margin-top: 10px;">
<a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fjobs.ashbyhq.com%2Ftldr.tech/1/0100019aca71761f-07cf4130-aa5e-4f52-90a0-0e2fb9043fe0-000000/EIHFevCtgiUwxvtebNeY_aC0TYZIDrTX1aW-seEmslQ=433" rel="noopener noreferrer" style="color: #0000EE; text-decoration: underline;" target="_blank"><strong>Apply here</strong></a> or send a friend's resume to <a href="mailto:jobs@tldr.tech" style="color: #0000EE; text-decoration: underline;">jobs@tldr.tech</a> and get $1k if we hire them!
</div>
<br>
<div class="text-block">
If you have any comments or feedback, just respond to this email!
<br>
<br> Thanks for reading,
<br>
<span>Priyam Mohanty</span>, <a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fwww.linkedin.com%2Fin%2Fxu-jenny%2F/1/0100019aca71761f-07cf4130-aa5e-4f52-90a0-0e2fb9043fe0-000000/R2drhFddMd8jO1rTSGnEJHMJKKAqjK7NmOl_vdX0P5w=433"><span>Jenny Xu</span></a> & <span>Ceora Ford</span>
<br>
<br>
</div>
<br>
</td></tr></tbody></table>
<table align="center" bgcolor="" border="0" cellpadding="0" cellspacing="0" width="100%"><tbody><tr><td class="container" style="padding: 15px 15px;">
<div class="text-block" id="testing-id">
<a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Ftldr.tech%2Fdev%2Fmanage%3Femail=silk.theater.56%2540fwdnl.com/1/0100019aca71761f-07cf4130-aa5e-4f52-90a0-0e2fb9043fe0-000000/Lorkv5f2caq6e3gQa9hQ13Fij1U1HPbtldEMZeqV9Ik=433">Manage your subscriptions</a> to our other newsletters on tech, startups, and programming. Or if TLDR Dev isn't for you, please <a href="https://tracking.tldrnewsletter.com/CL0/https:%2F%2Fa.tldrnewsletter.com%2Funsubscribe%3Fep=1%26l=e8d201ca-3e93-11ed-9a32-0241b9615763%26lc=156b9020-84b7-11f0-a976-55fc1d40139c%26p=615af772-cc39-11f0-bec4-a5e835536a2c%26pt=campaign%26pv=4%26spa=1764331269%26t=1764333024%26s=c4c03a2ccb11a692113d7fe2f2220d8c34077a67420fc5a4e30d5555b057ce2c/1/0100019aca71761f-07cf4130-aa5e-4f52-90a0-0e2fb9043fe0-000000/YsWIV-SaOj8Nrkkz-V9y3alJPGqRDfsMbedXvi44YhY=433">unsubscribe</a>.
<br>
</div>
</td></tr></tbody></table>
</td></tr></tbody></table>
</td></tr></tbody></table>
</td></tr></tbody></table>
</td></tr></tbody></table>
<img alt="" src="http://tracking.tldrnewsletter.com/CI0/0100019aca71761f-07cf4130-aa5e-4f52-90a0-0e2fb9043fe0-000000/QwDni6J1HYN343v0UJFa3nYSmPa4eE4kAs0k1SMiy7M=433" style="display: none; width: 1px; height: 1px;">
</body></html>