/Drew DeVault

Four Principles Of Software Engineering tl;dr: Software should be (1) robust, handling edge cases, various user inputs (2) Reliable, working for an extended period of time "under design conditions," and outside those conditions too. (3) Stable, not changing in unexpected ways. (4) Simple enough to meet the other 3 goals, nothing more.

featured in #211


Web Browsers Need To Stop tl;dr: "At some point" browsers need to "stop adding scope and start focusing on performance, efficiency, reliability, and security at the scope" that already exists.

featured in #202


Dynamic Linking tl;dr: "Do your installed programs share dynamic libraries? Is loading dynamically linked programs faster? Wouldn't statically linked executables be huge?"

featured in #191


GitHub's New Notifications: A Case Of Regressive Design tl;dr: A critique of GitHub's new UI, which is currently being rolled out. It has more of an emphasis on notifications and more buttons. 

featured in #177


The Abiopause tl;dr: C clearly stands out as the "single most important and influential programming language." However, as you work with other languages a tension arises - "you’re stuck either writing bad C code or using poorly-suited tools to interface badly with an otherwise good API."

featured in #175


Hello World tl;dr: Drew counts the number of syscalls a language performs when printing "Hello World." This should take 2 syscalls but, for most languages, there's a lot more happening under the hood.

featured in #168


Developers Shouldn't Distribute Their Own Software tl;dr: Plethora of advice on building an engineering team for growth starting with the importance of culture. "Culture isn’t just about the 'feels', it’s about "accountability and behavior." 

featured in #165


Software Developers Should Avoid Traumatic Changes tl;dr: Two types of changes in open source software inflict trauma on communities. A change where everyone has to overhaul their code to get it to work again, or a change to get code idiomatic again. Drew shows examples of both of these in the Python community.

featured in #163


How To Fuck Up Software Releases tl;dr: Drew manages releases for free & open-source software, and consistently found ways of making a new mistake each time he shipped a release. Here he shares those mistakes to prevent them from recurring.

featured in #157