A couple weeks ago I kicked off a series of written interviews with our .NET Foundation Advisory Council members. The Advisory Council is composed of OSS project leaders that care deeply about .NET and the success of the foundation. They drive key initiatives in the foundation and guide the board. Learn more about what the Advisory Council is all about and participate in public discussions with them on our forums.

For this next post, I interviewed Daniel Roth. Daniel is a Senior Program Manager on the ASP.NET team at Microsoft. His passions include delighting customers by making frameworks simple and easy to use in the cloud.

Tell us a little bit about yourself. What's your background? When did you start getting interested in programming?

I started working at Microsoft and on .NET fresh out of college a little over a decade ago. During that time I’ve worked on a bunch of areas in the .NET Framework including the networking stack, serialization, XAML, ASP.NET Web Services, WCF, MVC and Web API.

In college I studied Electrical Engineering and Computer Science. I also did an M.Eng program with an emphasis on robotics. My mother was a programmer at the University of Massachusetts working on IBM mainframes, so I probably inherited some of my interest in computers from her. In high school I was particularly interested in questions of consciousness and artificial intelligence which led me to take my first computer science courses.

What initiatives are you working on (or passionate about) within the .NET Foundation?

I’m passionate about making it super easy to setup well-run open source .NET projects. I think there’s a lot we can do to make it easy to setup your project, setup your build infrastructure, sign your bits and make it simple to accept contributions.

I’m also excited about making it really easy to setup open source documentation for .NET projects. The Read the Docs folks have been doing some really cool work on adding Sphinx extensions for .NET and API doc generation that I think are going to be great for building an open source network of .NET documentation.  

Can you tell us some of the first open source projects you worked on as a contributor? Why did you get involved? How did you get started?

My main exposure to open source has been through taking our existing .NET projects at Microsoft open source. This started with many of our ASP.NET projects including ASP.NET MVC, Web Pages and Web API. It’s amazing to see that the entire .NET stack is now open source!

What were some of the challenges in open sourcing those ASP.NET projects? How many people were involved? How did you do it? Any leaders stand out?

I think the main challenge with making ASP.NET open source was that it was a very new way for us to do our work. There really wasn’t any other major part of .NET that was open source at the time so we had to figure out and invent a lot of what it takes to do open source work at Microsoft. We had to move our engineering systems to be open source friendly and figure out how to take community contributions. There was also a cultural shift from being very tight-lipped about what we were working on to being much more open and transparent. We had to learn how to work effectively with our community on a day-to-day basis. There were numerous folks involved with this effort (my involvement in the initial setup was pretty minor), but Scott Guthrie certainly was a big supporter and helped make a lot of these things happen.

Looking back, what bug are you most proud of fixing in an open source project?

I remember when we first started taking contributions into our open source ASP.NET projects back in 2012. We had Miguel de Icaza, the creator of Mono, submit a pull request for us that we then merged while he was on stage. That was a pretty big moment for .NET open source.

What project(s) do you spend most of your time on now?

Currently I am working on ASP.NET 5 and the new .NET Execution Environment (DNX), which gives you a common platform for running .NET code cross-platform on Windows, Mac and Linux.

Can you tell us one thing you have learned about running an open source project?

I’ve learned that keeping it open is definitely better! I love the transparency of working on open source projects and its great working with a community of active contributors.

Why is open source software important to you?

Open source to me means you have a project that is now owned by a community of contributors instead of just a small team of developers working in isolation. It means you are working on something much bigger than one small team or individual can create.

What is it about .NET that you like most?

The C# language is simply gorgeous. I love the async/await support. The libraries that come with .NET are awesome. The tooling available for .NET is best in class (ex. Visual Studio Code). And it’s all going to just keep getting better now that .NET is fully open source and cross-platform!

What does the future of .NET look like in your dreams?

I dream of a vibrant open-source .NET community building apps and frameworks that I have never even imagined. I can’t wait to see what the open source community is going to create with .NET!

Thanks, Daniel!

Feel free to ask more interview questions in the comments below.

Enjoy, -Beth Massi, .NET Foundation Technical Evangelist

A couple weeks ago I kicked off a series of written interviews with our .NET Foundation Advisory Council members. The Advisory Council is composed of OSS project leaders that care deeply about .NET and the success of the foundation. They drive key initiatives in the foundation and guide the board. Learn more about what the Advisory Council is all about and participate in public discussions with them on our forums.

For this next post, I interviewed Bill Wagner. Bill has spent his entire career in the software industry, spanning both technical and business roles. A Microsoft regional director, Bill’s technical areas of focus are C#, .NET, and TypeScript. His other, non-coding passion is to help organizations build effective, high-functioning developer teams.

An active blogger and author, Bill has written hundreds of technical articles and two books. Bill regularly speaks at conferences as well as developer groups throughout the world on topics ranging from C# to TypeScript to Software Engineering practices.

In addition to his business and technical accomplishments, Bill works with the Humanitarian Toolbox to create software that supports disaster relief efforts in times of natural disasters.

Tell us a little bit about yourself. What's your background? When did you start getting interested in programming?

I had a great math teacher in high school that encouraged me. He allowed me to get credit for homework if I wrote a program to do the problems. He thought that if I understand the concepts well enough to write a program for it, I must not need to repeat 30 other problems. From there, I went to University of Illinois, and majored in Computer Science. I still love programming, and write code as often as I can.

What initiatives are you working on (or passionate about) within the .NET Foundation?

I'm working with Shaun, Advisory Council chairman and Martin, Executive Director, on a process for the .NET Foundation to accept new projects. I think that is very significant: A rich project ecosystem will mean the .NET Foundation is succeeding in its mission to be the home of .NET open source. We need to make it easy for project leaders and developers with new projects to bring those to the .NET Foundation. And, from our side, we need to provide value and guidance to those project leaders.

Can you tell us some of the first open source projects you worked on as a contributor? Why did you get involved? How did you get started?

I am probably the anomaly on the Advisory Council. I’ve done less open source than the other council members. However, I’ve been involved in .NET since before its first release. In some ways, that makes me the voice of that .NET developer that is new to OSS and wonders how to get involved. I could be that developer Phil references in his interview about having to answer the same question more than 100 times.

In the last two years, I’ve been president of Humanitarian Toolbox (http://htbox.org), where we build open source applications that support humanitarian disaster relief efforts. It’s a chance to build software that can have a very real positive impact on people all over the world. It feels great to build software that makes developers more productive. It's so much more rewarding to build software that has the potential to save lives.

Looking back, what bug are you most proud of fixing in an open source project?

That’s a hard question. I always feel bad because I'm probably the one that wrote the bug in the first place. It would probably be some optimizations I made to a LINQ-based library a few years ago. It sped up performance in quite a few important ways.

What project(s) do you spend most of your time on now?

That would be Crisis Checkin, one of the Humanitarian Toolbox projects. I’m even more excited that we've got some corporate partners working on some incubator projects that will go live later this summer.

Can you tell us one thing you have learned about running an open source project?

It’s really hard to manage volunteers. You know that they want to help, and they are excited by the prospects. But you also know that they have so many other commitments on their time. You have to be encouraging and welcoming to anyone and everyone that wants to help.

Why is open source software important to you?

I think it’s a great learning tool. Do you want to learn how something is built? Look at the source. Read code. You’ll learn more than you will from almost any other source. As a developer, the fact that the source is published means you should take more care in how it communicates. Overall, this means we get better, higher-quality code.

What is it about .NET that you like most?

Well, I've loved C# since its first release. It's a fantastic language with great features. And, even after all these versions and enhancements, it's still very consistent. Well-written C# is poetry to me. I'm also very excited about the future of cross-platform .NET. It's really the only competitor to JavaScript in terms of a language and platform that can run everywhere.

What does the future of .NET look like in your dreams?

Wow. .NET becomes a major platform for open source development, both inside and outside Microsoft. And, C# 8 becomes the most popular programming language on the planet.

Thanks, Bill!

Feel free to ask more interview questions in the comments below.

Enjoy,
-Beth Massi, .NET Foundation Technical Evangelist

At the .NET Foundation we strive to put code into the hands of those who use it, in an effort to create an innovative and exciting community. Today we’re excited to announce that we are doing just that in welcoming the WorldWide Telescope to the exciting universe of open source .NET.

I did my undergraduate degree in physics at a time when the Hubble Space Telescope (HST) was a new thing. I remember very well my amazement when I could load up one of about 100 CD-ROM’s from the Digitized Sky Survey to get access to observations from the Palomar Observatory and then later the HST, and compare them with my own results to track changes in the night sky. CD-ROM’s were a new thing back then too, but I wrote some VB code to capture data out of the JPEG images in the Sky Survey and compare it with my own images from the CCD in the back of the telescope on the roof of the University of Durham Physics department.

WorldWide Telescope at the Shixinlu primary school in ChinaFast forward to 2008 and Microsoft Research moved Robert Scoble to tears and wowed the auidence at TED when it released the WorldWide Telescope, giving the public access to exactly the same type of raw astronomical data through an easy-to-use interface. The WorldWide Telescope application is great because it puts an incredible visualization engine together with some of the most interesting scientific data in the world into the hands of anyone. You can just explore the pretty pictures and zoom in as if you are seeing the universe on some of the best telescopes in the world – but you can also do real science with the same interface.  Astronomers and educators using WorldWide Telescope have come to appreciate and beauty and power of tooling that enables such rich data exploration – truly setting that data free.

Today, I am thrilled to announce that the .NET Foundation is working together with Microsoft Research and the WorldWide Telescope project team to set the application itself free. The code, written in .NET, is now available as an open source application under the MIT License on GitHub. We are very keen to help the team develop in the open and now that WorldWide Telescope is open source, any individual or organization will be able to adapt and extend the functionality of the application and services to meet their research or educational needs. Not only can they contribute those changes back to the wider community through a pull request, but they’ll allow others to build on their research and development. Extensions to the software will continuously enhance astronomical research, formal and informal learning, and public outreach, while also leveraging the power of the .NET ecosystem.

The WorldWide Telescope represents a new community coming to the Foundation. It’s also great that we now have representation within the foundation from a project that is a complex system that building on-top of the .NET Framework with both a desktop client, as well as extensive server based infrastructure. The WorldWide Telescope is an important tool and I’m glad the .NET Foundation can be of help as it begins its journey as an open source application with committers from inside and outside of Microsoft.  We’re thrilled to welcome the community of astronomers using and contributing to the WorldWide Telescope into the exciting universe of open source .NET.

You can read more about the WorldWide Telescope on the website and more about the move to open source on the Microsoft Research Connections blog. The WorldWide Telescope team also have a very cool video on YouTube showing the power of the WorldWide Telescope in action where you can also find a wealth of videos from the community.

Martin Woodward
Executive Director, .NET Foundation

Last week I kicked off a series of written interviews with our .NET Foundation Advisory Council members. The Advisory Council is composed of OSS project leaders that care deeply about .NET and the success of the foundation. They drive key initiatives in the foundation and guide the board. Learn more about what the Advisory Council is all about and participate in public discussions with them on our forums.

For this next post, I interviewed Phil Haack. Phil works at GitHub as an Engineering Manager for the Desktop team. This team is responsible for GitHub for Mac, GitHub for Window, and the GitHub Extension for Visual Studio. Prior to GitHub, he was a Senior Program Manager at Microsoft responsible for shipping ASP.NET MVC and NuGet. These projects were released under open source licenses and helped serve as examples to other teams for how to ship open source software. He regularly writes for his blog http://haacked.com/ and tweets random observations on Twitter as @haacked. He also speaks at conferences here and there, and has quit writing technical books forever, several times now.

Tell us a little bit about yourself. What's your background? When did you start getting interested in programming?

My last name is pronounced "hack" which pretty much guaranteed my involvement in computers and programming. I was interested in programming at a young age when my Dad bought a TRS-80 Color Computer and we'd spend hours typing in code listings from Byte magazine. Most of my programming around this time was making the computer draw pictures and creating Mad Lib style programs. I didn’t seriously get into programming until after college when I took a job as a programmer as a way to pay the bills for a bit before I applied to grad schools for mathematics. I never got around to those applications.

What initiatives are you working on (or passionate about) within the .NET Foundation?

I'm passionate about helping OSS maintainers become better maintainers.

What’s the biggest piece of advice you can give to maintainers to become better?

There’s so much I could say, but if I had one thing to say, it’s be empathetic. Sometimes the open source culture tries to completely take the human element out of the work we do under the fallacy that the compiler and computer doesn’t care about social issues. But the fact is that software is written for humans. Humans have to care and tend to the code. Humans use the end product of the code. Without humans, there’s no need for the code in the first place.

There’s often a lot of fatigue when working with new people joining OSS. I understand it. It’s frustrating to be asked the same question for the 100th time because people didn’t read the README. But losing your cool and blowing up at people is a losing proposition. For many of these folks, their interaction with you might be their very first interaction with Open Source ever! Your response could lead them down a road to becoming a valued and experienced contributor, or could totally cool them off the idea of joining in. So be welcoming. Try to remember how nervous people are about making their first contribution and act accordingly.

Can you tell us some of the first open source projects you worked on as a contributor? Why did you get involved? How did you get started?

Like many OSS contributors, I got involved because I was bored. At work I spent all day writing the same standard data-in data-out web applications for every client. Of course when I updated my resume, I managed to make those applications sound cutting edge and full of rocket surgery. Open Source afforded me the opportunity to delve into different types of software. For example, I wanted to try my hand at a desktop application. I spent a lot of time at work reading blog entries from people doing more interesting work than I was doing.

So it’s fitting that my first foray with open source started with RSS Bandit (an RSS aggregator) a long time ago. For the youngsters reading this, it’s like decentralized Medium full of very self-important writing (again, like Medium), but with many gems hidden among the bloviating. I started off by making contributions to the documentation. The maintainers started to trust me and gave me commit access so I could make direct contributions. It was a thrill to see my contributions used in the wild. I was hooked.

From there I started my own project with Subtext which pretty much amounted to taking a second job. It was with great sadness and relief that I shut it down after some 8 years working on it. It’s been supplanted by Jekyll for me. It’s the cycle of code. Newer and better code replaces older outdated approaches.

Looking back, what bug are you most proud of fixing in an open source project?

Too many to consider. Perhaps it was taking the four configuration files and merging them into one (via Subtext) that really simplified the installation of the blog engine. That really drilled into me the idea that usability is one of the most essential features for any project. The installation process needs to be flawless. If people can’t even get started using your software, they won’t stick around. They really don’t care about how hard that work is for you. They don’t have time to think about you, they’re just trying to get something done and the best thing you can do is make sure your software doesn’t get in their way.

What project(s) do you spend most of your time on now?

In terms of Open Source projects, I mostly spend my time on Octokit.net, a client library for the GitHub API I also occasionally maintain the many small NuGet packages I’ve written. I also maintain the Semantic Versioning (semver) specification. But that’s mostly a hands-off affair these days since a great feature of a specification like that is to not change too drastically too often. Rather than focus my time on one project these days, I mostly contribute small fixes back to a large number of other open source projects that we happen to use at work and that I use in my free time.

Can you tell us one thing you have learned about running an open source project?

A lot of people will tell you they'll contribute, but very few will. So treat those folks very well! Well, treat everybody well! Also, everybody has opinions on what you should do. After all, opinions are free. So seek out opinions from those who have skin in the game. The idea that if you implement some feature, someone will start using your code is usually a lie. So I tend to focus on those who are actually using the software. I also focus on those who go so far as to contribute to the software in any way. When you consider that the default action for a vast majority of users is to do nothing, something as seemingly small as logging an issue is a major contribution. Appreciate it!

Why is open source software important to you?

It's mostly about the community of folks who have a shared interest around a piece of code and work together to raise the state of the art. As a consumer, it's important to me to be able to tweak things for my scenarios at times when the API lacks the flexibility to accomplish my goals without code changes. As a participant, it’s been a great source of professional and skill growth. OSS has been a great outlet to leveling up and diversifying my skills. The types of projects I can work on isn’t driven solely by what the market finds profitable at any given moment.

What is it about .NET that you like most?

I'm just a big fan of C# and Visual Studio. I happen to like statically typed languages and am really familiar with C#. I think platforms are a lot like culture. You tend to like the one you’re born into. My first job happened to use classic ASP and I’ve been on the Microsoft stack ever since. Though being at GitHub has definitely helped me branch out a lot more. There’s so much each community can learn from each other.

What does the future of .NET look like in your dreams?

In my dreams, everybody who uses .NET is doing it on GitHub on every platform!

Thanks, Phil!

Feel free to ask more interview questions in the comments below.

Enjoy,
-Beth Massi, .NET Foundation Technical Evangelist