Archive for the ‘Work’ Category

Some Updates

Thursday, March 12th, 2015

I recently switched a job internally after working on Hadoop and Azure for about 3 years at Microsoft. The followings are cited from the farewell note I sent to my old colleagues.

I thought mapreduce was interesting when I first learned Hadoop in school on Linux. When I joined Microsoft after school, it never occurred to me Microsoft would have anything to do with Hadoop let alone Linux. Incredibly, this is where HdInsight is at now, and I was part of it. It is a great and humble learning experience for me to build and grow the first hosted Azure service of open source software and then Linux from very beginning, and I felt lucky for that.

Now begin to build something new!

C# Links

Tuesday, December 9th, 2014

Periodic Execution in .NET: This is the best implementation note I found of the common pattern to run tasks periodically.

Implementing the Singleton Pattern in C#: I actually found singleton not all that useful. The article is a good discussion of many C# features nonetheless.

2013 Work in Retrospect

Wednesday, December 25th, 2013

Depending on one’s perspective of Microsoft’s attitude towards Java and open source, it may considered an rather odd case that I mostly worked on Java and open source at Microsoft in the past year. Or more specifically, I worked on the Apache Hadoop project. I fixed some test and product issues, participated in some research/incubation project, as well as certain aspects of the Microsoft’s service offering of Hadoop — Azure HdInsight. I am not sure what I can say or cannot say about my work without violate the company policy. But all my work on Apache Hadoop is public and can be viewed here.

Beyond the work around Hadoop, I did not make much progress in some other projects that I am interested. I did not get the chance to study the deep learning which seems an interesting new trend in machine learning which also got some traction in industry. This will definitely be on my todo list for the coming weeks.

Why Not Port Microsoft SQL Server to Linux

Thursday, July 28th, 2011

I just read a blog post from a former SQL Server architect explaining their original decision making process around the issue of porting Microsoft SQL Server to Linux. I have worked at Microsoft on SQL Server for about a year now. This answered some questions I have in mind for some time, and I just can’t agree more with his writing. I can share some of my own thinking here.

Before I join database group at Microsoft, I am a heavy Linux user. I played PC games on Windows 98/XP in high school and college; My first programming course used Visual C++ 6.0 on Windows XP; and, that is all. The rest of my projects are mostly done on Linux. My first encounter of Windows 7 and Microsoft’s server line products happened the first day I worked at Microsoft. How I adapt to the Windows environment is another story. (It is much less difficult than I thought, and I really begin to appreciate the amazing WinDbg.)

Since I began looking at the SQL Server source code, an obvious question came to my mind. How much work was required to port the code to Linux? After all, I was more familiar with GNU/Linux API than with Windows API at the time. To my surprise, the core database engine actually does not have so much OS specific code. Given the Wine project, I suspect it may only took one or two months of work to do the port. Then another question comes to my mind: how much work is required to support the alternative product? My conclusion is that it is almost impossible without changing how we current organizing the engineering effort around the product. For example, it will require a lot more efforts to develop test infrastructures that matches existing test tools on Windows. The only solution I can think of is to have an entire team that dedicates to this new product. The Linux product possibly also need a new business model. Then with so many open source alternatives on Linux, I am a little pessimistic such a product can be very successful in the market.