2016 certainly did become the year that was, with a series of unfortunate events leading to the internet becoming quite morose and anachronistically blaming an arbitrary timescale for their misery. It’s basically become The De-facto Most Unpopular Year On The Internet.

2016, like any other year, had its share of misery but also happiness and good times. With good times came a swathe of truly excellent deep online reads that influenced my perception of the world as it currently is.

This year I’m limiting the list to five posts to really squeeze out the best quality articles and I’ve identified the themes addressed in each of them. If you’re keen on one of these themes, I’d recommend giving the article a read.

Additionally, I keep a feed of what I’ve been reading at readings.mitchellbusby.com. If you’re curious about what I’ve read throughout the year, check it out.

Here’s my list of the top five things that I read last year, the year of 2016.

  • Debugging your operating system: a lesson in memory allocation

    Cory Benfield

    This article highlights the leaky abstractions found in high level programming languages like NodeJS and Python - the author had to drop down to C level code to work out why a PyOpenSSL function sporadically took longer with a certain file size range, and it came down to how malloc memory allocation is performed on macOS.

  • How to be* a compiler - make a compiler with Javascript

    Mariko Kosaka

    An awesome and super accessible article introducing the basic principles of how a compiler functions. If you, like me, have studied software development in a high school theoretical setting, you may have been told about the process of compilation from a high level. But it wasn't till this article which really cemented in my mind how that process works in practice. The author does this in a deft manner without patronising or assuming knowledge of the user beyond a basic understanding of Javascript, which was refreshing.

  • The algorithms of discrimination

    Red Queen Coder

    I felt like this year was the one that brought to my attention the severe lack of quality recruitment practices within the software engineering and development domains. This article highlights how those "puzzle" algorithm and coding questions are rarely indicative of quality in a hire and lead to discriminatory practices against those who didn't undertake tertiary education in computer science. Banal questions about binary search trees that have very little relevance to the average web developer's competency in their role, are commonplace. An excellent read and a brave move - it's hard to criticize the industry without risking one's career in said industry, and very few others have covered the discrimination aspect.

  • Next Time Someone Shouts “Freedom Of Speech”, Send Them This Factual Takedown Of Why They’re Probably Wrong

    Dan Grover

    With the US election coverage reaching saturation in the second half of 2016, you'd be forgiven for almost forgetting it was also an election here in Australia. One area of debate around the election was the repealing of an anti-hate-speech law, Section 18C of the Racial Discrimination Act. This article tersely and concisely combats the argument that such a law harms the way of life and freedom of speech of the average Australian. Rarely is a headline so accurate in describing what it covers.

  • More Chinese mobile UI trends

    A follow-up to Dan Rover's 2014 article addressing the mobile UX trends he found in the Chinese market that differed to the Western markets, this article is a timely reminder to be open when designing user interfaces and consider the impact their choices will have when used by different people. We also have a lot to learn by what works in China's mobile market, and these trends are things I find absolutely fascinating in their implementation.