DEV Community

Jonathan Carter
Jonathan Carter

Posted on • Updated on

I'm a Visual Studio PM at Microsoft, working on developer services like Live Share. Ask Me Anything!

Hey all! I've been at Microsoft for >11 years, and have had the pleasure of working on everything from ASP.NET, the JavaScript/debugger editor in Visual Studio, the IE developer tools (performance/memory profilers), OData (aka GraphQL before it was cool), our Node.js support in Azure, and CodePush. So I've spent a lot of time caring about web development, DevOps, cloud and productivity. My current passion/focus is developer collaboration and how it can be fundamentally improved to better meet the diverse needs of teams.

I've recently joined the DEV.to community (which I love!), to share my thoughts on why our team built Visual Studio Live Share, and what makes it potentially interesting (only you can really judge that):

While Live Share provides an experience for real-time collaboration, my team is also working on services to make async collaboration more efficient as well. So we're interested in trying to enhance collaboration holistically.

I'm curious to hear how teams are collaborating, and what about your current tools/processes are good and bad. That said, feel free to ask me anything about Live Share, my career, my development preferences, being a PM, or anything else! I can’t guarantee I’ll have an answer for everything, but at a minimum, I’ll try to be interesting and transparent 🤗

Oldest comments (76)

Collapse
 
stiv_ml profile image
Stiv Marcano

How many years of experience you had when you joined Microsoft? What was the first project you worked on there? And the most difficult one?

Collapse
 
lostintangent profile image
Jonathan Carter

I had been a full-time developer for ~5 years at the point I joined Microsoft. I had primarily worked in PHP, ColdFusion (ugh!) and Java, building a few different custom CMS’ (everyone wanted to build these at the time), e-commerce/retail sites, and a lot of government/corporate intranets. I was really interested in the .NET ecosystem at the time, and so working at Microsoft seemed like a decent way to get more involved 😁

The first project I worked on was ASP.NET MVC (it had just released its first beta when I joined), which was really fun and I got to work with some amazing people.

As far as which project was the most difficult, I’d have to say building the performance profilers for Visual Studio and the IE dev tools. I had to learn a massive amount of things in order to really embrace the space (e.g. how browsers work, GPU/rendering stacks, memory and networking) and actually create something useful. I think we did a good job, and helped a bunch of developers optimize their apps, but performance is really hard!

Collapse
 
nickytonline profile image
Nick Taylor

I used to be a C#/ASP.NET dev but am a little out of the loop these days. For .NET core, do you recommend that devs use VS Code or is it preferable to go with the full blown Visual Studio?

Collapse
 
lostintangent profile image
Jonathan Carter • Edited

Personally, I’m more comfortable with VS Code (as a web dev) and I find the .NET Core/ASP.NET Core experience to be really good. That said, Visual Studio IDE is hands down the premier tool for C# development. For example, my team also builds IntelliCode, and it’s support for C# is currently exclusive to Visual Studio. So I’d recommend Visual Studio if you were looking to have the most productive/rich dev experience for .NET.

Collapse
 
nickytonline profile image
Nick Taylor • Edited

Hands down I've never seen anything come close to Visual Studio in terms of full-blown IDE.

Thread Thread
 
lostintangent profile image
Jonathan Carter

Me neither! Though I’m obviously a little biased 🤗

Collapse
 
itsjzt profile image
Saurabh Sharma • Edited

Loving the live share in VS code. Just came here to say thank you.

Collapse
 
lostintangent profile image
Jonathan Carter

Thanks! Don’t hesitate to let us know how we can make it even better. We know we have a long way to go still 👍

Collapse
 
itsjzt profile image
Saurabh Sharma

Can you please tell me how can I apply for jobs at Microsoft ? (I'm a frontend web dev)

Thread Thread
 
lostintangent profile image
Jonathan Carter

If you search for positions on careers.microsoft.com, you can apply there, and your submission will be immediately visible to the hiring manager 👍

Collapse
 
nickytonline profile image
Nick Taylor

I'm also curious about Visual Studio for Mac. I'm assuming it uses Mono under the hood or is it .NET core? Is the goal of Visual Studio for Mac to reach feature parity with VS for Windows or does it have a different goal?

For those interested see visualstudio.microsoft.com/vs/mac/

Collapse
 
lostintangent profile image
Jonathan Carter • Edited

That’s a good question. I believe it’s Mono, but I’m not actually an expert on VS for Mac. Regarding parity, I believe the team is very focused on making mobile and web (ASP.NET Core) development awesome. So I’m not sure if parity itself is a goal, but they’re very keen to know what capabilities are missing that would help address the aforementioned goals. If you’ve got feedback there, I will make sure to pass it on to the team!

Collapse
 
nickytonline profile image
Nick Taylor

Ahh, I'm not currently using it, was more curious. 😉 Thanks for the info!

Collapse
 
borisimple profile image
Boris Krstić • Edited

Hi! Little off topic. When we can expect something similar as Typescript for Python? Let's call it "Typethon" 😊

Collapse
 
lostintangent profile image
Jonathan Carter • Edited

Have you seen Pyright yet? That may be of interest to you 😁

Collapse
 
borisimple profile image
Boris Krstić

Thanks for this!

Collapse
 
vip3rousmango profile image
Al Romano • Edited

We use Live Share at work all the time to quickly talk about code together with everyone still at their desks usings Teams. Keeps us in our work flow but still lets us collaborate together.

We use it a lot to showcase work we're doing ourselves to the rest of our team and we also onboard new developers to the team by walking them through the codebase, especially if they're remote or a 3rd party vendor.

Keep up the great work with Live Share, it's super appreciated by us fellow devs!!

As a question, what's your single favorite feature when using Live Share with more than 2 people?

Collapse
 
lostintangent profile image
Jonathan Carter

Myself and two other devs on the team pair every week, and I think my favorite feature is the ability to observe what they’re editing in seperate editors (within a VS Code grid layout), while being able to edit in a seperate file or section of code at the same time. I personally find it incredibly powerful to be able to explore ideas on my own, while simultaneously “checking in” on what my peers are doing.

I also love the audio support and whiteboard extensions, since Live Share always works better with a voice call, and we frequently find the need to diagram something ad-hoc.

Collapse
 
vip3rousmango profile image
Al Romano

Ooh, I use Whiteboard app all the time, didn't think about linking them! I'll have to add that in.

Collapse
 
matt123miller profile image
Matt Miller

omg! I didn't realise audio support exists, let alone a useful sounding whiteboard. Yet more reasons to love VSCode.

Collapse
 
acohenot profile image
Alan Cohen

We tried Live Share once on Visual Studio 2017 but it did not work because our solutions are stored in a separate tree from projects (We structured this way because our solutions share projects) - but is not compatible with Live Share. I hope this can be resolved some time.

Example:
src\app1\sln1.sln
src\app2\sln2.sln
src\proj\proj1.csproj
src\proj\proj2.csproj
src\proj\proj3.csproj
src\proj\proj4.csproj

Collapse
 
lostintangent profile image
Jonathan Carter

Hey! This issue has been resolved, so if you install VS2019 (which includes Live Share out-of-the-box) or update the extension, then you should be good to go. Please let me know if you run into any issues!

Thread Thread
 
acohenot profile image
Alan Cohen

That's great! I'll try it.

Collapse
 
ryanfourier profile image
ryanfourier

Though it may sound trivial, not having Emacs keyboard shortcuts natively available is very detrimental to my workflow. As JetBrains Rider becomes more and more capable, there is less need for me to spend time in Visual Studio.
Why is it so difficulty to support keyboard shortcuts when all other IDEs have?

Collapse
 
lostintangent profile image
Jonathan Carter

Have you given this extension a try? marketplace.visualstudio.com/items.... I’d love to hear if that’s sufficient for bringing some of your Emacs ergonomics into Visual Studio.

Collapse
 
ryanfourier profile image
ryanfourier

Thanks so much for replying.
Yes. I've wrestled with this extension to get it to work. When I trick the VSIX installer to recognizing the VSK file, it isn't very stable. The comments on the marketplace page indicated that I'm not alone.

Thread Thread
 
ryanfourier profile image
ryanfourier

The author of the tool adapted it from a 2012 version.

Thread Thread
 
ryanfourier profile image
ryanfourier

The best way I've found it to work is the change the vsix file extension to zip, then copy the Emacs.vsk to my local Visual studio folder in AppData/Roaming (or Local?).... And then use a Keyboard Manager extension (by the same extension author) to recognize the "new" VSK.
This works about 70% of the time though.

Thread Thread
 
lostintangent profile image
Jonathan Carter

OK I apologize about this frustrating situation! I just sent an email to one of my peers to see if there’s any pro tips here, or if we’re considering native Emacs support. Stay tuned!

Thread Thread
 
ryanfourier profile image
ryanfourier

Thanks so much Johnathan!

Thread Thread
 
techr10n profile image
Ryan Hammang

I was logged into the wrong account (which I deleted). Thanks again Jonathan. Have a great rest of your weekend.

Collapse
 
ryanfourier profile image
ryanfourier

The best way I've found it to work is the change the vsix file extension to zip, then copy the Emacs.vsk to my local Visual studio folder in AppData/Roaming (or Local?).... And then use a Keyboard Manager extension (by the same extension author) to recognize the "new" VSK.
This works about 70% of the time though.

Collapse
 
dinsmoredesign profile image
Derek D • Edited

Not Live Share related - which is awesome, by the way! My team and I have been using it quite a bit lately on our work from home days. It makes debugging issues so much easier and just bouncing ideas off each other a breeze... Plus it works on our network which is notorious for blocking just about anything useful to the dev team!

I'm mostly curious about the future of VS. I work in a .NET shop, but I mostly just handle front end. From my standpoint, VS is incredibly expensive and provides very poor tooling for front end developers, as apposed to VSCode, which is fantastic. I haven't tried VS2019 yet, but 2017 didn't even have syntax highlighting support for JS Template Literals, let alone several other features. There's a lot that can be added via extensions, but I just find VS in general to be very clunky, adding more things to it's startup just ends up decreasing it's responsiveness. I know our back end guys love it (I'm sure C# support is amazing), but from my usage of the language, VSCode does everything I need for .NET development just as well.

It seems to me like Microsoft is putting a lot of effort into VS Code, but development on their flagship product is much slower, which seems strange since it's backed by paying customers. Is Microsoft's plan to eventually phase out Visual Studio, in favor of VS Code, or will we (hopefully), start seeing more features, like Live Share, make it over to VS?

Collapse
 
lostintangent profile image
Jonathan Carter • Edited

Live Share is actually fully supported in VS, and in fact, it now ships in-the-box with VS 2019. My team also builds IntelliCode, which is not only supported in VS (and VS Code), but has a larger feature set in VS for C# (e.g. being able to train custom models on your codebases). That said, the investment in Visual Studio is significant, and it’s by far the premier IDE for C#/C++ development.

While VS Code supports many languages and app types, it’s primary focus is JavaScript/TypeScript development (web, Node.js), and so it provides a very comprehensive experience for those scenarios. It also has a very vibrant ecosystem of extension authors, which help contribute to the overall experience as well.

So both VS and VS Code have their own strengths, but ultimately compliment each other. Neither one really impacts the other, since they’re optimized for different scenarios, and in many cases, different developer preferences (e.g. do you prefer a fully-featured IDE or an editor + CLI tools and your choice of extensions?) If there are thing things in particular you’d like to see in VS, I’d love to hear that feedback, and I can make sure it’s passed on to the right folks.

Collapse
 
lostintangent profile image
Jonathan Carter

The VS Code extension itself is written in TypeScript, but the bulk of the “smarts” behind Live Share is written in .NET Core, which allows us to share most of the client-side logic between VS and VS Code.

On the server-side, we use ASP.NET Core and Cosmos DB for authentication, and the ability to create and join sessions. When a dev tries to join your session, we attempt to connect you directly (P2P), and if that isn’t possible (e.g. due to proxy restrictions), then we create an Azure Relay connection and use that as the means of communication. However, in each case (direct or relay), all communication happens over an SSH connection that is encrypted end-to-end. As a result, no code or activity is ever stored on our servers or accessible by anyone besides participants within the collaboration session.

Collapse
 
rhymes profile image
rhymes

Are all extensions using the encrypted connection? I'm thinking about the audio call or other that might actually include private company info, not just the code.

Thank you for the great answers!

Thread Thread
 
lostintangent profile image
Jonathan Carter

Yep! Since all extensions build on top of our SDK, they communicate over the exact same secure connection that Live Share users for its “core” capabilities (e.g. terminals, files).

Thread Thread
 
rhymes profile image
rhymes

Thank you! That's great to know!

Collapse
 
yaser profile image
Yaser Al-Najjar • Edited

Do you think Visual Studio will be totally replaced by VSCode anytime (given that VS is just too bloated comparing to VSCode)?

Collapse
 
lostintangent profile image
Jonathan Carter • Edited

Nope! They each have their own unique strengths, and in most cases, target very different developer preferences (e.g. fully-featured IDE vs. editor + your choice of extensions). If you’re finding that VS or VS Code works better for you, then that’s awesome. But VS has a massive user base, and is the premier tool for many scenarios (e.g. .NET dev, C++, desktop apps, etc).

Collapse
 
yaser profile image
Yaser Al-Najjar

I really think that if we have resharper for VSCode, I will never look back at VS.

I just feel that VS was always annoying especially the 5 seconds it take to start, the amount of ram it takes, even the way it feels kinda bloated.

Still, can't replace it when doing ASPCore or Xamarin (but I really wanna see the day I can replace it by VSCode).

Thread Thread
 
lostintangent profile image
Jonathan Carter

Have you given VS 2019 a try yet? The team made massive perf improvements across the board in this release, and I actually run it in Parallels on my
Mac, with surprisingly good perf.

Thread Thread
 
yaser profile image
Yaser Al-Najjar

I really would like to do so, the last version I used was 2017 with ASP Core 2.1

Collapse
 
yaser profile image
Yaser Al-Najjar

Do you use/used resharper?
If so, to what extent?

Collapse
 
lostintangent profile image
Jonathan Carter • Edited

Personally no. I find that VS has enough productivity features built-in as of VS2019, that I haven’t found the need to use many extensions (other than IntelliCode, which my team also builds). That’s just me though!

Collapse
 
yaser profile image
Yaser Al-Najjar

I always felt resharper is always ahead of what intellicode offers (for real... not being a jerk here 😅).

I know intellicode always catches up with whatever resharper has in their feature set.

But, I feel that resharper features are more solid.
The last time I tried refactoring, resharper had it better (discovering which vars need to change in all different files including cshtml).

Generating snippets too, like interfaces from ready classes or grabbing interface functions into a class that implements that interface.

One of the cool features that I recently saw was outstanding, showing vars values on the same line while debugging:

a

Thread Thread
 
lostintangent profile image
Jonathan Carter

Thanks for the feedback! I'll make sure to share that with the right folks.

Collapse
 
acohenot profile image
Alan Cohen

Lack of native SVN support in Visual Studio Code is making it hard to adopt it. Thoughts on adding Subversion as a first class version control system?

Collapse
 
lostintangent profile image
Jonathan Carter

In general, we try to keep the “core” of VS Code as light as possible, and rely on extensions to contribute additional capabilities. Out of curiosity: have you already tried the SVN extension? If so, did it not provide the support you need?

Collapse
 
acohenot profile image
Alan Cohen

I'll check it out. Thanks.

Collapse
 
mattchatterley profile image
Matt Chatterley

When can we expect live share in VS for Mac? It’s the main thing we miss!

Collapse
 
vnjogani profile image
Vinit Jogani

What would it take for someone to definitively convince you to hire them?

Collapse
 
lostintangent profile image
Jonathan Carter

Creating a product/OSS project (regardless if it’s “successful” or not) and demonstrating the passion to drive awareness, create community engagement, focus on the details like documentation, iterating on feedback to increase retention, prioritizing work based on key use cases and adoption blockers, etc.

The last person I hired to my team was actually someone I had the pleasure of working with on an open source project. It made it really easy to see their skill set not only naturally, but also holistically (since running an OSS project is like product management).

Collapse
 
lexepox profile image
LexEPoX

Hi there!
Not Live Share related one :)
Many guys are missing ToolBox's searching functionality (the last version where it works is 2015). We still have high hopes for VS2019. Please share this with your team :)