Welcome to my personal website! I am glad to hear what brings you here. Do not hesitate to share in the comment below!
Who am I?#
I am a machine learning engineer who is passionate about solving real-world problems. I am currently working in E-commerce search using Elasticsearch, GCP Pub/Sub and Python.
In the past, I have been working on various vision-related projects, ranging from image retrieval, OCR, document image analysis and reconstruction, to video fingerprinting/deduplication.
I am also a FOSS lover and a Neovim enthusiast in particular, sharing tips and tricks on using Neovim.
GitHub: https://github.com/jdhao
Stack Overflow: https://stackoverflow.com/users/6064933/jdhao
Things I like#
I enjoy programming. I am most familiar with Python and fairly proficient in using Numpy, Matplotlib and others. I use Pandoc to generate beautiful document from my daily notes.
My favorite editor is Neovim. I have been using Neovim for everything related to text editing, e.g., from writing Python to editing my notes, for over three years. My Neovim config is here. I frequently write posts about Nvim.
I am a big advocator for Stack Overflow. Thanks to all these wonderful guys on Stack Overflow, I really learned a lot. You can find me on Stack Overflow most of the time.
I enjoy reading fictions, non-fictions (science, biography, history) etc. One of my long-time favorite is Note of Hiding in the East by Pu Zong, which depicts the lives of academics of China’s top university during the WWII, in the remote south western province Yunnan.
I enjoy listening to songs by Cheer Chen and Deserts Chang.

How is this blog built?#
This blog is created using static blog generator and hosted by the wonderful GitHub pages service. Currently, I am using Hugo for its high performance. I am also using utterances as my comment system. Previously, I have been using Hexo to build this blog. Migration process is recorded here.
I have also shared how I manage my blog in this post.
How to contact#
My Email: jdhao at hotmail dot com. You can also comment on my posts using the builtin comment system.
FAQ#
Q1: Why do you have those annoying ads on your blog?
A1: Because hosting the images on this site costs money monthly. I need to make ends meet by using ads.
If you do not like ads, you can use ad blocker to block those ads.
Q2: Why do you write your blogs?
A2: The reason is two-fold.
First and foremost, most of my knowledge here come from the free resource shared by numerous other people.
Sharing my knowledge here can act as a contribution to the Internet and help other people.
Second, my blog servers as a public note so that when I want to check specific detail about a subject,
I can find it easily via search engine.
Q3: Are you interested in optimizing your blog?
A3: No, I am not interested.
I constantly get emails stating that my blog is ill-optimized for mobile devices or has design issues.
To those people, I do not intend to do the so-called optimizations.
Do not email me, and I will not respond to these kind of emails.