**Automated Tests and Code Quality**
As I work on my VS Code extension, I've noticed that automated tests are an essential aspect of ensuring code quality. While there's only one PR validation test currently set up, it's reassuring to know that there are automated tests in place to prevent regressions when making changes. Upon visiting the "Check" section, I can see all the automated tests that have been set up to ensure nothing breaks when making a change. However, upon visiting the "Files Changed" section, I can actually see the code I've written, with new lines highlighted in green and deleted lines displayed in red.
**Code Development and Debugging**
As an intern working on VS Code, I've had the opportunity to work on various projects, including one that involves exporting a Jupyter notebook to PDF, HTML, or Python script. This feature is still under development, but it's exciting to see how it will be useful for users in the future. To develop and debug my code, I use VS Code as both my development environment and debugging host. The "Terminal" tab runs tasks in the background, compiling all changes and displaying eleven errors that I can view in a new window. By clicking on the "Terminal" tab, I can see how the debugging process works and make necessary adjustments to my code.
**Code Organization and Collaboration**
As I work on my VS Code extension, I've found it useful to have multiple instances of VS Code open at once. One instance serves as my main development environment, while another is used specifically for debugging purposes. This allows me to keep track of changes and test new features in real-time. By organizing my code into separate files and using a version control system, I can collaborate with others and ensure that our changes are compatible.
**Code Features and User Experience**
One of the key features I'm currently working on is making the pane resizable. This might seem like a simple feature, but it was actually quite challenging to implement. The next step in this project involves creating a feature for exporting files as PDF, HTML, or Python script. Currently, this feature only appears in my current codebase and does not affect users who have not installed the extension.
**Saving Changes and Feature Development**
When working on new features, I make sure to save changes frequently to avoid losing progress. In some cases, it's necessary to save changes before exporting files, as shown by the pop-up that asks me to confirm saving my work. By implementing these features and ensuring they are properly tested, I can provide users with a seamless and efficient experience.
**Day-to-Day Work**
As an intern working on VS Code, I spend most of my day writing code and debugging issues. My current project involves creating a feature for exporting Jupyter notebooks to different formats. This has been a challenging but rewarding experience, and I'm excited to see how it will be received by users in the future. By sharing my work with others through videos like this one, I hope to provide insight into what it's like to work on a real project and collaborate with other developers.
**Conclusion**
Working on VS Code has been an incredible experience that has allowed me to develop skills and knowledge as a developer. Through automating tests, debugging code, and collaborating with others, I've learned the importance of these processes in ensuring high-quality software. By sharing my journey through this video, I hope to provide insight into what it's like to work on a real project and showcase the capabilities of VS Code.
"WEBVTTKind: captionsLanguage: enhello everyone and welcome back to another YouTube video so in today's video what I'm gonna do is talk to you but when I actually work on at Microsoft as a software engineer in turn now I'm excited about this video and I think this is really cool because I can actually give you guys some really good insight into what it's like to work as a software engineer at a big tech company and what you actually do on a day to day basis and the reason I'm able to do that and I'm actually gonna be able to show you all of the code that I've written so far is because this is an open-source project so I'm actually on the BS code Python extension team working on data science related features so vs code is a very popular code editor it looks like this I'm sure you guys have seen it before if you're into programming at all and it is one of the most popular code editors in the world if not the most popular one within it there's a bunch of things called extension so actually I should leave this up if I come here and I go to the extensions pane which is on the side here you can see all of the extensions I have enabled one of which is the Python extension so this right here if you've installed this you may potentially be seeing changes that I've actually made to this extension so the extension is essentially a way to support extra features just other things in vs code related normally to specific programming languages you can see here there's like a react extension there's all these different kind of extensions some of them are produced by Microsoft and some of them are third-party extensions but one of the reasons this is able to be open source is because you know it's not really a huge deal it just is the Python extension for vs code so within that there's a bunch of different areas there's the core extension team there's the language server team which is responsible for doing all the intellisense and all of your code completions and then there's the data science team which I'm on and the data science team is responsible for making data science features that helped out a scientist right so people that are working in machine learning and AI they're working with Jupiter notebooks and in fact I'm going to show you some of the features I'm working on in a second that are very heavily related to job Jupiter notebooks excuse me on that one but what I wanted to show you though is kind of how it works in terms of how do I actually push code how do I figure out what to work on how do we prioritize issues I think that's a cool thing to show so I wanted to show you that we use github for all of this so github is a really powerful tool I knew it was powerful but not until I started working at Microsoft which owns github by the way I realized how powerful it really is and how many things you can do with it so first of all this is the repository so this is the entire code base for the Python extension for Visual Studio code I'll put this in the description and you guys can go and look at this all you want you can mess with it you can actually contribute code and make a pull request if you wanted to you can file issues if you notice things are wrong and in fact one of the ways that we actually figure out what to work on and what needs to be changed for future releases is by looking at this issues tab so a lot of the issues that are here will actually be posted by external contributors so those are people that are not a part of the Microsoft organization they come here and say hey I had an issue in vs code with the Python extension I need this fixed and they file an issue so let me just click on one here and just see what this says failed to activate Jupiter or create empty notebook so you can see that this goes through a whole whack of wow I didn't realize that was gonna be that long but just an issue that happened when this person was using our extension so you can see this is labeled data science type bug and it might be a part of a specific group or it might be organized in a certain way and that's kind of the way that we figure out what's wrong and what we need to work on and what new features people want if there's a issue that's come up a lot of times there a lot of people are up voting it then that's probably what we'll work on for the next release of vs code again I'm really just kind of a beginner here this is my basic understanding and the senior guys could definitely tell you more than I could but I think it's cool to understand that you can actually have a direct impact on what I potentially decide to work on and then the pull request tab is the next one I wanted to show you so this is actually how you go about making a change to this code so when you want to make a change what you do is you submit a pull request a pull request describes what you change it shows like why you changed it and what parts of the code you actually modified and then one of the senior developers on this team was write access to the repository will come look at do a review of it and then if it's a little good they'll give you a checkmark if it passes all our automated tests you'll get a check and then you can actually merge this right into the code base so you yourself can actually make a change to the vs code python extension assuming it's something that we want and you've done it properly so let me go here now to actually one of the changes that I've made to show you what I mean by a pull request so this was my I don't wanna say my first pull request maybe make my second or my third one and this was to save the variable Explorer height persistently that's not gonna mean much to you guys but there is a variable Explorer within vs code it was a not resizable before which meant it stayed as kind of a static window and it was really annoying because it was quite large so one of the first things I worked on was actually making that resizable and now making it so that it saves the height persistently so that when you come back into vias coder you open a file where you've resized that pane it remembers where you resized it so that you don't have to keep resizing it and keeps resetting so you can see I do a little description for what I changed I give my checks for the things that are appropriate and then you can look at all of the commits that I made so these are commit messages from github on my local machine I added a label called skip news some people who reviewed it requested some changes wanted me to modify something I made those changes so address the comments and then I got approved had two approvals here and then all the way down here I passed the code quality test I passed a bunch of other automated tests which I think we can see here other than one PR validation but that's not a big deal that's not important test and then I go went ahead and merged this into the master branch which means now this change is final and that everyone can see it that has the most recent version of this vs code Python extension so I think that's pretty cool that's how I changed it one cool thing to show you here is that if you go to checks or is it checks now sorry not checks check shows you all the automated tests that they have set up to make sure that nothing breaks when you make a change but if you go to files changed you can actually see all of the code that I wrote it's all highlighted in green and then anything that I deleted would be in red so like that or anything that I potentially moved around so anyways that's enough for this I want to actually show you what I work on on a day-to-day in terms of the code that I've been writing for the past week or two and I think that's pretty cool so let's go here and you can see that I've actually have open the Python vs code repository it's not a hundred percent up to date because I haven't merged the most recent changes or pulled the most recent changes but I have a few files open here one of which is export manager I'm currently working on this file and start writing this one from scratch and this is to actually export a Jupiter notebook to a PDF to HTML or to a Python script so we want to have that kind of functionality so that's a project that I've started it and then I'm gonna be tackling for this next few weeks anyways let me actually show you how we debug and kind of work in vs code to work on vs code because it's funny right I'm working on a vs code extension and I'm using vs code as my development environment so you can see that this is another instance of vs code that I have open here and it says extension development host what that means is this is kind of my debugging version of vs code this is one that I've built so there's a bunch of tasks running in the background here on vs code if I go to terminal they're automatically compiling all of my changes you can see eleven errors in this one that's great and serving them to this new vs code window so that I can actually test out anything that I've changed so the first feature that I worked on and this was kind of my like getting into the code base who's getting used to things was resizing this pane so make this resizable which by the way was a lot harder than it looks and then make it simple when you reopen it it stays the same size and if I save this file and reopen the file it saves the height that we have the variable Explorer at so that's the first change and the next thing I'm working at is this export as features so if you go on vs code right now and you click on this button that won't show up this is something that's just in my current code base right here and you can see a Python script HTML PDF and these are going to be the options that you have when you want to export something so let me make a change here and actually save this file so let's just save this as tester on my desktop let's make a change like that let's save and actually let's make another change so notice how it's unchanged I'm gonna go here and go HTML and then we get a little pop up down here please save this file before exporting save save and don't show again or cancel so that's something that I've implements as well as you know checking all this saving stuff so I'll hit save boom and now it's gonna ask me where I want to save my HTML and I can choose where I want it to go and then I haven't finished most of that feature yet but that's something that I'm working on so that is pretty much what I work on at Microsoft and on a day-to-day I could go in and show you way more but I wanted to keep this video kind of short and just give you guys a little insight into what I'm actually doing and see kind of how cool it actually is because I think it's really interesting that you guys can go and view all of the changes that I'm actually making that I can show you all of this stuff and that you actually get an idea that as an intern I'm writing real code and I'm working on a product and features that you guys are actually gonna be able to use and that you know millions of other people may be able to use in the future as well so without being said that has been this video I hope you guys enjoyed if you did make sure leave a like subscribe and I will see you all again in another YouTube video\n"