What I Do at Microsoft - Software Engineer Intern Projects

Tech With Tim · Intermediate ·🧠 Large Language Models ·6y ago

Key Takeaways

The video showcases the work of a software engineer intern at Microsoft, specifically on the VSCode Python extension team, where they contribute to data science related features and work with tools like VS Code, Python, GitHub, and Jupyter notebooks.

Full Transcript

[Music] Hello everyone and welcome back to another YouTube video. So in today's video, what I'm going to do is talk to you about what I actually work on at Microsoft as a software engineer intern. 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 going to 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 VS 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 extensions. So, actually, I should leave this up. Uh, 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, um, just other things in VS Code related normally to specific programming languages. But 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 thirdparty 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 uh that help data scientists, right? So people that are working in machine learning and AI that are working with Jupyter 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 Jupyter notebooks. Excuse me on that one. Uh 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 codebase 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 that 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 going to be that long. U but just an issue that happened when this person was using our extension. So, you can see this is labeled data science type bug. Uh and it might be a part of a specific uh 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 or a lot of people are upvoting 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. Uh, 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 changed. It shows uh like why you changed it and what parts of the code you actually modified and then one of the senior developers on this team who has right access to the repository will come look at it, do a review of it, and then if it's all good, they'll give you a check mark. If it passes all our automated tests, you'll get a check and then you can actually merge this right into the codebase. 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 want to say my first pull request, maybe like my second or my third one. And this was to save the variable explorer height persistently. That's not going to mean much to you guys, but there is a variable explorer within VS Code. uh it was 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 VS Code or you open a file where you've resized that pane it remembers uh 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 reviewed it. Uh requested some changes, wanted me to modify something. I made those changes. So addressed the comments and then I got approved, had two uh 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 an 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? No, sorry not checks. uh 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 100% up to date because I haven't merged the most recent changes or pulled the most recent changes. Uh but I have a few files open here. One of which is export manager. I'm currently working on this file. I'm start writing this one from scratch. And this is to actually export a Jupyter 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 and that I'm going to 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 11 errors in this one. That's great. Uh, 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 codebase, just 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 so that 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 uh had the variable explorer at. So, that's the first change. And the next thing I'm working at is this export as um feature. So, if you go in VS Code right now and you click on this button, that won't show up. This is something that's just in my current codebase right here. And you can see I have 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 going to go here and go HTML. And then we get a little popup down here. Uh, please save this file before exporting. Save. Save and don't show again or cancel. So, that's something that I've implemented as well is, you know, checking all this saving stuff. So, I'll hit save. Boom. And now it's going to 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 on a dayto-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 uh 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 going to be able to use and that you know millions of other people may be able to use in the future as well. So, with that being said, that has been this video. I hope you guys enjoyed. If you did, make sure to leave a like, subscribe, and I will see you all again in another YouTube video.

Original Description

So what do software engineers actually do? In this video I show you exactly what I work on at Microsoft as a software engineer intern. I've worked as a software engineer intern at Microsoft for about 3 weeks now on the VSCode python extension team, working on data science related features. VSCode Python Repo: https://github.com/microsoft/vscode-python 🎙 Subscribe to my second channel for weekly podcasts! https://www.youtube.com/channel/UCSATlCAUi7R0Ik-wsZb2gOA ◾◾◾◾◾ 💻 Enroll in The Fundamentals of Programming w/ Python https://tech-with-tim.teachable.com/p/the-fundamentals-of-programming-with-python 👕 Merchandise: https://teespring.com/stores/tech-with-tim-merch-shop 📸 Instagram: https://www.instagram.com/tech_with_tim 🌎 Website https://techwithtim.net 📱 Twitter: https://twitter.com/TechWithTimm ⭐ Discord: https://discord.gg/pr2k55t 📝 LinkedIn: https://www.linkedin.com/in/tim-ruscica-82631b179/ 📂 GitHub: https://github.com/techwithtim 🔊 Podcast: https://anchor.fm/tech-with-tim 💵 One-Time Donations: https://www.paypal.com/donate/?token=m_JfrPK7DsK4PLk0CxNnv4VPutjqSldorAmgQIQnMozUwwQw93vdul-yhU06IwAuig15uG&country.x=CA&locale.x= 💰 Patreon: https://www.patreon.com/techwithtim ◾◾◾◾◾◾ ⚡ Please leave a LIKE and SUBSCRIBE for more content! ⚡ ⭐ Tags ⭐ - Tech With Tim - Microsoft Software Engineer - Software Engineer Internship - Intern at Microsoft - What Do Software Engineers Do? ⭐ Hashtags ⭐ #Microsoft
Watch on YouTube ↗ (saves to browser)
Sign in to unlock AI tutor explanation · ⚡30

Playlist

Uploads from Tech With Tim · Tech With Tim · 0 of 60

← Previous Next →
1 A* Path Finding Algorithm(Visualization)
A* Path Finding Algorithm(Visualization)
Tech With Tim
2 Python Programming Tutorial #1 - Variables and Data Types
Python Programming Tutorial #1 - Variables and Data Types
Tech With Tim
3 Python Programming Tutorial #2 - Basic Operators and Input
Python Programming Tutorial #2 - Basic Operators and Input
Tech With Tim
4 Python Programming Tutorial #3 - Conditions
Python Programming Tutorial #3 - Conditions
Tech With Tim
5 Python Programming Tutorial #4 - IF/ELIF/ELSE
Python Programming Tutorial #4 - IF/ELIF/ELSE
Tech With Tim
6 Python Programming Tutorial #5 - Chained Conditionals and Nested Statements
Python Programming Tutorial #5 - Chained Conditionals and Nested Statements
Tech With Tim
7 Python Programming Tutorial #6 - For Loops
Python Programming Tutorial #6 - For Loops
Tech With Tim
8 Python Programming Tutorial #7 - While Loops
Python Programming Tutorial #7 - While Loops
Tech With Tim
9 Python Programming Tutorial #8 - Lists and Tuples
Python Programming Tutorial #8 - Lists and Tuples
Tech With Tim
10 Python Programming Tutorial #9 - Iteration by Item (For Loops Continued...)
Python Programming Tutorial #9 - Iteration by Item (For Loops Continued...)
Tech With Tim
11 Python Programming Tutorial #10 - String Methods
Python Programming Tutorial #10 - String Methods
Tech With Tim
12 How to Overclock a NVIDIA GPU
How to Overclock a NVIDIA GPU
Tech With Tim
13 Python Programming Tutorial #11 - Slice Operator
Python Programming Tutorial #11 - Slice Operator
Tech With Tim
14 Python Programming Tutorial #12 - Functions
Python Programming Tutorial #12 - Functions
Tech With Tim
15 Python Programming Tutorial #13 - How to Read a Text File
Python Programming Tutorial #13 - How to Read a Text File
Tech With Tim
16 Python Programming Tutorial #14 - Writing to a Text File
Python Programming Tutorial #14 - Writing to a Text File
Tech With Tim
17 Python Programming Tutorial #15 - Using .count() and .find()
Python Programming Tutorial #15 - Using .count() and .find()
Tech With Tim
18 Python Programming Tutorial #16 - Introduction to Modular Programming
Python Programming Tutorial #16 - Introduction to Modular Programming
Tech With Tim
19 Python Programming Tutorial #17 - Optional Parameters
Python Programming Tutorial #17 - Optional Parameters
Tech With Tim
20 Python Programming Tutorial #18 - Try and Except (Python Error Handling)
Python Programming Tutorial #18 - Try and Except (Python Error Handling)
Tech With Tim
21 Python Programming Tutorial #19 - Global vs Local Variables
Python Programming Tutorial #19 - Global vs Local Variables
Tech With Tim
22 Python Programming Tutorial #20 - Classes and Objects
Python Programming Tutorial #20 - Classes and Objects
Tech With Tim
23 Cool VBS Script to Prank Your Friends!
Cool VBS Script to Prank Your Friends!
Tech With Tim
24 How to Overclock an AMD GPU
How to Overclock an AMD GPU
Tech With Tim
25 Best GPU'S For Mining Ethereum (2018)
Best GPU'S For Mining Ethereum (2018)
Tech With Tim
26 Recursion and Memoization Tutorial Python
Recursion and Memoization Tutorial Python
Tech With Tim
27 Ethereum Mining Rig - Hardware Guide
Ethereum Mining Rig - Hardware Guide
Tech With Tim
28 Pygame Tutorial #1 - Basic Movement and Key Presses
Pygame Tutorial #1 - Basic Movement and Key Presses
Tech With Tim
29 How to Install Pygame (Windows 8/10)
How to Install Pygame (Windows 8/10)
Tech With Tim
30 How to Trade Your Cryptocurrency (Bitcoin, Ethereum etc.) For Cash!
How to Trade Your Cryptocurrency (Bitcoin, Ethereum etc.) For Cash!
Tech With Tim
31 How to Mine Ethereum 2018 - WORKING (Super-Easy)
How to Mine Ethereum 2018 - WORKING (Super-Easy)
Tech With Tim
32 Microphone Comparison - $10 Mic vs $150 Mic (Blue Yeti USB)
Microphone Comparison - $10 Mic vs $150 Mic (Blue Yeti USB)
Tech With Tim
33 Pygame Tutorial #2 - Jumping and Boundaries
Pygame Tutorial #2 - Jumping and Boundaries
Tech With Tim
34 Pygame Tutorial #3 - Character Animation & Sprites
Pygame Tutorial #3 - Character Animation & Sprites
Tech With Tim
35 Pygame Tutorial #4 - Optimization & OOP
Pygame Tutorial #4 - Optimization & OOP
Tech With Tim
36 OBS Studio Tutorial - Best OBS Settings
OBS Studio Tutorial - Best OBS Settings
Tech With Tim
37 Linear Search Algorithm - Python Example and Code
Linear Search Algorithm - Python Example and Code
Tech With Tim
38 Make Any Mic Sound AMAZING! (WITH OBS)
Make Any Mic Sound AMAZING! (WITH OBS)
Tech With Tim
39 Binary Search Algorithm - Python Example & Code
Binary Search Algorithm - Python Example & Code
Tech With Tim
40 Pygame Tutorial #5 - Projectiles
Pygame Tutorial #5 - Projectiles
Tech With Tim
41 Pygame Game - Mini Golf
Pygame Game - Mini Golf
Tech With Tim
42 Pygame Tutorial - Projectile Motion (Part 1)
Pygame Tutorial - Projectile Motion (Part 1)
Tech With Tim
43 Pygame Tutorial - Projectile Motion (Part 2)
Pygame Tutorial - Projectile Motion (Part 2)
Tech With Tim
44 Pygame Tutorial #6 - Enemies
Pygame Tutorial #6 - Enemies
Tech With Tim
45 Pygame Tutorial #7 - Collision and Hit Boxes
Pygame Tutorial #7 - Collision and Hit Boxes
Tech With Tim
46 Pygame Tutorial #8 - Scoring and Health Bars
Pygame Tutorial #8 - Scoring and Health Bars
Tech With Tim
47 Cloud Mining vs. Hardware Mining - 2018
Cloud Mining vs. Hardware Mining - 2018
Tech With Tim
48 How to Install Pygame on Mac OSX (Fast-Simple)
How to Install Pygame on Mac OSX (Fast-Simple)
Tech With Tim
49 Pygame Tutorial #9 - Sound Effects, Music & More Collision
Pygame Tutorial #9 - Sound Effects, Music & More Collision
Tech With Tim
50 Pygame Tutorial #10 - Finishing Touches & Next Steps
Pygame Tutorial #10 - Finishing Touches & Next Steps
Tech With Tim
51 How to Fade Your Screen in Pygame [CODE IN DESCRIPTION]
How to Fade Your Screen in Pygame [CODE IN DESCRIPTION]
Tech With Tim
52 How to Create a Button in Pygame [CODE IN DESCRIPTION]
How to Create a Button in Pygame [CODE IN DESCRIPTION]
Tech With Tim
53 Pygame Side-Scroller Tutorial #1 - Scrolling Background/Character Movement
Pygame Side-Scroller Tutorial #1 - Scrolling Background/Character Movement
Tech With Tim
54 Pygame Side-Scroller Tutorial #2 - Random Object Generation
Pygame Side-Scroller Tutorial #2 - Random Object Generation
Tech With Tim
55 Pygame Side-Scroller Tutorial #3 - Collision
Pygame Side-Scroller Tutorial #3 - Collision
Tech With Tim
56 Pygame Side-Scroller Tutorial #4 - Scoring and End Screen
Pygame Side-Scroller Tutorial #4 - Scoring and End Screen
Tech With Tim
57 How to Create A Message Box in Python - Tkinter
How to Create A Message Box in Python - Tkinter
Tech With Tim
58 Is Ethereum Mining Still Profitable - Is It Worth It (April 2018)
Is Ethereum Mining Still Profitable - Is It Worth It (April 2018)
Tech With Tim
59 How to Run MAC OSX on a WINDOWS PC (Clover Boot-loader)
How to Run MAC OSX on a WINDOWS PC (Clover Boot-loader)
Tech With Tim
60 Programming Problem #1 - Alphabet Soup (Beginner/Novice)
Programming Problem #1 - Alphabet Soup (Beginner/Novice)
Tech With Tim

This video showcases the work of a software engineer intern at Microsoft, where they contribute to data science related features and work with tools like VS Code, Python, GitHub, and Jupyter notebooks. The intern works on a product with features that will be used by millions of people and writes real code that will be used in production.

Key Takeaways
  1. Submit a pull request and describe changes
  2. Request reviews and address comments
  3. Pass automated tests and merge changes into master branch
  4. Resize pane and save pane size on reopen
  5. Add export as feature with options for Python script, HTML, and PDF
  6. Implement saving check before exporting
  7. Compile and serve changes using terminal
💡 The intern's work is visible to viewers through the video, and they write real code for a product with features that will be used by millions of people.

Related Reads

Up next
5 Levels of AI Agents - From Simple LLM Calls to Multi-Agent Systems
Dave Ebbelaar (LLM Eng)
Watch →