His original C app was about 6k, and 3k when stripped of debug symbols. Not content, he switched to assembly, which got him down to ... nah, I won't spoil the rest. ;)
That's dynamically loaded, try it with the runtime
$ gcc hello.c
$ ls -l a.out
-rwxr-xr-x 1 maht maht 4511 Oct 11 16:38 a.out
$ gcc --static hello.c
$ ls -l a.out
-rwxr-xr-x 1 maht maht 574106 Oct 11 16:38 a.out