In the past couple of months, folks asked me how I got into product management. While everyone probably wants to hear an overly romanticized story about how this was my passion from an early age, the reality is much funnier - it was an accident. I never had any plan to be in product management, and yet, this is how I built my career. This essay is a story of how I got to be in the role I am today.
Jeff Sandquist, CVP of Developer Relations at Microsoft, once said that “change invigorates the soul”. Working with Jeff’s organization was one of the highlights of my career - collaborating with some of the smartest folks in the industry, shipping things that have an impact (also known as docs.microsoft.com) and being very closely aligned with developer needs. I’ve been at Microsoft for close to six years, and I always felt like I am never the smartest person in the room - the sheer caliber of individuals that I had the honor of working with speaks volumes for the kinds of organizations that exist within the company.
You probably heard (or read) a post I wrote back in July about how we built docs.microsoft.com/samples - I talked about some of the foundational elements and the process which we followed to build the site. Now that we’re a couple of months in, I thought I would take a step back and write about some of the lessons learned about shipping the new site, in the hopes that this will be helpful to others who will work on projects of similar scale!
One of the biggest projects I’ve had the honor of being a part of has shipped a couple of days ago - docs.microsoft.com/samples. If you haven’t read the announcement blog post, I recommend you start there. Table of contents Inception Looking back First steps Improving the experience Published pages Automating releases Stack Conclusion Inception When we started working more in-depth on developer experiences, we realized that there are too many disjoint pages out there that provide an aggregation of code samples (and we ship thousands of samples that span hundreds of teams).
The holidays are right around the corner, and what better present is there for yourself, your loved one or your best friend than a limited edition laptop sticker that shows you support efforts to make technical documentation AWESOME? Lucky you, our dear user, because you can now get an absolutely free laptop sticker that showcases the .NET API Browser and the PowerShell Module Browser. Background Photo Source: StockIO.com. So what do you have to do to get the coveted stickers?
Got an interesting problem today - had to re-image a Surface Pro 3, but only had a 64GB flash drive handy. Following the typical dance, I installed the Windows 7 USB/DVD Download Tool, downloaded a Windows 10 ISO from my Visual Studio subscription download site, used WUDT to put the ISO on the flash drive and… nothing. My Surface Pro 3 would just refuse to even look at the USB for boot information.
Last week I thought I would sit down and learn how to write a Visual Studio Code extension - what better way is there to test the documentation your company ships and give yourself the best holiday present of the year? (photo by monicore) I will start this by saying right away how easy it is to work on the extension across two platforms - part of it was written on a Windows machine, and another part of a mac.
I am a big fan of doing a lot of the monotonous automation work through Continuous Integration (CI). Specifically, I work a lot with defining workflows for documenting managed (.NET-based) API reference documentation. In the process, we leverage several tools, as you can read from one of my previous posts. The reality of software is, however, that it changes. New updates are pushed, new NuGet packages are released, and with that, there is a very high probability that the documentation changed as well.
THE new adventure This past month marked an important milestone in my life. Several milestones, at that, but all in the right order. Starting with the important ones - I FRIGGIN’ GOT MARRIED! Hands down, the happiest moment of my life! My wife Tiffany seems to be happy about that decision as well, so we’re diving head-first into the intricacies of adult life and all decisions that come with it.
If you read one of the latest Ars Technica pieces about how Microsoft renewed its strategy on embracing developers across the board, you might've stumbled across this little tidbit about code sample testing.
This is one of those questions that gets asked every week or so - I want to build documentation for my package the same way docs.microsoft.com does, but on my own server/cluster. While today we do not provide the entire infrastructure as a single open-source entity (but you can certainly read up on what we do behind the scenes), I thought I would write a short guide on how you can document your own NuGet packages and then publish the documentation on GitHub pages.
With the release of Windows 10, all photos are now opened by default with the help of the Photos app. I like the Photos app, but I also enjoy the UI of the traditional Windows Photo Viewer.
Let’s say you are developing an application that needs to integrate in the Settings Hub. For most applications, this is not at all necessary – if you are not altering the behavior of the device (e.g. through global settings that go beyond the application), you do not need to do this. However, for experimentation purposes, it is, in fact, possible to integrate your app in there.
I’ve once again spent my summer in the Pacific Northwest, working as an intern for one of the top companies in the world - Microsoft. I embarked on a journey in a completely different role for me – despite the fact that I coded pretty much all my life (or, as much life as a 22-year old adult can have) and was a Software Design Engineer vendor.
I’ve added several changes to the FileExplorer control, that will be included in the Coding4Fun Toolkit.
I am proud to announce today, that one of my largest Windows Phone projects – Beem, is now open-source, in an effort to improve the product and to facilitate community contributions (there were many requests to add features – now devs can easily chime in).
To continue the tradition of a weekly FileExplorer build, here is the next update, bringing you a new set of capabilities and fixes.
You can download the Coding4Fun Toolkit source code. Once downloaded, go to Experimental > FileExplorer. The sample project carries an alpha implementation of the control, and I would love to get your feedback on it - let me know what you want to see become a part of it.
As per the request of many Beem users, I am implementing Last.fm track scrobbling. The first part of this task is to implement an API client for the Last.fm web service, and step one is user authentication. Last.fm is not using OAuth, but rather its own implementation of an authentication engine that relies on a composite MD5 secret.
In a race to optimize everything, developers often go to extremes to build software that performs routine tasks. MissionControl is a system that allows users to program a control center that stores interfaces with attached hardware sensors, allowing the users to control any other devices that can be activated via the underlying protocol.
With the release of Windows Phone 8, a few new developer API endpoints were made available that allow third-party applications to change the device lockscreen image. In this article, I am establishing the infrastructure and building a mobile application that provides the ability to choose from a number of dynamic image sets, from which images can be selected and then cycled as lockscreen wallpapers.
With the full tutorial series and the PDF eBook, it would only be logical that the next step in the FallFury story would be releasing the game in the Windows Store. Today, I am happy to announce that my first big game development project successfully passed certification and is now available in most of the locations worldwide in the Windows Store.
Almost a week ago, my FallFury series (building a hybrid Windows Store XAML/DirectX/C++ game) was released on Channel9. 12 articles and associated videos is a lot to go through, and you might not always have an active internet connection.
If you follow this blog, you probably know that I spent part of Summer of 2012 in Redmond, WA, working on the Channel9 Coding4Fun team. My project for that period was FallFury – a 2D game that was designed to demonstrate the capabilities of the Windows 8 (specifically, Windows Store) development platform when it comes to creating hybrid applications (C++/XAML/DirectX).
This summer I got an awesome opportunity, thanks to Dan Fernandez, Jeff Sandquist, and Clint Rutkas – I worked as a vendor/intern on the Channel9 Coding4Fun team. Now, if you are not aware of what Channel9 is about, then you are totally missing out on a portal dedicated to everything Microsoft (with a focus on dev tech), so check it out.
Paul Betts mentioned on Twitter yesterday that he was looking for a Canada-specific offer, where developers could get free Windows Phone devices. Although I was not aware of anything like that for Canada, there sure is an offer for students in the United States.
If you own a Samsung Windows Phone device, you probably noticed that there is an update available for the stock Diagnostics application. The default build is 1004 and the new one is 0210.
A while ago we saw a demo from Microsoft that showed how it is possible to use Windows Phone to interact with a Kinect-powered game. During the Kinect Code Camp, right before the official release of the Kinect for Windows SDK beta, Adam Kinney, Rick Barazza, and I decided to work on a proof-of-concept project that would provide the same platform integration in a non-commercial development environment.
I wrote an article on this topic not long ago, so this video is created both to show how it’s done correctly and how it is possible to use a local Isolated Storage Explorer on a Windows Phone 7 device.
I just released a new video that shows how it is possible to access system applications inside a locked emulator image. I already described the details in one of my articles, so this video is more of a proof and a hands-on demo.
I see this question asked a lot on StackOverflow, and today I saw another example of this phenomenon. I decided to write this blog post to simply explain why this is not possible and why you should look for another media sources to build your ringtones rather than using the existing media library.
As you probably know, the Windows Phone SDK comes with an emulator that is locked down to the maximum – the developer only has access to Internet Explorer and to a limited number of settings. However, today I found out an indirect (and maybe not that optimal) way to access various applications that are blocklisted, but are still available on the device.
Dropped phones are not that uncommon of a phenomenon. My idea was to find a way when this happens while a third-party application is running on Windows Phone. No phones were destroyed or damaged during the experiment.
The Isolated Storage Explorer Tool is new with the Mango SDK (7.1). In this video I am talking about general capabilities of the application and why you should use it if Isolated Storage is a component part of your application.
During the ImagineCup Worldwide Finals in New York City, we – the Microsoft Student Partners Social Media Team, got to meet some exceptional people. One of those was Soma Somasegar – Senior Vice-President, Developer Division @ Microsoft.
The new Windows Phone Mango SDK introduced a testing tool, that is tied to the device emulator, allowing developers to simulate location data and readings from the accelerometer sensor (now it also allows taking screenshots).
This year I got the chance to attend the ImagineCup Worldwide Finals in New York City, where students from all over the world were presenting solutions to solve the world’s toughest problems through use of modern technology. One of the teams that particularly stood up from the crowd was Note-Taker – a group of guys from Arizona State University who built a device that helps legally blind people during their classes.
Windows Phone tiles are cool – everyone knows that. So far, developers can create shell tiles outside the application itself, pinning them to the user’s home screen. Today, Clint Rutkas updated his Coding4Fun Toolkit with a component called Tile, that allows the usage of tiles directly in a third-party application.
Today I got the chance to attend a couple of team project presentations and one of those was a project called MIRA – Medical Interactive Recovery Assistant, developed by team SIMPLEX from Cluj-Napoca, Romania. The purpose of the project is to facilitate a more effective recovery for people with physical injuries. I already wrote about their idea a while ago, but today I got to see the real project and it’s actions.
For those who were developing for Windows Phone for quite a while, you probably know that the emulator itself exposes quite a few gems. The one I found today is rather useless at this point, but it’s interesting nonetheless.
It was recently announced on the official ImagineCup blog that all finalists for the worldwide ImagineCup finals were selected. You can read that story here. Since I am currently located in the United States, I would like to bring to your attention the teams that will be representing America this year.
I recently started working with the Netduino microcontroller and one of the initial projects I decided to tackle was creating a better sample for a LED matrix shield. It wasn’t really complicated – overall, it took me around an hour to put everything together and test it on a real device. Image lost since transition to new blog Here are some things that I added to the updated sample: Automatically initialize the I2CDevice instance when the LEDMatrix class is instantiated.
By default the Windows Phone emulator is pretty limited in terms of applications that are available out-of-the-box. In fact, Internet Explorer is the only application that is available – the rest are apps that are side-loaded. I already talked about a way to invoke the default YouTube application and about some other hidden call-related features. Today I found an interesting new access point that allows me to work with the Maps application without actually having the app accessible in the main menu.
I use Zune a lot, having started with the 4GB player, and now it’s available on Windows Phone 7. Though the WP7 player is labeled as Music Hub, it appears under the Zune icon and incorporates Zune’s organization, providing many of the same capabilities as the desktop client.
I am in Tulsa right now attending a Windows Phone 7 presentation. One of the highlights of this event is the possibility to see and experience an actual Windows Phone 7 device. Here are some pictures of the device in my hands: UPDATE: So I’ve been asked by quite a few people what I think about it. The device feels really nice – it is not heavy – I’d say it’s way more lightweight compared to the iPhone.
I’ve asked myself this question many times. And if at the beginning, when WPF was just picking up momentum, I would say that this was a straight negative, today I can say the opposite – it really does seem that WPF will slowly replace WinForms, and there is a reason for that. When WPF came out in 2006 as a part of the .NET Framework, the overall impression was that it is a framework for media applications.
Today, at 10:00AM PST (Pacific Standard Time), Microsoft Visual Studio 2010 became available for download on MSDN, for those who have a valid MSDN subscription.
According to the leaderboards (I am the leader of Team Core, by the way), the ImagineCup judges liked my Internet Explorer 8 Award entry, so I am moving on to Round 2 of the competition.
I decided to enter the CodeProject “Windows @ Work” article contest. The idea behind it is creating an application that is using some of the new features Windows 7 has introduced. Since I had some experience developing software that is using the new Windows 7 features (the taskbar and associated jumplists, to be specific), I thought that it would be a good idea to participate in this contest as well.
Since the release of Windows 7, lots of .NET developers felt the need to use the new features introduced by the new OS. One of these features is the possibility to have jump lists for the application icon in the system taskbar. Natively, using the new taskbar capabilities is only possible by using the Win32 API. But there is also a managed library for .NET developers – the Windows API Code Pack for .