Skip to content
Apr 26 13

How I came to my farewell

by Brandon

Last week I posted my farewell message to Microsoft. This post will talk a bit about how I got to that. The next will talk about where I think I’m going from here.

If you know me, you know that I’ve always been incredibly passionate about my work at Microsoft. More than that, I always loved the company (and still do!). A rare confession: I actually teared up at last fall’s Company Meeting. A few things built it up, but what pushed me over the edge was seeing first Surface ad previewed on the giant Key Arena screen. It was a magnificent moment, and in it I felt an overwhelming sense of pride. I know I’m not the only one who felt it. Thousands of us were witnessing the culmination of years of incredibly hard work, seeing all the pieces come together in a way we previously had to imagine (which sometimes took some effort!). After years of working on individual pieces and prototypes, we were finally seeing it the way it was about to be delivered to the entire real world.

At the completion of Windows 8, much of the team understandably took a moment to step back and catch our breathes. I dabbled a bit in hobby app development, and for the first time in a while found myself with enough free time to actually invest myself in a romantic relationship (maybe too invested, in retrospect, but that’s another story). On the work front, I took an opportunity to follow a couple of awesome managers to work on a new team in a different area of the product, and was pretty excited about the work we were signing up for. I had worked primarily on Search in different capacities for my entire tenure at Microsoft, so felt that I was ready to dive into something new.

Something else commonly happens as you transition from one product cycle to the next: You consider all your options. I felt it was prudent to give some thought to what they were and whether any of them seemed more interesting than the last time I’d done this exercise. I fear this will sound like gloating, but one of the great things about being an experienced software developer these days is that options are plentiful. I sorted the ones I found reasonable into four rough “buckets.”

  1. Stay where I was and continue driving forward along the path I was on. This was my default, and almost assumed, really.
  2. Try out another “big” company (Amazon, Facebook, etc) either in Seattle or someplace I wanted to move.
  3. Find a small startup to join or co-found.
  4. Start my own.

On a Monday evening in the middle of November I left work a little earlier than usual. I went to one of my favorite cafes in the Lower Queen Anne neighborhood of Seattle, and started reading several blogs and articles about experiences others have had with similar decisions. I found some interesting reads (a couple of which I wish I could remember how to find!), but actually found myself being more interested in adding a couple of user-requested features to 4th at Square. However, that process was soon interrupted when I saw what appeared to be an odd sort of joke appear in my twitter feed. “Steven Sinofsky to leave Microsoft.” Right, and a pig learned to levitate. But then more came, and soon I received an e-mail confirming that this was, in fact, happening.

I still know nothing about how or why that came to be. I think I’m within my liberties to say that from my perspective, absolutely nothing about the Windows team’s plans or directives seemed to change from the course he’d had us on. But in retrospect I think in some strange way it had an effect on me. In particular, it led me to revisit certain things I’d thought of as fairly set in stone. Or if not set in stone, at least highly predictable given my own insight and that of others made available to me.

And yet, my main focus was on work, and continuing to ramp up on my new areas of ownership and help my team figure out what needed to be done. Between that, the rather difficult end to aforementioned relationship, some family issues, and a minor surgery I undertook that month, I had enough on my mind that making a major life change wasn’t really something I had the bandwidth to even ponder. Certainly not with due clarity. What I did find was that I was looking forward to Christmas vacation a lot more than usual. Most years I’d have to essentially be pried away from my work. Looking back, I think I expected that the holidays would finally give me the chance to reflect and give some actual thought to those options.

And yet, that’s not what I did. What actually happened was that I spent my holiday break relaxing in St. Maarten and then North Carolina with family. I did zero work of any kind, and I gave pretty much no thought at all to big life changes. It really was a vacation, and one I hadn’t realized I was long overdue for.

Upon my return home and to work, though, all those stresses immediately came flooding back. It was as if something had momentarily blocked a fire hose pointed at me, and grateful as I was for that respite, it just made me all the more uncomfortable when it began dousing me again. There were a lot of things in my life I felt I couldn’t control at that time, but one of the few things I could control was my career. I thought it over for a few days, and then one morning before going into my office at work, I called my father. I walked around the periphery of my building’s parking area talking to him, freezing just a bit. I told him I’d decided to leave Microsoft, but that I didn’t know what I’d do next. My only plan was to take some more time to decompress, try to get some non-work things in order, catch up on some traveling I’d been putting off, and figure out where I wanted to be and what I wanted to be doing. I wanted to spend some time on the east coast and seriously think about moving back there. One reason among many to consider was to be nearer to family. I think he was surprised, but didn’t really try to talk me out of it, and I’m grateful for that support.

I’ll avoid going into much detail about what followed. I will say I am immensely grateful for the understanding my management chain showed, and for the options availed to me. In particular, time to work things out so that I could make a decision with clarity instead of to release pressure from the flood. As you now know, in the end I decided to leave after all, but with clarity of purpose: To build something of my own.

For now I remain in Seattle. One advantage of a solo project is that I have unparalleled flexibility to relocate. Seeing as I paid my dues through the dreadful Seattle winter, I am keen to make the most of the glorious summer days (which we’re already getting a taste of). Following that, I’m undecided. I’ve reeled in my anchors, whether the wind takes me away remains to be seen.

Apr 19 13

Farewell to Microsoft

by Brandon

Here’s the farewell message I sent this afternoon to colleagues past and present:

Dear friends,

I’ve been called a Microsoft “fanboy” more times than I can count. Because of each of you, I’ve worn that name proudly for eight years. Microsoft really was my dream job, and the anxious/terrified 20-year-old who came across the country in 2005 had no idea what an awesome ride it had in store for him.

By now you’ve probably figured out where this is going. Today is my last day as an employee at Microsoft. When I came to Microsoft I left behind a small business I’d (barely) started. Lately it seems that entrepreneurial itch has returned. Put another way: I’ve decided it’s time for me to be anxious and terrified once again :-)

I cannot express how grateful I am for everything I’ve learned from you all. It’s only because of those lessons, along with the confidence and trust you’ve shown in me, that I’m able to take this step. Know that I look forward with great anticipation to the future of Windows (and the company!). As far as I’m concerned, I will always be your biggest fan.

I will still be in Seattle (at least for a while), so stay in touch!

Once more, thank you. Also, feel free to forward this along if I’ve forgotten anyone (I didn’t mean to!).


Apr 17 13

Binding helpers for WinJS

by Brandon

While writing my first JS app for the Windows Store, I found several features of WinJS to be very useful. One feature I used in several places is its data binding and templating support. Along the way, I discovered that custom initializers could be used to great effect.

You can download the set of helpers I created by right-clicking here and choosing “Save As…” from the menu.

What’s included? Here’s a quick summary (replicated in the comments at the top of the file:


Marks the element as display:none if the value is null or undefined.


<div class=”userName” data-win-bind=”style.display: BindingHelpers.displayNoneIfNull”>
Name: <div class=”userNameValue” data-win-bind=”textContent:”></div>


Inverse of displayNonIfNull


Uses the original (markup) value if the bound value is null or undefined.

<div class=”userName” data-win-bind=”textContent: BindingHelpers.originalIfNull>No user name available.</div>


Treat the default (markup) value as a template, where the placeholder {value} is replaced with the bound value.

<div class=”userName” data-win-bind=”textContent: BindingHelpers.fillStringTemplate”>Name: {value}</div>


Same as fillStringTemplate, but url encodes the value.

<a href=”{value}” data-win-bind=”href: BindingHelpers.fillLinkTemplate”>Account</a>


Strips HTML tags from the value (by inserting the value into a DIV and then extracting the innerText value).


Pre-processes the value using toStaticHTML.


Allows you to bind the value as a class name to the classes property.

If you have questions, founds bugs or opportunities for improvement, or any other feedback – please share in the comment section!

Nov 12 12

My first Win8 app: 4th at Square

by Brandon

If you’ve got a shiny new Windows 8 or Windows RT device (like a Microsoft Surface), and you use the foursquare service (or have been meaning to try it out), you should head on over the Windows Store and check out my first app: 4th at Square.

In addition to the above Store link, I’ve set up a website devoted to the app, at If you have suggestions or other feedback, you can leave them on that site or right here in the comments.


Soon I’ll be doing some posts about my experience actually developing the app, and sharing some tips and reusable code snippets I came up with along the way.

Oct 31 12

How I ended up building my first Windows 8 app, and sparking a minor controversy

by Brandon

Throughout the development of Windows 8, I occasionally dabbled in the new WinRT app platform, at various stages building things like a simple “twitter fall” app for watching trending or chosen topics stream by. In most cases all I did was dabble over vacations to see how the platform was progressing. However, back in February or thereabouts, I was sitting at Café Fiore on Queen Anne hill and decided to see how I might build something using the location and background task APIs that would make my Windows 8 laptop feel alive and aware of where I was. As a longtime on-again-off-again foursquare user, building something against that service seemed like a great place to start. So I fired up VS 2012 (a preview version at the time) and created a new WinJS project.

On a whim I named the project “4th & Square” – the name came about at least partly because I’d lived at 4th & Mercer, but looking back it’s also likely that I’d internalized the name of the excellent Windows Phone app, “4th & Mayor.” At the time, I gave the name little thought, as I was just dabbling and not planning to write anything that would ever be seen by anyone other than me and maybe some friends. I put a weekend or two of work into it, originally creating something that did little more than pop toast notifications as you moved around to new locations. Then I got too busy with other things like finishing Windows 8 itself, and the proto-app got stashed aside.

Fast-forward to Win8 RTM, and suddenly it seemed like all of my friends were building apps. I received some encouragement to break out my foursquare project and turn it into something real. Over a weekend I ported my existing work into the final version of the WinJS template and library, and then over a vacation to North Carolina in August, I spent a few afternoons at Starbucks completing most of the feature work for 1.0 version, learning quite a bit about JavaScript and the WinJS library along the way. A couple more weekends of polish and I felt like I had something worth sharing. I also spent some time one afternoon ensuring there wasn’t already an app with this name, and that it fit with foursquare’s naming and branding guidance. As far as I could tell, it was unique and within their rules. So when the Store opened in September, I immediately wanted to submit what I had.

In order to do so, I had to throw a privacy policy up on the web. I based this on foursquare’s guidance and included some boilerplate bits copy-and-pasted from their developer page. In my haste and fear of missing something, I Bing’d “foursquare app privacy policy” and used some of the results as a reference to make sure I had my bases covered. I also used MSDN’s documentation for location privacy (including both Win8 and Phone), and assembled the pieces I needed in a OneNote notebook I use for tracking everything related to my app. I then pasted that into WordPress and threw it up on this site as a temporary solution until I found time to build a proper site dedicated to the app. I also bought the domain name and pointed it at the appropriate sub-site here. All the boxes checked, I submitted the app. And then the fun began!

The app got through certification on its first attempt, and rather quickly. Within a day I started getting bug reports and feature requests from friends and others who had early access to the Windows Store. I put a couple more weekends into fixing things up, and released a couple of updates to the app to address all the reported issues.

Now, if you follow me on twitter you may know the next part of the story. At some point a few weeks after publishing the app, I received an e-mail from Jeff Wilcox, author of 4th & Mayor. He expressed some concerns about the similarity of my app’s name to his, and perhaps more importantly, a couple of paragraphs in my privacy policy which appeared to have been lifted from his. At first I didn’t believe this (I figured maybe he was confused because we both had the boilerplate stuff provided by foursquare). However, taking a look at both, I saw that the last couple paragraphs (out of many) were indeed virtually identical. In my haste to assemble the privacy policy I had apparently copied from the wrong window (one of the app policies I was using as a reference, namely his) into WordPress instead of the OneNote web app where I’d drafted my policy. I don’t remember doing this, but it is my best guess about how I ended up with something copy-and-pasted from his policy into mine. I absolutely did not intentionally do a single copy-and-paste from anywhere except the blurbs required by the docs on Of course, for that you have nothing but my word, and if you don’t know me I fully understand why that might not be enough.

Feeling pretty awful about this, I replied to Jeff telling him I had fixed the privacy policy issue and suggested we meet up. Several days later we did just that (ironically, in a coffee shop at 4th & Wall). Jeff’s a friendly and likable guy, and we chatted for a while about the background of how his app came to be and some challenges he’s faced along the way. I apologized to Jeff for the privacy policy issue, which simply never should have happened. I was completely embarrassed and ashamed over it. I did my best to assure him that nothing about my app was based on his (he had looked at it and seemed to agree that other than being a foursquare client, the app’s look and feel was clearly nothing like his). Jeff informed me that he’d been working on a Windows 8 version of his app. I gave him a couple of tips like how I used Unicode emoticons as glyphs in my app to avoid loading or scaling images, and some tips for how to best make use of the background task infrastructure. Then to help avoid any potential confusion, and as a gesture of goodwill, I said I would absolutely make a change to my app’s name to further differentiate it from his. Jeff suggested “4th + Square” as a simple alternative. I told him I’d think on it and figure out what to call it.

A week or so later, after racking my brain more than you’d probably think necessary, I settled on “4th at Square.” One reason for this choice, versus something even more different, was that it let me continue to use the rest of my existing branding. Another was that it was sure to be a less jarring change for my existing customers. It took a couple more weeks to get the fully renamed package into the Store, but it appeared well before Windows 8’s general public availability date.

That controversy was easily the most stressful and regrettable part of building my first Windows 8 app. I am thankful to have moved past it though, and very happy that I can return any time or energy I direct at the app to improving it and implementing feedback I get from users around the world. I’m also looking forward to sharing some of the things I learned about WinJS development, as well as some handy utilities I wrote along the way. It’s my hope that they’ll prove useful to others building WinRT apps using JavaScript. Look for those posts to arrive soon!

Oh, and this entire post was written on my personal Surface and Touch Cover :-)

Oct 1 11

Post-Build notes and links

by Brandon

It’s been a few weeks and I feel like I’m still catching up from my week at the //Build conference.  As it turns out, conferences are very busy places, and sometimes things you planned to do that week (such as, for instance, blogging) can easily fall through the cracks.

In the unlikely event that anyone was looking for me specifically, I hope you were successful.  I spent most of my time at or near the Metro Style Apps booth, which was fairly front-and-center in the Expo hall.  As I didn’t have a session of my own to present, my main purpose was to answer questions and demo different pieces of the Windows 8 user experience upon request.  Because of this, I took to identifying myself as a “booth babe” when asked about my role at the conference.

Of course, my other primary purpose was to support my colleagues who were presenting.  Most relevant in this regard would be the talk given by Priya Vaidyanathan, the main PM for the Windows 8 Search experience.  As the main dev for this feature I was very excited to attend Priya’s excellent presentation (“Search: Integrating into the Windows 8 search experience”) and to help her address attendees’ questions afterward.  If you’re at all interested in how the search experience works in Windows 8, or would like to know how your app can add value to it, I highly recommend watching the video.

Other great session videos:

Misc //Build Links

  • Fellow “Metro Style Apps” booth babe Raymond Chen shared some notes about his experience at the conference, including documentation of a few of our booth antics.
  • Cori Drew’s blog series “My week at //Build/” – unfortunately I didn’t get to meet Cori but her write-up is a great read!
Sep 10 11

//BUILD/ Windows event is just a few days away

by Brandon

If my Twitter stream is any indication, then I’m not the only one immensely excited for the events of the coming week.  While I enjoy what’s likely one of the last solid summer days in Seattle, some of my colleagues have already begun making their way to Anaheim, CA for this week’s BUILD event.

I’m (seriously) overjoyed to say that I will there representing my team along with a few of our Program Managers.  If you will be attending, feel free to track me down and say hi.  I’ll post some updates about my schedule here when I’m at liberty to do so, and will also post (and tweet) some links which I expect many of you following along from home will want to check out.

In the meantime, the event website and Twitter account are probably the best places to watch for official details and updates about the event.

It’s going to be an exciting week!

Aug 18 11

My team for Windows 8

by Brandon

Earlier this week Steven Sinofsky kicked off the Building Windows 8 blog, the successor to the excellent (in my opinion) Engineering Windows 7 blog, which was often referred to as the “E7″ blog.  When the E7 blog kicked off, you may recall that Steven introduced the team, including a list of the names chosen by each feature team across the division.  I soon followed up with a post about the feature team I worked on at the time.

The new “B8″ blog is making this a tradition with a post titled Introducing the Team, and I decided I should do the same.  So before I say any more, any guesses about which team from the list is mine?

If you guessed “Search, View, and Command” then you guessed right!

You’re also right if you guessed that this is an evolution of the Find & Organize team from Windows 7.  However, the new is far from a simple rebranding of the old.  In fact, I would estimate that only about half of our team’s roster can be traced back to F&O.  Along the same lines, our charter has evolved as well.  More about that another day :-)

Stay tuned for the B8 blog to learn more about our team and the work we’re doing.  You can follow @BuildWindows8 on Twitter to get notified about the latest updates.

MS trivia: Our team is commonly abbreviated as “SVC,” which has on occasion caused some confusion.  That’s because the SVC abbreviation has long been used to refer to the Silicon Valley Campus down in Mountain View, CA.  Our team’s offices are in Redmond, WA.
Aug 12 11

How to make sure your customers miss their bills.

by Brandon
Thanks, Seattle City Light.

Seattle City Light e-bill notice flagged as "very suspicious" by SmartScreen.

Yes, that’s their e-bill notification (the only thing you get) being flagged as “very suspicious.”

Their solution?  Tell customers to ignore the warnings and add their address to your e-mail service’s “allow list.”  According to the customer service rep, it’s been this way for years.  How hard can this be to correct?  If anything, I would think bills like this should be using SenderID to make the mail *more* trustworthy, not doing whatever they’re doing that looks “very suspicious.”

In contrast, this is how they *should* make their bills appear: reminder message sent using SenderID
Jun 3 11

First look at the next version of Windows

by Brandon

If anyone still reads this blog, they’ve probably noticed that throughout the last year or more my rate of updates has slowed to a trickle.  There are a number of reasons for that, but the largest reason is that I’ve been “heads-down” working on the most exciting and ambitious project I’ve been a part of since starting at Microsoft.

And as of Wednesday we have finally shared a first glimpse at what we are (for now) calling Windows 8!

Here are three videos from Wednesday:

Jensen Harris’ overview video

Here’s a video of our group’s director of program management, Jensen Harris, giving an overview of some of the new user experience we’ve built.

Steven Sinofsky on-stage at D9

That video was posted just after our division president, Steven Sinofsky, gave an interview and on-stage demo (with VP Julie-Larson Green).

Video here (no embedding available)

Mike Angiulo at Computex

Finally, one of my favorite presenters, Corporate Vice President Mike Angiulo, demonstrates “Windows 8” at partner preview event in Taipei, Taiwan, for COMPUTEX.