These are the hours of day famous programmers get work done

These are the hours of day famous programmers get work done

I was curious when the famous programmers do their work. And it is quite easy to find. The result of programmers work is a code. Code is stored in version control systems (VCS). When you put code in VCS the time is record.

One of the most popular version control system is git. When you put code in it you create the thing called “commit”. Here is an example of raw information about some git commit:

$ git cat-file commit 82be015
tree 496d6428b9cf92981dc9495211e6e1120fb6f2ba
author Ivan Bessarabov <ivan@bessarabov.ru> 1563188141 +0300
committer Ivan Bessarabov <ivan@bessarabov.ru> 1563188141 +0300

Initial commit

Here you can see commit message (“Initial commit”), info about ID that stores file structure (“tree 496d…”), name and email of commit author and the most interesting thing — the timestamp (1563188141) and timezone information (+0300) (every git commit has “author” and “commiter”, usually they are the same).

The timestamp is the number of seconds since 1st January 1970. If we convert 1563188141 to more human date we’ll get “2019-07-15 10:55:41” — that is the time in UTC timezone. Then we add “03” hours and “00” minutes to that time and get “2019-07-15 13:55:41” — that is the time the commit author can see on his wall clock when he did commit.

Some serious code that is stored in VCS has lots and lots of commits and a lot of commit authors. So we can write a simple program that will check all the commits to filter only the commits by one person get the local time of that commit and aggregate it by hour when the commit was make.

Linus Torvalds

Linus is the author of the Linux operating system, the author of the git VCS and the author of the less known program Subsurface (scuba diver tracking system).

Here is the graph with his commits hours to the repo https://github.com/torvalds/linux.

Linus makes an impression of a totally normal person. Most of the commits are made at 10. There are practically no commits at night.

00 – 61 *
01 – 21
02 – 20
03 – 13
04 – 28
05 – 116 *
06 – 263 ****
07 – 793 *************
08 – 1802 ******************************
09 – 2578 *******************************************
10 – 2963 **************************************************
11 – 2670 *********************************************
12 – 2257 **************************************
13 – 2085 ***********************************
14 – 2039 **********************************
15 – 2139 ************************************
16 – 1955 ********************************
17 – 1736 *****************************
18 – 1365 ***********************
19 – 1023 *****************
20 – 853 **************
21 – 577 *********
22 – 240 ****
23 – 128 **

And here is his commits to the project https://github.com/git/git:

00 – 9 ****
01 – 7 ***
02 – 4 *
03 – 0
04 – 0
05 – 0
06 – 0
07 – 20 ********
08 – 27 ************
09 – 90 ****************************************
10 – 108 ************************************************
11 – 112 **************************************************
12 – 97 *******************************************
13 – 73 ********************************
14 – 70 *******************************
15 – 104 **********************************************
16 – 77 **********************************
17 – 59 **************************
18 – 54 ************************
19 – 49 *********************
20 – 58 *************************
21 – 49 *********************
22 – 31 *************
23 – 19 ********

Sebastian Riedel

Sebastian is the author of two popular Perl frameworks: Catalyst and Mojolicious.

His work schedule is insane. I envy his productivity.

This is his commits to the https://github.com/mojolicious/mojo repo grouped by hour:

00 – 685 ***********************************************
01 – 553 **************************************
02 – 472 ********************************
03 – 414 ****************************
04 – 341 ***********************
05 – 334 ***********************
06 – 298 ********************
07 – 208 **************
08 – 147 **********
09 – 145 **********
10 – 198 *************
11 – 225 ***************
12 – 302 ********************
13 – 342 ***********************
14 – 488 *********************************
15 – 536 *************************************
16 – 630 *******************************************
17 – 678 **********************************************
18 – 723 **************************************************
19 – 641 ********************************************
20 – 626 *******************************************
21 – 628 *******************************************
22 – 686 ***********************************************
23 – 681 ***********************************************

Chris Lattner

Chris is the author of the LLVM compiler and the programming language Swift. He was working in Apple, for a short period of time he was working in Tesla and now he works at Google.

Looking to his commit distribution to the https://github.com/apple/swift repo it looks like he is a night person:

00 – 324 **************************************
01 – 185 *********************
02 – 79 *********
03 – 77 *********
04 – 265 *******************************
05 – 426 **************************************************
06 – 313 ************************************
07 – 116 *************
08 – 31 ***
09 – 40 ****
10 – 41 ****
11 – 46 *****
12 – 30 ***
13 – 48 *****
14 – 105 ************
15 – 126 **************
16 – 229 **************************
17 – 245 ****************************
18 – 237 ***************************
19 – 151 *****************
20 – 300 ***********************************
21 – 394 **********************************************
22 – 387 *********************************************
23 – 341 ****************************************

Rob Pike

The latest notable work of Rob is the Go programming language. Here is the graph for his commits to the repo https://github.com/golang/go:

00 – 29 ****
01 – 1
02 – 1
03 – 5
04 – 0
05 – 5
06 – 19 **
07 – 62 *********
08 – 80 ***********
09 – 126 ******************
10 – 240 ***********************************
11 – 338 *************************************************
12 – 184 ***************************
13 – 339 **************************************************
14 – 317 **********************************************
15 – 301 ********************************************
16 – 264 **************************************
17 – 224 *********************************
18 – 73 **********
19 – 69 **********
20 – 91 *************
21 – 79 ***********
22 – 64 *********
23 – 51 *******

Brad Fitzpatrick

Brad is the author of LiveJournal, he has created memcached and now he is working on the Go programming language.

Here is the graph when he had commited to https://github.com/memcached/memcached:

00 – 11 ********************************
01 – 10 *****************************
02 – 17 **************************************************
03 – 7 ********************
04 – 7 ********************
05 – 13 **************************************
06 – 8 ***********************
07 – 8 ***********************
08 – 2 *****
09 – 0
10 – 3 ********
11 – 1 **
12 – 0
13 – 0
14 – 0
15 – 0
16 – 4 ***********
17 – 8 ***********************
18 – 9 **************************
19 – 9 **************************
20 – 12 ***********************************
21 – 10 *****************************
22 – 11 ********************************
23 – 14 *****************************************

And for the Go language https://github.com/golang/go:

00 – 44 *************
01 – 30 *********
02 – 26 ********
03 – 24 *******
04 – 26 ********
05 – 27 ********
06 – 21 ******
07 – 38 ***********
08 – 68 ********************
09 – 114 ***********************************
10 – 145 ********************************************
11 – 160 *************************************************
12 – 124 **************************************
13 – 130 ****************************************
14 – 148 *********************************************
15 – 160 *************************************************
16 – 162 **************************************************
17 – 158 ************************************************
18 – 143 ********************************************
19 – 127 ***************************************
20 – 104 ********************************
21 – 100 ******************************
22 – 115 ***********************************
23 – 69 *********************

Rasmus Lerdorf

The first developer of the PHP programming language.

https://github.com/php/php-src (this repo does not have the first PHP version, so this is worktime statistics on the recent PHP versions):

00 – 55 **************************
01 – 29 *************
02 – 21 **********
03 – 28 *************
04 – 42 ********************
05 – 52 *************************
06 – 41 *******************
07 – 22 **********
08 – 44 *********************
09 – 56 **************************
10 – 37 *****************
11 – 25 ************
12 – 30 **************
13 – 43 ********************
14 – 67 ********************************
15 – 71 **********************************
16 – 104 **************************************************
17 – 104 **************************************************
18 – 99 ***********************************************
19 – 56 **************************
20 – 56 **************************
21 – 82 ***************************************
22 – 96 **********************************************
23 – 78 *************************************

Guido van Rossum

Benevolent dictator for the Python programming language https://github.com/python/cpython:

00 – 346 *****************
01 – 233 ***********
02 – 304 ***************
03 – 247 ************
04 – 229 ***********
05 – 126 ******
06 – 67 ***
07 – 52 **
08 – 107 *****
09 – 186 *********
10 – 200 **********
11 – 230 ***********
12 – 317 ***************
13 – 572 ****************************
14 – 844 ******************************************
15 – 994 **************************************************
16 – 899 *********************************************
17 – 801 ****************************************
18 – 815 ****************************************
19 – 789 ***************************************
20 – 818 *****************************************
21 – 749 *************************************
22 – 750 *************************************
23 – 517 **************************

Fabrice Bellard

He has created FFmpeg, QEMU, the Tiny C Compiler and recently he has created QuickJS:

Here is his working hours on the https://github.com/FFmpeg/FFmpeg project:

00 – 17 *******
01 – 4 *
02 – 1
03 – 0
04 – 6 **
05 – 5 **
06 – 0
07 – 4 *
08 – 4 *
09 – 15 ******
10 – 20 *********
11 – 10 ****
12 – 13 ******
13 – 41 ******************
14 – 47 *********************
15 – 23 **********
16 – 44 ********************
17 – 51 ***********************
18 – 50 ***********************
19 – 30 *************
20 – 31 **************
21 – 46 *********************
22 – 108 **************************************************
23 – 43 *******************

Ivan Bessarabov is a developer. This article was originally published on his blog.

Read next: PUBG's lite version for India works on budget phones and comes in under 400MB