But still, I did not expect a text editor to knock down my system like that.
I still do not know exactly what happened. Maybe it was a Zed issue. Maybe it was a Linux graphics issue. Maybe it was related to the editor trying to index or analyze the project. Maybe it was some unlucky combination of my system, drivers, and the application.
But from a userβs perspective, the result was simple: I clicked something in a text editor, my laptop froze, restarted, and then failed to boot normally.
That is enough for me.
Reliability beats speed
After that experience, I uninstalled Zed.
This is not a statement that Zed is a bad editor. Many developers clearly like it. Maybe on another machine, another OS, or another project, it works beautifully.
But for me, the trust was gone.
A developer tool can be experimental. It can have a different interface. It can require some learning. I am fine with that.
But it cannot make me worry about whether my operating system will boot after using it.
That is where I draw the line.
The irony is that one of the arguments against VS Code is often that it uses Chromium. And yes, Chromium is not the lightest possible foundation. It may not be the fastest choice in every benchmark.
But Chromium is battle-tested.
It is used everywhere, on many systems, by many users, every day. It may have overhead, but it is reliable. And for my day-to-day work, I choose reliability over speed every time.
A fast editor that I cannot trust is not faster in practice.
What I learned
This short experiment reminded me that developer tools are not only about speed.
For me, a good editor needs to be:
fast enough
stable
predictable
easy to navigate
comfortable with large codebases
reliable when jumping through functions and files
VS Code may not be perfect, and it may not be the most lightweight editor in the world, but it gives me a workflow I can trust.
Zed may be faster in some benchmarks, and the Rust/native approach is interesting. But in my real-world test, it did not give me enough benefit to justify the friction. And after the system freeze, the decision was easy. Final thought Trying new tools is important. I installed Zed with genuine curiosity, not with the intention to criticize it. I wanted to see whether the hype around a fast, Rust-based, non-Chromium editor would translate into a better real-world workflow for me.
It did not. But the bigger lesson for me was not only about Zed. This experience also made me question Ubuntu on my laptop. I am still a relatively new Linux user, but I have already experienced system crashes more often than I used to on Windows. That surprised me, because I expected Ubuntu to feel more stable and more secure. Maybe the issue was Zed. Maybe it was Ubuntu. Maybe it was a graphics driver, hardware compatibility, or some unlucky combination of all of them. I do not know yet. What I do know is that I do not want to judge the whole Linux experience from one installation. So I will probably create another partition, install another Linux distro, and make Zed one of the first applications I test there. Then I will see how it behaves in a different environment.
β€10π5π4
π17β€14π6πΏ6
Storybook 10.4
Storybook 10.4 ships several notable features: AI agents can now automatically configure Storybook in complex apps by analyzing project structure, generating mocks, and writing stories; a new sidebar change detection filter highlights stories affected by recent code changes; a quick-share button publishes Storybook to Chromatic for instant teammate review without needing a PR or CI run. The release also adds first-class TanStack React framework support via @storybook/tanstack-react with zero-config routing and server functions, an improved opinionated React Native setup using a standalone entry point, and an experimental react-component-meta docgen analyzer powered by Volar and the TypeScript Language Server for faster, higher-quality MCP metadata.
π6β€4
Designing Firefox for the future
Mozilla is rolling out a major Firefox redesign codenamed Project Nova, focused on making the browser feel cleaner, warmer, and faster. Key changes include updated tab shapes with subtle gradients, a refreshed color palette inspired by fire, more rounded and consistent UI components, rebalanced spacing, and updated icons. Privacy features are being surfaced more prominently, including easier access to the built-in VPN, private browsing, and redesigned Settings with plainer language. Performance improvements include a 9% reduction in key page content load times. Productivity features like tab groups, split view, and vertical tabs are more accessible, and compact mode is returning by popular demand. The redesign extends to mobile for cross-device consistency, and new themes and wallpapers are being added. Accessibility β contrast, readability, keyboard behavior, and dark mode β is a core design consideration throughout.
β€22π3π2π2
How Gradle Is Javamaxxing
Gradle Blog
Gradle Blog
Gradle is aggressively adopting newer JDK releases to improve build performance, a strategy they call 'Javamaxxing.' Gradle 9.0 raised the minimum daemon JVM to Java 17, and Gradle 10 will require Java 21. Newer JDKs bring free performance gains through better GC, JIT compilation, and new APIs like Compact Object Headers (JEP 519) and the Class-File API (JEP 484). Critically, upgrading the JDK that runs Gradle does not force projects to target newer Java versions β JVM toolchains fully decouple the daemon JVM from the compilation and test JVMs, so you can run Gradle on JDK 26 while still producing Java 8 bytecode. About 80% of Gradle 9 users are already on Java 21+, making it a reasonable new minimum floor.
β€13π3π₯2
Union Types Are Finally Coming to C#
C# 15 (shipping with .NET 11) introduces native union types, closing a long-standing gap in the language. Previously developers relied on workarounds like marker interfaces, abstract base classes, nullable returns, or the OneOf library to express 'this returns one of several types'. The new syntax is concise: `public union Result<T>(T, Exception);` declares a closed set of types. Implicit conversions allow direct assignment, and pattern matching gains compiler-enforced exhaustiveness checks β if a switch expression doesn't handle all union cases, the compiler warns. This means method signatures can truthfully express all possible return shapes without exceptions for control flow. The feature is currently experimental in .NET 11 Preview 4, compiled to a struct internally, and covers type unions (not yet full discriminated unions with named cases).
β€14π6π2
I replaced 6 paid subscriptions with a homelab on an old laptop β here's the full stack
A developer replaced six paid subscriptions (Plex Pass, UptimeRobot Pro, NextDNS, and others) totaling ~$400/year by running self-hosted alternatives on an old business laptop using Debian and Docker. The stack includes Jellyfin for media, Uptime Kuma for monitoring, Pi-hole with dnscrypt-proxy for network-wide DNS blocking, and more. The post covers both the practical benefits β built-in UPS via laptop battery, low power draw, portability β and honest trade-offs like initial setup time, occasional maintenance, and polish gaps in some open-source mobile apps compared to paid services.
β€19π8π¨βπ»4π₯2
TamboUI Promises to Bring Better Capabilities to Build TUIs in Java
TamboUI is a new Java library for building terminal user interfaces (TUIs), inspired by Rust's Ratatui and frameworks like Bubbletea and Charm. Currently at version 0.3.0, it offers a modular API spanning from low-level terminal drawing to high-level components, event handling, and CSS-like styling. The library is fully compatible with GraalVM for native binary compilation, addressing Java's historical startup time and distribution concerns. It has already been adopted by projects including Quarkus, Maveniverse Pilot, and Spring Initializr TUI. The creators argue that Java's maturity, combined with modern tooling like JReleaser and JBang, makes it well-suited for CLI and TUI development in 2026.
β€18π4π₯2π¨βπ»2
Retrospective on My Job Search
A senior frontend engineer and former VP of Engineering shares a detailed retrospective on a 5-month job search in 2025-2026. Out of 60 applications, 78% were rejected without an interview, 23% ghosted entirely, and only 13 led to conversations. Key observations include the rise of AI-automated screening making it harder to pass initial filters, the blurring of job levels (junior, mid, senior, staff), and the challenge of being simultaneously over- and under-qualified when transitioning from executive leadership back to IC roles. The search ended successfully with a role at Duna, which was praised for its humane hiring process.
β€10π4
Explore union types in C# 15
C# 15 introduces the `union` keyword in .NET 11 Preview 2, allowing developers to declare a closed set of case types with compiler-enforced exhaustive pattern matching. Unlike object, marker interfaces, or abstract base classes, union types don't require related types and prevent external extension. The compiler generates a struct with implicit conversions from each case type and astruct wiproperty. Switch expressions over union types are exhaustive without needing a discard arm, and adding a new case type triggers compiler warnings on incomplete switches. Custom union types are also supported via amarker inteattribute for existing libraries, including a non-boxing access pattern for performance-sensitive scenarios. Related proposals for closed hierarchies and closed enums round out a comprehensive exhaustiveness story for C#.
β€14π¨βπ»4π2π1
PowerToys 0.100 is here: new Shortcut Guide, Command Palette improvements and much more!
PowerToys 0.100 ships with a brand-new Shortcut Guide that detects the active application and surfaces relevant shortcuts in a side pane. Command Palette gains an Extension Gallery for browsing and managing extensions, plus multi-monitor Dock support with per-display configurations. Power Display sees reliability and compatibility improvements including a new Max Compatibility Mode. ZoomIt adds webcam overlay support during recording and multi-clip appending with transitions. Under the hood, the project has been upgraded to .NET 10, the installer is 15% smaller, auto-update is more reliable, and Quick Accent and Workspaces have migrated to native Fluent-inspired WPF styling.
β€14π4π₯2
A thousand Postgres branches for $1
Xata has reduced Postgres database branching times from 20+ seconds to 1-2 seconds through a combination of custom storage (Xatastor using ZFS over NVMe-oF) and warm pools of pre-provisioned Kubernetes pods. Branches use copy-on-write storage so you only pay for diffs to the parent. With scale-to-zero billing per minute, 1,000 short-lived branches cost roughly $1. Real-world customers like AI coding agents and CI/CD preview environments are using thousands of branches per week for under $30/month. The architecture separates compute from storage, allowing volumes to be hot-connected to waiting pods in milliseconds.
β€12π4π¨βπ»2
Chrome for Developers
Chrome 146 introduces three notable features for web developers. Scroll-triggered animations enable declarative CSS-based control of animations based on scroll position, replacing common JavaScript-based scroll detection patterns. Scoped custom element registries allow multiple custom element definitions for the same tag name within a page, preventing naming conflicts when using libraries from multiple sources. The Sanitizer API provides a built-in way to strip script-executing content from user-supplied HTML, making it easier to build XSS-free web apps β this updated version is also available in Firefox.
β€18π4π₯1
Using My Fucking Brain
A software engineer reflects on a moment where they let Claude handle an entire bug investigation and fix end-to-end β without ever reading the Sentry issue, the code, or the diff β and only realized it after merging. Claude happened to be correct, but the workflow would have looked identical if it had been wrong. The post argues that AI tools are valuable when they sharpen your thinking, but dangerous when they become a way to skip the cognitive work entirely. The author's new rule: if you can't explain the change, you can't ship it.
π18β€9π₯3
pg_kpart version 1.0
pg_kpart is a new PostgreSQL extension (v1.0) that enforces partition key usage by rejecting queries that would scan all partitions of a partitioned table. Without a usable predicate on the partition key, such queries cause full-hierarchy scans that saturate I/O and degrade performance for all connected users. The extension turns a fragile developer convention into a database-enforced guarantee, with features including an audit mode for gradual rollout, blacklist/whitelist scoping to target specific tables, and a dedicated SQLSTATE for application-level error handling. It is open source under the PostgreSQL license and available on GitHub.
β€14π2
WhatsApp Computer Science and Technology
π22β€15πΏ6π2
EF Core Performance Best Practices in .NET 10
A comprehensive guide to EF Core performance optimization in .NET 10, covering ten key techniques: using AsNoTracking() for read-only queries, compiled queries for hot paths, compiled models for large schemas, fixing N+1 problems with eager loading, AsSplitQuery() to avoid cartesian explosion, bulk operations with ExecuteUpdateAsync/ExecuteDeleteAsync, Select() projections to avoid over-fetching, proper DbContext lifetime management with IDbContextFactory, parameterized queries for plan cache reuse, and logging slow queries with Serilog. Includes a prioritized action plan and FAQ addressing common misconceptions.
β€13π3
Your first MCP server with ASP.NET
A step-by-step guide to building an HTTP-based MCP (Model Context Protocol) server using ASP.NET and the ModelContextProtocol.AspNetCore NuGet package. Covers project setup, registering the MCP server in Program.cs, creating tool classes with McpServerToolType and McpServerTool attributes, writing descriptive parameter annotations so AI clients can discover and invoke tools, and connecting the server to AI clients like GitHub Copilot or VS Code via a .mcp.json config file. Uses a product catalog search as a concrete example, showing how a natural language question gets translated into a tool call and back into a human-readable answer.
β€17π2
New Features in Java 26
Java 26 introduces a range of improvements spanning performance, security, and language features. Key highlights include: restrictions on reflective modification of final fields to strengthen encapsulation; removal of the long-deprecated Applet API; AOT object caching now available with any garbage collector including ZGC; HTTP/3 support in the HTTP Client API via QUIC; G1 GC throughput improvements reducing thread synchronization overhead; a second preview of PEM encoding APIs for cryptographic objects; sixth preview of Structured Concurrency; second preview of Lazy Constants for faster startup; eleventh incubator of the Vector API for SIMD-based computation; and a fourth preview extending pattern matching to primitive types in instanceof and switch.
β€15π₯6π4
What's new in Git 2.55.0?
Git 2.55.0 introduces several notable features: a new `git history fixup` subcommand that amends staged changes into an existing commit and auto-rebases stacked branches; fsmonitor daemon support for Linux using inotify(7); the ability to push to a group of remotes with fsmonitor d aat's new in Git 2.55.0
option forin Git 2.55.0?
Gitto cap lane width; batched blob downloads for partial clones in git-grep and git-cherry; and Rust is now a required build dependency unless explicitly disabled.
β€7π¨βπ»5π3