New
The latest blog posts to take off on Hacker News. 21,819 posts.
Malware found on NPM infecting local package with reverse shell
For the first time, RL researchers discover malicious locally-installed npm packages infecting other legitimate packages.
Good-bye core types; Hello Go as we know and love it
Go 1.25 simplifies the language spec by removing the notion of core types
You should know this before choosing Next.js
Picking the technology stack for a project is an important and consequential decision. In the enterprise space in particular, it often involves a multi-year commitment with long-lasting implication...
The role of developer skills in agentic coding
Notes from my colleagues on AI-assisted software delivery
Coordinating the Superbowl's visual fidelity with Elixir
A case study of how Elixir is being used at Cyanview.
Better Shell History Search
I spend an awful lot of my day in Unix terminals running shell commands. For some reason, the variance in efficiency between different people when using the shell is huge: I know people who can run rings around me, and I’ve come across more than one paid professional who doesn’t use the “up” key to retrieve the…
My Favorite C++ Pattern: X Macros (2023)
In this post, I talk about my favorite C/C++ pattern involving macros.
Open-sourcing OpenPubkey SSH (OPKSSH): integrating single sign-on with SSH
OPKSSH (OpenPubkey SSH) is now open-sourced as part of the OpenPubkey project. This enables users and organizations to configure SSH to work with single sign-on technologies like OpenID Connect, removing the need to manually manage & configure SSH keys without adding a trusted party other than your IdP.
Coding Isn't Programming
Join us for a captivating closing keynote with the legendary Leslie Lamport, Turing Award winner and pioneer in the field of distributed computing. We'll discuss computing history, open source and distributed systems.
Optimizing Matrix Multiplication on RDNA3
Writing Super-Fast Matrix Multiplication with HIP, RGP, and ISA
Writing your own C++ standard library from scratch
The C++ standard library (also know as the STL) is, without a doubt, an astounding piece of work. Its scope, performance and incredible back...
Reflecting on WikiTok
Civil Engineer and Software Developer
Cottagecore Programmers
Every programmer I know has at some point longingly expressed how “[they] want to work with [their] hands”. Some say they wish they were a carpenter, some want to be in the fields on a farm, some want to raise chickens, or milk cows. It is however inevitable that I either hear someone say it or agree with it at some…
War story: the hardest bug I ever debugged
All of a sudden, without any ostensible cause, Google Docs was flooded with errors. How it took me 2 days and a coworker to solve the hardest bug I ever debugged.
Writing a tiny undo/redo stack in JavaScript
I’ve needed this before - a couple of times. Third time I figured I needed something small, nimble - yet complete. And - at the same time - wondering about how to do it in a very simple manner. I think it worked out great, so let’s dig in. Most UIs will have some form of undo functionality. Now, there are generally…
Move on to ESM-Only
Three years ago, I wrote a post about shipping ESM & CJS in a single package , advocating for dual CJS/ESM formats to ease user migration and trying to make the best of both worlds. Back then, I didn’t fully agree with aggressively shipping ESM-only , as I considered the ecosystem wasn’t ready, especially since the…
The Software Engineering Identity Crisis
Many of us became software engineers because we found our identity in building things. Not managing things. Not overseeing things. Building things. With our own hands, our own minds, our own code. But that identity is being challenged. AI coding assistants aren’t just changing how we write software - they’re…
Aiter: AI Tensor Engine for ROCm
We introduce AMD's AI Tensor Engine for ROCm (AITER), our centralized high performance AI operators repository, designed to significantly accelerate AI workloads on AMD GPUs
Heap-overflowing Llama.cpp to RCE
Retr0's Threat Research
Ruby, Ractors, and lock-free data structures
This story is about concurrent data structures in the context of Ruby. The goal here is to demonstrate how true parallelism can be achieved with global mutable state (which at the time of writing, is not supported by built-in Ruby primitives).
Not all AI-assisted programming is vibe coding (but vibe coding rocks)
Vibe coding is having a moment. The term was coined by Andrej Karpathy just a few weeks ago (on February 6th) and has since been featured in the New York …
“Vibe Coding” vs. Reality
Reviewing the capabilities and limitations of LLM agents in software development and their impact on skilled and less skilled developers.
PyTorch Internals: Ezyang's Blog
This post is a long form essay version of a talk about PyTorch internals, that I gave at the PyTorch NYC meetup on May 14, 2019.
Not OK Cupid – A story of poor email address validation
A story of poor email address validation.
Use Long Options in Scripts
Many command line utilities support short form options (-f) and long form options (--force). Short form is for interactive usage. In scripts, use the long form.
Wheel Reinventor’s Principles (2024)
Software engineer by day, software engineer by night also.
Numbering should start at zero (1982)
To denote the subsequence of natural numbers 2, 3, ..., 12 without the pernicious three dots, four conventions are open to us