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.

Recent: Watch my keynote from O'Reilly Velocity 2019 (https://youtu.be/4vd2rCBjHp8), in which I describe why I am constantly disappointed by most technology. Note that I am also constantly disappointed by the weather, but at least the weather doesn't enable third-party cookies.

Tenure Announcement

I received tenure in April 2019! See here to learn more about my transformation into a magnificent supernova composed of pure tenure particles. Now that I transcend space and time, it will be much easier for me to escape committee meetings that I don't want to attend. However, despite the fact that I now exist in seven dimensions, I still expect my male students to regularly interrupt lecture to ask questions that I would have answerd literally on the next PowerPoint slide if only I had been given a chance to spread my wings like the delicate pedagogical butterfly that lives in my heart.

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: https://vimeo.com/95066828

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: https://vimeo.com/111122950

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: https://www.youtube.com/watch?v=tF24WHumvIc

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: https://vimeo.com/146524997

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: https://vimeo.com/180568023

Title: "Q: Why Do Keynote Speakers Keep Suggesting That Improving Security Is Possible?

A: Because Keynote Speakers Make Bad Life Decisions and Are Poor Role Models"

Venue: USENIX Security 2018

Abstract: Some people enter the technology industry to build newer, more exciting kinds of technology as quickly as possible. My keynote will savage these people and will burn important professional bridges, likely forcing me to join a monastery or another penance-focused organization. In my keynote, I will explain why the proliferation of ubiquitous technology is good in the same sense that ubiquitous Venus weather would be good, i.e., not good at all. Using case studies involving machine learning and other hastily-executed figments of Silicon Valley’s imagination, I will explain why computer security (and larger notions of ethical computing) are difficult to achieve if developers insist on literally not questioning anything that they do since even brief introspection would reduce the frequency of git commits. At some point, my microphone will be cut off, possibly by hotel management, but possibly by myself, because microphones are technology and we need to reclaim the stark purity that emerges from amplifying our voices using rams’ horns and sheets of papyrus rolled into cone shapes. I will explain why papyrus cones are not vulnerable to buffer overflow attacks, and then I will conclude by observing that my new start-up papyr.us is looking for talented full-stack developers who are comfortable executing computational tasks on an abacus or several nearby sticks.

Video link: https://www.youtube.com/watch?v=ajGX7odA87k

Title: "My Love Letter To Computer Science Is Very Short And I Also Forgot To Mail It"

Venue: O'Reilly Velocity 2019

Abstract: In this presentation, I explain the signs that a tech idea is bad. The best indication is that the idea involves technology or is liked by someone who likes technology. After encouraging all venture capitalists to return their equity to Satan (the ultimate source of their power), I will awkwardly admit that the equity should have been cast into a black hole instead of being concentrated in the hands of a single demon lord. The audience will agree that hindsight is 20/20, and I will keep my generous severance package. There will be a lemonade break to allow any overpaid software engineers to drive up housing costs in their local neighborhoods. I will probably run out of lemonade because my ML model for predicting lemonade demand doesn’t actually encode any fundamental insights about the lemonade market. At the after-party, there will be a contest to see who can pretend to like Rust the most. Everyone will be a winner.

Video link: https://youtu.be/4vd2rCBjHp8

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.]