Nov 2017
How out of date are android devices?
Nov 2017
UI design as if users actually mattered: backwards compatibility
Oct 2017
Filesystem error handling
Oct 2017
Keyboard latency
Aug 2017
A history of branch prediction from 1500000 BC to 1995
Aug 2017
Why does Sattolo's algorithm produce a permutation with exactly one cycle?
Jul 2017
Terminal and shell performance
Jun 2017
Is the keyboard faster than the mouse?
Jun 2017
Options vs. cash
Feb 2017
How web bloat affects people with slow connections
Oct 2016
HN: the good parts
Oct 2016
Programming books you might want to consider reading
Oct 2016
Developer hiring and the market for lemons
Oct 2016
Why's that company so big? I could do that in a weekend
Sep 2016
Is developer compensation becoming bimodal?
Sep 2016
How I learned to program
Aug 2016
Notes on concurrency bugs
Apr 2016
Modest list of programming blogs
Apr 2016
Notes on Google's Site Reliability Engineering book
Mar 2016
When we only hire the best means we only hire the trendiest
Jan 2016
Sampling vs. tracing profilers
Jan 2016
We saw some really bad Intel CPU bugs in 2015, and we should expect to see more in the future
Dec 2015
Normalization of deviance in software: how broken practices become standard
Dec 2015
Big company vs. startup work and pay
Dec 2015
File crash consistency and filesystems are hard
Nov 2015
Does ECC memory matter?
Nov 2015
What's worked in computer science
Nov 2015
Infinite disk
Oct 2015
Why Intel added cache partitioning in Broadwell
Sep 2015
Distributed systems: when limping hardware is worse than dead hardware
Aug 2015
Reviewing Steve Yegge's prediction record
Aug 2015
Lessons learned from reading postmortems
May 2015
Slashdot and Sourceforge
May 2015
Please don't block everything but Googlebot in robots.txt
May 2015
The dominance of boring languages for large scale systems (and some other areas)
May 2015
Advantages of monolithic version control
May 2015
A breakdown of power, servers, and other costs of running a modern datacenter
Mar 2015
How many people actually follow links and check citations?
Mar 2015
Combining AFL and QuickCheck for directed fuzzing
Mar 2015
What happens when you navigate to a URL?
Mar 2015
The dangers of intermediate targets: IQ, cholesterol, and 99%-ile latency
Feb 2015
AI doesn't have to be good to replace humans, it just has to be slightly less terrible than humans
Feb 2015
CPU backdoors
Jan 2015
Is running ads on a programming blog worth it?
Jan 2015
What's new in CPUs since the 80s and how does it affect programmers?
Dec 2014
A review of the Julia programming language
Dec 2014
The performance cost of integer overflow checking
Dec 2014
A quick tutorial on implementing and debugging malloc, free, calloc, and realloc
Dec 2014
The effect of markets on discrimination is more nuanced than Marc Andreessen claims
Nov 2014
What do linux developers say in commit messages?
Nov 2014
Why is software so buggy?
Nov 2014
Speeding up this blog by 25x-50x
Nov 2014
Please stop breaking the build
Nov 2014
Static vs. dynamic languages: a literature review
Nov 2014
Why Intel added the CLWB and PCOMMIT instructions
Nov 2014
Cache eviction: when are randomized algorithms better than LRU?
Nov 2014
Testing v. informal reasoning
Oct 2014
Read along: the Chubby lock service for loosely-coupled distributed systems
Oct 2014
Hand coded assembly beats intrinsics in speed and simplicity
Apr 2014
Automated bug detection with analytics
Mar 2014
Editing binaries: easier than it sounds
Mar 2014
There is a gender gap in tech salaries
Mar 2014
Anonymous benchmark markets
Feb 2014
Why don't schools teach debugging?
Jan 2014
How much math do programmers need?
Jan 2014
How misaligning data can increase performance 12x by reducing cache misses
Dec 2013
PCA is not a panacea
Nov 2013
Why hardware development is hard, part 2: the physical world is unforgiving
Oct 2013
How to discourage open source contributions
Oct 2013
Why HN should use randomized algorithms
Sep 2013
How to write safe Verilog: become a PL troll
Sep 2013
Why hardware development is hard, part 1: Verilog is weird