About Me

Who am I?

My Name is Rex Shen, I’m a Chinese. So “Shen” is my family name. Next time you see me, please just call me “Rex”, OK?^)^

We Chinese people like to call someone by his/her family name, rather then the first name. For example, elders call me “little Shen”(小沈), and youngers call me “big Shen”(大沈). The Pronunciation of Shen(沈) is similar to “神”(God) in Chinese, and “Big God”(大神) in Chinese means “guru”, so “little Shen”(小神) indicates that I’m good at something. Well, I’ll be happy if “little Shen” and “big Shen” followed these explanation. But that’s not the fact, sadly. The pronunciation of “沈” is same as “婶”(aunt) in Chinese, “big Shen” is always interpreted as “大婶”(an old woman). What? I am an old woman now? But just last moment I was a male GURU, how huge change it is! God! I feel like I am dropping from Heaven to Hell! So, do NOT call me “Shen”(婶) , OK?^@^

Alright, the paragraph above is just a Chinese-style of humor. If that couldn’t make you laugh, the possible reasons are:

  1. You are a Chinese and my English is pretty poor
  2. You are a Chinese and your English is poor
  3. You come from an English speaking country and you don’t buy such joke
  4. That is not a joke at all(the most probable reason?^$^)

I’m a Unix Fan

I love Unix-like OS. Ubuntu had been my primary desktop OS between 2008 to late 2013, until I bought an MBP. OSX is my desktop OS since then. The animations from compiz or OSX are really amazing, apt-get and howebrew are really handy tools, and most importantly, there are plenty of command line tools so that most of my work can be done in terminal.

For me, a Unix-style life is: do things conviniently and concisely in the terminal.

VIM vs. Emacs

I used to be a firm VIM user, because it is awesome but handy. Emacs has longer start up time, inconvinient search funtionality, and many other disadvantages compare to VIM. But there are features that I can’t refuse from Emacs, for example, the org mode.

So I use both of them now. When I want to write notes, articles or source code, I always use Emacs. When I need to view or edit a single file from terminal, VIM is absolutely the best choice.

I Love Open Source

Open Source programs take up the most important part of my computer: Linux, Bash, Busybox, VIM, Emacs, Boost, Thunderbird, WebKit, Firefox, GCC, LLVM, OpenSSH, Ubuntu, Android, and many more.

Because of Open Source, we can get a lot of awesome software for free, we can build our own software quickly and efficiently, people from different parts of the world can contribute to the same project, and anyone that eager to learn can easily find out an example.

I really appreciate the Open Source Movement and I’m willing to share my own code and knowledge.

Here is my github page: https://github.com/tiger-flying.

I’m an Experienced Embedded Software Developer

Dated from July 2009 to August 2013, I had worked in a starup company, where I dedicated almost all my time to develop Network Based Set-Top Box products. During the four years, I have learned:

  1. How to write Web Apps for Set-Top Box
  2. How to implement a browser base on WebKit
  3. How to extend functionalities to Qt browser
  4. The basic concepts of WebKitk and how to write NPAPI plugins
  5. Basic concepts and knowledge about bootloader(u-boot), linux kernel and drivers
  6. How to port BSP to a platform
  7. Device network configuration and management(DHCP, DNS, etc.)
  8. Basic concepts on Streaming and Codec
  9. How to implement Apple HLS protocol
  10. Android basic and how to fix bugs in Android

Recently I had successfully ported AOSP(Android Open Source Project) to Nvidia’s Jetson TK1. It is a personal project that I set up to help me dive into Android. I’m not the guy that believe Android will stay hot in the next ten years, but it is undeniable that Android save us a lot of effort to build a product, and more importantly, Android is open source and well documented so that I can learn a lot from it.

Thanks to the increasingly performance and functionalities of SoC, now we can do many amazing things on embedded systems. The gap between PC programming and embedded system programming is getting smaller and smaller, I believe that some years later, there will be no obvious gap between the two. From this point of view, I’m struggling to learn more and deep, in order to embrace any changes in the future.

I Love Travelling

Once you have seen the beauty, you can’t stop seeing more.

I had ever spent months to travel, met different kinds of people, saw many different beautiful sights. Travelling is not just a way to relax yourself, it’s more than that. It is a good way to know and feel the world, it is a good way to make friends, it is a good way to open your mind, and it is also a good way to challenge yourself and gain a better understanding of yourself.

I love travelling. I have a dream, that one day I can see all the most beautiful sights of the world.