It’s time I started blogging here again on a more regular and frequent basis.


I’m working on Windows Embedded, which is the embedded version of desktop Windows. This is not the same as Windows CE which is targeted at smaller devices of different architectures although the products are part of the same business division here at Microsoft. This page on helps describe the family of Embedded products. Windows Embedded Standard 2009 is the current product offering from the team I work on and is based on Windows XP.

One site that is interesting to watch is which comes up with some fascinating devices that use Windows Embedded. Another useful bog is the team one at


As announced last November the next version of the product is codenamed Quebec and will be based on the Win7 codebase. There’s a pretty good presentation on Quebec on Channel 9 given by my boss Shabnam at the PDC last year. When I joined the team last year we were working on a Vista based version of the product but quickly moved to base the product on Windows 7 so that we are more aligned with the current offering of desktop Windows on which we are based. I’ve been playing with Win7 and am excited to see this product ship.

If you want to learn about Win7 then the Engineering Windows 7 blog is a great read and if you like online talks the PDC sessions are online. There’s some great stuff there on things such as Direct2D, Power management etc. that are all going to go towards the success of Windows 7.


So what am I doing on this Win7 based embedded product? I’m working on an area called componentization where we are packaging up the parts of the Windows OS into functional chunks that someone might choose to use in their embedded image. One of the challenges with that is that we want to make sure we don’t have so many packages that it is confusing for someone to build an image that is functional but at the same time we want to ensure that the packages aren’t so big that they incorporate functionality that is not necessary in a customer’s image. If the package has unnecessary functionality in it then that may lead to a much larger image and therefore larger hardware requirements than are truly required. It may also lead to larger surface area for attack which from a security perspective is undesirable.


The embedded device area is very broad covering a lot of different device categories. I think that’s only going to continue to grow as people expect more of the devices in their lives to be connected.