12/2017
Computer latency: 1977-2017
11/2017
Is there data on the quality of management decisions?
11/2017
How out of date are Android devices?
11/2017
UI backwards compatibility
10/2017
Filesystem error handling
10/2017
Keyboard latency
08/2017
A brief history of branch prediction
08/2017
Why does Sattolo's algorithm produce a permutation with exactly one cycle?
07/2017
Terminal and shell performance
06/2017
Is the keyboard faster than the mouse?
06/2017
Options vs. cash
02/2017
How web bloat affects people with slow connections
10/2016
HN: the good parts
10/2016
Programming books you might want to consider reading
10/2016
Developer hiring and the market for lemons
10/2016
Why's that company so big? I could do that in a weekend
09/2016
Is developer compensation becoming bimodal?
09/2016
How I learned to program
08/2016
Notes on concurrency bugs
04/2016
Modest list of programming blogs
04/2016
Notes on Google's Site Reliability Engineering book
03/2016
When we only hire the best means we only hire the trendiest
01/2016
Sampling vs. tracing profilers
01/2016
Why Intel's 2015 CPU bugs should make us expect worse bugs in the future
12/2015
Normalization of deviance in software: how broken practices become standard
12/2015
Big company vs. startup work and pay
12/2015
File crash consistency and filesystems are hard
11/2015
Does ECC memory matter?
11/2015
What's worked in computer science
11/2015
Infinite disk
10/2015
Why Intel added cache partitioning in Broadwell
09/2015
Distributed systems: when limping hardware is worse than dead hardware
08/2015
Reviewing Steve Yegge's prediction record
08/2015
Lessons learned from reading postmortems
05/2015
Slashdot and Sourceforge
05/2015
Please don't block everything but Googlebot in robots.txt
05/2015
The dominance of boring languages for large scale systems (and some other areas)
05/2015
Advantages of monolithic version control
05/2015
What costs more, the computer or the electricity?
03/2015
How many people actually follow links and check citations?
03/2015
Combining AFL and QuickCheck for directed fuzzing
03/2015
What happens when you navigate to a URL?
03/2015
The dangers of intermediate targets: IQ, cholesterol, and 99%-ile latency
02/2015
AI doesn't have to be good to replace humans, it just has to be slightly less terrible than humans
02/2015
CPU backdoors
01/2015
Is running ads on a programming blog worth it?
01/2015
What's new in CPUs since the 80s and how does it affect programmers?
12/2014
A review of the Julia programming language
12/2014
The performance cost of integer overflow checking
12/2014
A quick tutorial on implementing and debugging malloc, free, calloc, and realloc
12/2014
What data can shed light on the debate on discrimination?
11/2014
What do linux developers say in commit messages?
11/2014
One week of bugs
11/2014
Speeding up this blog by 25x-50x
11/2014
Please stop breaking the build
11/2014
The evidence behind strong claims about static vs. dynamic languages
11/2014
Why Intel added the CLWB and PCOMMIT instructions
11/2014
Cache eviction: when are randomized algorithms better than LRU?
11/2014
Testing v. informal reasoning
10/2014
Read along: the Chubby lock service for loosely-coupled distributed systems
10/2014
Hand coded assembly beats intrinsics in speed and simplicity
04/2014
Automated bug detection with analytics
03/2014
Editing binaries: easier than it sounds
03/2014
On that bogus gender gap article
03/2014
That time Larry Ellison allegedly tried to have a professor fired for benchmarking Oracle
02/2014
Why don't schools teach debugging?
01/2014
How much math do programmers need?
01/2014
How misaligning data can increase performance 12x by reducing cache misses
12/2013
PCA is not a panacea
11/2013
Why hardware development is hard, part 2: the physical world is unforgiving
10/2013
How to discourage open source contributions
10/2013
Why HN should use randomized algorithms
09/2013
How to write safe Verilog: become a PL troll
09/2013
Why hardware development is hard, part 1: Verilog is weird