The Wisdom of James Mickens

James Mickens offers his timeless insights for free, because he loves you and he wants you to succeed. Please enjoy the undeniable masterpieces which are collected below.

Latest: Watch my NDC Sydney 2016 talk (, whose historical importance has already resulted in several bridges being named "The Historical Importance of James Mickens at NDC Sydney." All of these bridges are amazing and you should drive over them in awe.


USENIX Articles

Danger. Adventure. Cryptic error messages. These are some of the things that inspired me to become a computer scientist. I’ve been a legendary hacker for 98% of my life, but there was a brief period when I did not possess the sum totality of human knowledge. In those formative days, I made mistakes, just like you. I wandered the streets, coding for cheap thrills, dereferencing NULL pointers in front of the police and daring them to arrest me. I used exponential running time algorithms when linear alternatives existed, because you can still raise venture capital for an app that only does half of what it should do before it crashes and wedges your entire phone. I proved that P equals NP, and then I gave the proof to an extra from “Blade Runner” in exchange for what I later discovered was not, in fact, a lock of Nicolas Cage’s hair. I used object-oriented programming languages but only called static methods because abstraction is oppression and only The Man uses virtual function tables. I’ve lived a thousand lives, and I have the carpal tunnel syndrome to prove it.

When USENIX asked me to write about my experiences as a computer scientist, I immediately accepted the opportunity to bemoan the state of the world and settle old grudges with ancient enemies. I wrote six articles for USENIX, and these articles collectively form a breathtaking magnum opus on science, philosophy, and the reasons why JavaScript is horrible. Like a petty, sarcastic version of Neil deGrasse Tyson, I will explain the universe to you. Let’s science together, for America and for the children.

The Saddest Moment: Using linear algebra and a shot-by-shot analysis of “Pulp Fiction,” I prove that any distributed system will be broken 93% of the time. In the remaining 7% of the time, the system will respond to your requests, but it will hang out at skateboard parks and listen to disreputable music.

A Hornet’s Nest: Many people say that mobile devices are the future. Apparently, the future is composed of devices that are shaped like optimally droppable objects, and whose sole purpose is to hold a charge for 17 minutes before transforming into a cellphone-sized pocket stone.

The Slow Winter: It's difficult to make transistors any smaller because nature hates us and quantum mechanics are stealing our voltage. Perhaps we should return to the abacus; sometimes, the old ways are the best ways.

The Night Watch: Even as we speak, systems programmers are doing pointer arithmetic so that children and artists can pretend that their x86 chips do not expose an architecture designed by Sauron.

This World Of Ours: Wherein it is revealed that 1024-bit keys cannot prevent people from sending their credit card numbers to Nigerian princes. (I think that 1025-bit keys might solve the problem, but nobody listens to my common-sense advice.)

To Wash It All Away: Network-accessible applications seemed like a good idea. Then somebody invented JavaScript, HTML, and CSS. THE DREAM BECAME A NIGHTMARE. Unless you like buggy, standards-hating web browsers, in which case, hey, cool dream.



Conference Presentations

Title: "Computers are a Sadness, I am the Cure"

Venue: Monitorama 2014

Abstract: Young people often come up to me and say that “the cloud is the future.” This is proof that young people are idiots. In this talk, I also describe why the middle aged people who built the cloud are idiots. I don’t say anything bad about old people, mainly because I love their charming stories and their delightful insistence that ATM machines were created by the Devil.

Video link:


Title: “Life is Terrible: Let's Talk About the Web”

Venue: Oredev 2014

Abstract: It’s been known for years that JavaScript is a dangerous, unholy language that is banned in 27 countries and most fine restaurants. In this talk, I will use deeply personal and completely biased examples to describe why I hate JavaScript. I will then provide additional reasons why the entire web stack is a thing that should not be tolerated by moral human beings. I will also describe some of my futile research efforts to make web browsers moderately less the worse thing ever.

Video link:


Title: “Not Even Close: The State of Computer Security”

Venue: NDC Oslo 2015

Abstract: In this bleak, relentlessly morbid talk, James Mickens will describe why making computers secure is an intrinsically impossible task. He will explain why no programming language makes it easy to write secure code. He will then discuss why cloud computing is a black hole for privacy, and only useful for people who want to fill your machine with ads, viruses, or viruses that masquerade as ads. At this point in the talk, an audience member may suggest that Bitcoins can make things better. Mickens will laugh at this audience member and then explain why trusting the Bitcoin infrastructure is like asking Dracula to become a vegan. Mickens will conclude by describing why true love is a joke and why we are all destined to die alone and tormented. The first ten attendees will get balloon animals, and/or an unconvincing explanation about why Mickens intended to (but did not) bring balloon animals. Mickens will then flee on horseback while shouting “The Prince of Lies escapes again!”

Video link:


Title: “It Was Never Going to Work, So Let’s Have Some Tea”

Venue: USENIX LISA 2015

Abstract: It’s difficult to administer large systems. In this talk, Mickens will argue that we should just give up. Instead of asking large systems to do anything at all, we should focus on less quixotic goals like turning lead into gold, or stopping Pokémon from having delightfully idiosyncratic magic abilities. Using case studies involving popular systems for version control and automatic OS updates, James Mickens will gradually make himself more and more depressed, and then he will tearfully answer questions in a way that makes everybody feel awkward. Mickens will then sign copies of his book. Note that Mickens has not written a book.

Video link:


Title: "Life As A Developer: My Code Does Not Work Because I Am A Victim Of Complex Societal Factors That Are Beyond My Control"

Venue: NDC Sydney 2016

Abstract: "What are the best practices for shipping high-quality software?" This question is an example of a question that I will not answer in my talk. Instead, I will describe why any software project that contains more than 10 lines of code is guaranteed to fail. Using my fragmentary knowledge of the laws of thermodynamics, I will explain why code is like a proton that must ultimately turn into a crystal or, uh, whatever it is that thermodynamics says will happen. I will demonstrate how unit tests, functional programming, and UML diagrams fail to address the primary source of software failure (namely, that software is an inherently bad idea because our brains evolved to hunt giant sloths with primitive stone tools, and MongoDB only partially resembles a giant sloth). I will conclude the talk by luring a group of agile programming experts into a large cardboard box using a collection of buzzwords like "evolutionary development" and "cross-functional team;" once captured, they will be forced to implement obscene, poorly-specified COBOL algorithms as I laugh maniacally and disable my compiler warnings.

Video link:


Reddit AMA

On January 19, 2015, I did a Reddit AMA (“Ask Me Anything”). I had a fun time, and I managed to escape without causing any international incidents. [If anybody asks you where I was when Argentina briefly declared war on Papua New Guinea, I WAS AT YOUR HOUSE.]