My first full time job out of college was a Program Manager position at Microsoft. I was part of the Web Platform team working on JavaScript bridge for Universal Windows Apps. While most of my time was spent on improving the Edge/WebApp platform and analyzing telemetry, I had the opportunity to work on some public facing projects like the ones below:
When I joined the team, developing Universal Windows Platform (UWP) Apps was essentially only possible on Windows 10 machines. CloudAppX started out as an idea I had to enable devs to develop and submit UWP Apps on any platform (e.g. MacOS, Linux, Windows 8.1 and older, etc.)
Developers who could stand to benefit from this include:
I quickly coded up a prototype of the idea that worked by having the cloud call our build tools. The prototype was eventually developed on directly by one of our partner teams. It was deployed to production and is now used by the open source ManifoldJS project. ManifoldJS is currently the recommended way to develop UWP's on macOS. Our team also published a Channel 9 Video showing the service in action with ManifoldJS.
Visual Studio is a very powerful, full-featured IDE. However, it includes support for a large number of features that a lot of web-developers (myself included) don't need. This results in a 4GB - 10GB install and very long start up times.
We wanted to remove friction from the Universal Windows Platform App development process. So I built some tooling to make the process more friendly to web developers.
I created a CLI utility called hwa that allowed developers to launch their UWP's directly. Prior to this, the only simple way to debug UWP apps was through Visual Studio—something potentially unappealing to web developers.
This is particularly convenient for developers who are building apps with a remote start page. They can simply install the tool globally:
npm i -g hwa
And they can run
hwa
to load a 'Testbed' style app that allows them to dynamically change URLs, or if their app depends on having a specific URL as the origin, they can run:
hwa https://example.com
and if they want to include it in their build system (e.g. through an npm script), the module provides the following functions:
// import the module
import { updateStartpage, registerApp } from 'hwa';
// update the start page
updateStartpage('https://example.com');
// launch the app
registerApp();
The tool is currently used in both ManifoldJS and the AppX Yeoman Generator.
Disclaimer: Several of the technical decisions made for this project are somewhat outdated. This is likely due to a combination of my personal growth as a developer and the rapidly changing web development landscape.
The AppX Yeoman Generator is a Yeoman Generator aimed towards more beginner-level developers who are looking to write a UWP. Initially, I had created a few gulp tasks to create a demo Hosted Web App that was shown at Mobile World Congress.
My team decided that it would be good to create a project scaffold for developers interested in building apps for our platform and that we could use the demo app as a starting point. I ended up creating a Yeoman generator using the demo as a base. I also worked with the Channel 9 team to create an instructional video.
Looking back, the project could probably have been reduced to only webpack and a few npm scripts. However, at the time, the team wanted to accommodate beginner developers who were used to simply linking their assets in their HTML without having to modify the webpack config.
At a SeattleJS meetup, I met an npm employee who mentioned that they were interested in working with Microsoft. The next day, I sent him and email and was introduced to Rod, one of the npm co-founders.
We learned that over 40% of the visitors to npm's page are on Windows. Ultimately, we ended up coming to an arrangement where people from Microsoft would create guest posts on npm's site to promote cross platform web app and website development using npm.