This is the first part of the series of blog posts about the data we’ve gathered on Hacker News' "Who is Hiring" thread.

However, before we get into the numbers, tables, and charts, let's start with a short story about the thread itself. If you are not too sentimental feel free to scroll!

The thread series, about

If this hasn’t been obvious yet, the “Who is Hiring” thread, or a series of threads actually, are a part of the Hacker News website. If you are not familiar with the site, don’t be fooled by its looks. The humble looking page is similar to Reddit, but for IT people. It is also worth noting that it wasn't designed with a 101 HTML course, and even then, pretty darn smart people are behind the YC combinator project. I'd say the phrase 'standing on the shoulder of giants' fits well for this context. YC happens to be one of the largest tech-accelerators out there, but that is a whole different story.

Every important information around programming and IT industry in general, has to go through the Hacker News website. You might not like the UI, me neither, but "content is the king" there. Personally, I find the quality of the links and comments pretty high and believe me, I'm not the only one of that opinion.

As for the the thread itself, in the current form, it has been a part of the website since April 2011. Nowadays, it is being curated by a script. A program that is connected with the whoishiring user takes care of its life cycle. The idea is quite simple really. The account automatically posts a "Who is Hiring?" link at 11 AM Eastern Time on the first weekday of every month. After that, all users having active accounts on Hacker News can leave a comment on it, which effectively forms a list of job posts. That is pretty much it, and the mechanism works surprisingly well. As of last month April 2016) it would have been 5 years since the first automated version appeared back in April 2011.

It is worth a mention that even before the "whoishiring" account existed, the custom of creating the thread was already there. However, it wasn't regulated and was a bit spontaneous as well. For more information on that, please follow this entry. There were no rules and no structure for the thread. So we had a few local editions like Germany, Australia and India. Even a few editions for interns were there as well. Moreover, the threads weren't posted at regular intervals, which resulted in different users posting a new "Who is hiring" according to their needs.

The search for the very first occurrence of the "Who is Hiring" phrase led me to August 20, 2009. However, even that post has references to something before itself.

The numbers, tables, and charts ahead

The main trend, as expected in the fast pace industry like the startup one, is that new languages tend to take over the long established ones. A more (or not) surprising trend is that some of the incumbents are far more versatile than others. So while we can see a rapid growth of Go jobs, it’s mostly at the cost of other "trendy" languages, like Ruby, and not "industry standard" languages like Python or JavaScript.

Disclaimer: We are looking only at one source - The "Who is Hiring" thread from Hacker News. While the thread itself is a pretty good source of information, it tends to focus mostly on the Startup part of the entire IT industry. Attempts to extrapolate the trends presented here to the industry as whole can be slightly misleading.



To start with, let’s look at the total submissions for the “Who is Hiring” thread

SELECT count(*) FROM items WHERE source = 'hn';



And submission number over last 5 years, starting in April 2011.

Using some regex and text entity extraction, we found the occurrence numbers for most popular languages. Also, it has to be noted that some "guessing" problems could've taken place in case of languages like R, C and D along with Go obviously (Google, thanks for naming your language Go)

Let's break this down further and look at each language, trying to understand what happened over the last 5 years.

Note: Numbers on the charts bellow are presented as a fraction, for instance: 1 would mean the language appeared in all job posts, 0.5 in 50% of them, Also charts can be adjusted by turning on/off options using legend click.

Maybe, unsurprisingly, the top 5 choice is relatively constant with Python and JavaScript leading the pack and can be a safe choice to learn these days. The rise of Go (again Google thanks for making it hard to grep for) also seems like a trend that’s there to stay. The relative drop in SQL is likely explained by the proliferation of various ORM technologies and / or non-relational databases, that take away the need to write raw SQL. On the other hand, at least in the startup industry, learning languages like PHP (which is still used at Facebook) or Perl seems like a far less safe choice. Surprisingly the drop for Ruby is also noticeable.

PHP

Perl

Ruby

Recent Languages

Based on my subjective feeling of importance, I've decided to pick up few recent languages for a closer look. On the chart below, the rise of demand among the posts is presented for 5 languages: Go, Swift, Elixir, Rust and Julia.

Now let's try and look inside each of the languages and break them down a bit more. Each chart will be appended with the following information:

The very first commit recorded for the language

The first stable release,

The first comment with a job post.

These time points should provide some on perspective how long it takes to develop an industry-accepted language.

Go(lang)

First commit: 3 Mar 2008 and also [1], [2], [3], [4] which seem to be irrelevant, funny though.

Stable release: March 28 2012

First job post: April 1 2011 a note, Go could appear before that, the data available go as far as April 1 2011.

Swift

First commit:July 18 2010

Stable release:September 17 2014

First post:July 2 2014

Elixir

First commit: Jan 9 2011

Stable release: May 24 2012

First post: January 2 2014

Rust

First commit: June 16 2010 , with a note

Stable release: May 15 2015

First post: July 2 2015 , but also March 2014 and February 2015 by Mozilla (language creator) to work on Rust itself

Julia

First commit:August 23 2009

Stable release: Julia hasn't reached 1.0 / sable release

First post: 15 Feb 2014

The interval between the first commit, the stable release and the first job post recorded are presented below.

diff from first commit stable release Go(lang) 1124 -362 Swift 1444 -78 Elixir 884 618 Rust 1842 48 Julia 1637 NA

Values below zero mean that the language was picked up by the industry even before the language-owning-entity actually decided that it could be marked as stable. Again do keep in mind that the idea of a 'stable release' is extremely subjective. Some developers, communities and companies might have their own reasons to decide what is better for them. However, usually stable would mean that some target of solved bugs was met along with some number of features being implemented along with a limited syntax freeze.

The take away from this is: it takes darn long to deliver industry ready compiler or interpreter.

Changing of the Guard

I've decided to go a few more steps with Swift and pick one more thing that could be noticed on the chart with all the languages aggregated, but could be easily missed.

Apple announced the stable release of Swift on the 17th of September 2014 as a replacement of Objective-C. It looks like that swap on the market could be happening as this post is being written. Of course Objective-C will stay for a while on the market, but probably there will be still a huge demand for Objective-C developers to maintain legacy code, and some companies will decide to wait before making the decision to move on. However, it would be interesting to wait and see if Swift will push Objective-C completely out of the market at some point in the future.

Also due to Apple's decision of releasing Swift as an Open Source product, we could expect to see that the demand will rise for Swift developers on not only just the Apple platform's products.

Ok, this is enough for the first part. The next part should appear shortly. If you have any comments you can let me know on twitter @sebapawlus or @whoishiringio or old school mail@whoishiring.io.

Special thanks for @fijall, @harisibrahimkv, @jqbj, @rmldsky for comments and edits.