About Ching Chang

Ching in ThailandWelcome to my online home. I'm Ching, your host on geekizen.com. I started this website to experiment with ASP.NET MVC and then later decided that I might as well turn it into a technical blog where I babble on whatever I believe is interesting. I'm not sure why I picked the name geekizen, except that I'm a geek, I need more Zen in my life, and that the domain name is available.

My Journey

Born and raised in Hong Kong, I came to United States for college when I was 17. I got my Bachelor degree in Computer Science from University of Wisconsin - Madison where I spent my junior year working for Datex-Ohmeda - a local company in Madison that manufactures critical care equipment. It was my first industry experience. I wrote test automation that hooks into the hardware board of an anesthesia machine in order to turn its knobs and read sensor data. It was fascinating to watch as the latex lung connected to the anesthesia machine inflates and deflates on the commands of my test program.

After graduating from college, I went to Boston University to pursue a doctoral degree in Computer Science. Theoretical computer science is challenging and fun, but soon I realize what gets me excited the most is writing applications that people can actually use, see, or touch. The passion led me to compete in Imagine Cup 2005 (an annual collegiate software contest organized by Microsoft) and I won a place amongst the top 10 US Finalists. Inspired by the devastation the tsunami caused in South East Asia that year, I created a disaster communication system that let users broadcast urgent information via text messages to their friends' cell phone or email, much like Twitter nowadays (without the urgency). I knew I was onto something! Next thing I know, I was invited to a full day of grueling interviews with Microsoft. Weeks later, I wrapped up my master thesis, packed all my things, and flew to the Pacific Northwest with my cat. My master thesis was on utilizing reference locality to optimize the performance of join algorithms between data streams.

Into the "Real World"

For three years, I was a part of the managebility team in SQL Server (Management Studio). It was awesome to work on a product that is visible to thousands/millions of customers, but I was tired of spending all day twiddling my thumbs due to the heavy processes associated with being in such a gigantic development team. So I moved to a "start-up" (if such thing still existed at Microsoft) team within SQL Server - Parallel Data Warehouse where I am the sole developer building a web-based administration console for the product.

I love designing user interface. I know it doesn't sound as hardcore as, say, kernel programming, but developing the UI for a large enterprise software is not just drag-and-drop-a-few-textboxes-on-a-winform-and-we-are-done. Think about how you would build and maintain a thousand dialogs that needs to enumerate thousands of objects efficiently. There is a lot going on behind the scene. I feel that, sadly, user experience is often overlooked and undervalued in the enterprise space. But the exciting thing is that I get to define how the customers are going to interact with the product - an experience that can drastically influence how the product is perceived overall.