Microsoft Community Insights

Episode 5 - Exploring GitHub Copilot with Damian Brady

Nicholas Chang

Send us a text

Discussing the potential of AI in coding with insights from Damian Brady  at GitHub, as we navigate into GitHub Copilot. 

Ever wondered what it's like to amplify the voice of the developer community? Damian Brady peels back the curtain on the life of a senior developer advocate at GitHub, emphasising the  role of user feedback in shaping their tools.  He highlight resources for mastering GitHub Copilot, including the latest certification offerings, and tease the exciting involvement GitHub will have at events like the Microsoft MVP Summit and GitHub Universe. For developers seeking to connect and grow, this episode is a wellspring of knowledge, featuring avenues to engage with Damian and the innovative solutions at GitHub.

Video link: https://youtu.be/rteyDgqhtW8

Speaker 1:

Hello everyone. Welcome to Azure Microsoft Community Insight podcast, where we share insights and stories from community experts to stay up to date with Azure. My name is Nicholas and I will be your host today In this podcast. We will dive into GitHub co-pilot, but before we get started, I want to remind you to subscribe to our podcast to stay up to date so we can reach more amazing people like yourself. Today we have a special guest called Dennerine Bradley as front. Apologies for spelling wrong. Can you introduce yourself please?

Speaker 2:

Yeah, my name is Damien Brady. I am a developer advocate over at GitHub. I work on advocacy teams, which means events and podcasts and blog posts and videos and all sorts of stuff. Okay, brilliant.

Speaker 1:

The first question I wanted to ask you is that we're all going to get to know. So how do you get involved with GitHub co-part and what's a role in your project with GitHub?

Speaker 2:

Yeah, so I was an advocate over at Microsoft for I think four years and I moved over to GitHub because I was part of the DevOps advocacy team and we were talking about GitHub a lot Very shortly after I moved. So within a month or so, we announced a product of GitHub called GitHub co-pilot, which was a tool basically we call it an AI pair programmer. It's based on large language models, so at the time it was Codex, which is one of the GPT models.

Speaker 2:

It was used as like a tool to help you be more productive with code making suggestions and so on based on AI. Since then, we've had huge success with GitHub co-pilot, so part of my role as a developer advocate here is teaching people how to use it effectively teaching people what it is, what it does, what it doesn't do and just helping educate people. I think about what?

Speaker 1:

the product is. That's brilliant. Yeah, it's all about educating people, expanding people knowledge about the products. Since you're part of the advocacy team, how does GitHub co-pilot learn from the code we use and how new different languages you don't like if you have different programming language?

Speaker 2:

Yeah, so co-pilot, along with pretty much all of the GPT models, was trained on billions of lines of publicly available code and natural language. So text as well as part of that huge amount of information there is a lot of code in there.

Speaker 2:

So when you tune these models so that they know how to write code, they're really good at making predictions for what. The next thing you want to type is what you're writing code. So we say that it works technically with any programming language, but it will do better with languages that are in the training data. So, for example, it's going to do really well with Python, might as well with COBOL or something like that, but the other way it suggestions is based on the code that you have around your cursor at the time, or, in the case of GitHub, co-pilot chat which is kind of a code focused GPT or chat GPT, you might think of it but in the context of your editor.

Speaker 2:

It also uses the context of the other files that you have open and the questions that you've asked and the answers that it's given you previously, and things like that.

Speaker 1:

Okay. So if you have like a working on something like NET, if you ask a question, it will train the module using NET and then we're able to know the language based on that, yeah well, the model is trained on a bunch of different languages, but by giving it the context of I'm working in NET it knows its answers are more likely to be NET specific.

Speaker 2:

If you do things like highlight a chunk of code and say can you write me a test or unit test for this function? If that test is in C sharp, then the sorry.

Speaker 1:

if the function is in C sharp, then the test is going to be in C sharp as well, most likely, because that is a logical answer to a question about how do you test the C sharp code.

Speaker 2:

Yeah, depending on the context that you've given it, it's going to give you responses in different languages or in plain English, if that's what you want.

Speaker 1:

Yeah, it's quite great because you can use Google Palo Chat to help you learn a new language as well, so it's quite good about that. So, in terms of like the good thing about Google Palo, people with organizations tend to be scared towards the challenges and limitation of it. Can you describe some limitation and challenges and how would you address them with Co-Pilot?

Speaker 2:

Yeah. I think there's a couple of important things to remember when you're talking about tools like GitHub. Co-pilot. One is that it is based on your GPT model, so large language models. As a result, what it's ultimately doing, or the main thing it's doing under the covers, is basically token prediction. So even all of these texts, what is the next most likely thing to come out? So when we do something like, start typing a comment for a function and we wait just for the Co-Pilot to give us the correct function.

Speaker 2:

It's just predicting the next thing that you would write after that comment, or if you highlight some code and say can you write me a test for this? The prompts that get sent to the GPT or to the large language model underneath is something along the lines of here is a function. I want you to write a test for this function as well.

Speaker 2:

And all it's doing is predicting what's going to come next. So, if you keep that in mind, all it's really doing is predicting the most likely next thing that will come out. So it's not a compiler. It doesn't know that the code is going to give you files. It can't run it. It doesn't do security. Well, I say it doesn't do security checks, but we do actually have some filters on the back end that make sure we're not giving predictions that have security vulnerabilities. But it's a pretty naive machine. It's been trained on a lot of information and it knows the context of what you're asking and it makes some scarily good predictions most of the time. But the important thing to remember is it's just a tool and you, as the developer, are the one who can have a look at that response and see whether it's appropriate.

Speaker 1:

So there's a lot of things. Yeah, because in terms of privacy it's open source, because it's go through the Internet and look for it, not like Microsoft version of Bing chat. So it's where it is.

Speaker 2:

Yeah, it was trained on publicly available code.

Speaker 2:

So that's a lot of stuff that was on GitHub, for example, or on other platforms as well, and there's a whole bunch of natural language stuff that comes into that training data as well. One thing as well in terms of privacy is that you're prompt. So the context that goes back to the GitHub co-pilot server to give you a suggestion that doesn't get used for retraining the model for everybody else and, in fact, if you're using something like GitHub co-pilot for business, it never gets used to help us understand what types of prompts are going to be more effective, or what?

Speaker 2:

responses are going to be more accepted and things like that. So we don't use any of that information, any of your code or any of the responses that we give you in any of the training. But we can. In the case of co-pilot for individuals. We sometimes use that to work out whether a particular prompt that we've constructed is doing a better job of giving you a response. But yeah, we don't train on your code anymore.

Speaker 1:

That's brilliant. So I take it you mean co-pilot X, right, the enterprise version. Well so co-pilot.

Speaker 2:

X was when we announced that it was basically our vision for what co-pilot could become. So the product itself is GitHub co-pilot, and it appears in a bunch of different places.

Speaker 2:

When we talked about co-pilot X, it was kind of our here's what we think the future of AI powered software development is going to be, and since then we've released a bunch of AI focused tools under the name GitHub co-pilot. So this co-pilot, or what I like to call the OG co-pilot so the one that you see when you start typing there's co-pilot chat. There's co-pilot for CLI so you can ask it questions about command line stuff. There's co-pilot for pull requests, there's knowledge bases that are coming out and a few other things like fine tuning for enterprise and so on. So co-pilot X was kind of our future looking vision.

Speaker 1:

Yeah.

Speaker 2:

So that is the product itself.

Speaker 1:

Okay, brilliant. So I recently heard that there's a new feature called co-pilot workspace. Can you tell us more about it? Let's come in preview.

Speaker 2:

Yeah, well, there's one that's, there's kind of two that are that overlap workspace. There's one that's available pretty much right now where, if you're using GitHub co-pilot chat and you type in at workspace so that yeah, that's a workspace, you can get it to describe things about your actual workspace, so all of the files that are being used in your project, or you can create a new one.

Speaker 2:

So if you do, at workspace, slash new, it's using the context of the entire workspace that you're using in Visual Studio Code, so that's something you can try now. I think what you're probably referring to, though, is what we kind of did a sneak preview of at the end of GitHub universe last year in 2023.

Speaker 2:

So that is a very much a work in progress. It is not available to try at the moment, but the idea is that a lot of software development kind of follows this pattern of you have an issue which kind of describes the features that you want or the change that you want. You break down that issue into you know here are the tasks that I need to complete.

Speaker 1:

So I need to create a new page to do this.

Speaker 2:

I need to create some new things, some new tests and so on, and then you implement all of those changes. Now, co-pilot workspace is an attempt to get AI to help along that entire path, ultimately ending in a pull request or even a deployed version of that application.

Speaker 2:

that has those changes in it that have all been written by AI and at any stage in that process you can make some changes. So if it's broken down the issue into a bunch of tasks that need to be done and you realize there's one missing, you can add that to the list and then it will continue from there. Make those changes, add those tests, even deploy the application so you can try it out, and then merge that pull request.

Speaker 2:

So it's kind of taking the idea of AI help for your project a little bit further and doing as much as they can, all the way up to you know ideally a piece of code that you can actually merge and deploy.

Speaker 1:

Okay, so any through the, whenever there is issues any with pull requests, anything like projects or discussion you will do is part of the workspace that's AI.

Speaker 2:

Yeah, so, like I said, it's definitely still a work in progress. So the exact final version of what it looks like is TBC like to be confirmed, but you start from your description and then AI helps you all the way through to kind of getting a deployed version of the application.

Speaker 1:

Yeah, that's great. So that's, it's very exciting. So do you know when that will be like preview, when customer will be to sign up for it or I don't have a date for you.

Speaker 2:

I'm afraid I do have inside information in my head that I can't share, but it's actually a bit sooner than I thought it would be, it will be like possible next year or this year, yeah. Something like that yeah, brilliant, that's a very common answer, isn't it?

Speaker 1:

Yeah, no worries, so is there? Is there any other cool recent announcement for GitHub that you're really excited about?

Speaker 2:

Yeah, so the main one that I'm excited about is GitHub Copilot Enterprise. So this is a new skew, basically a new offering that we have on top of the Copilot for individuals, which is $10 a month and. Copilot Business, which is $19 a month.

Speaker 2:

This one's currently looking at $39 a month, but it gives you additional features like Copilot Chat in the editor or in dot com sorry in the browser, so you can have a look at your repository and ask questions at that repository. And that includes things like semantically searching across your code base and across your documentation and things like that so that you can actually ask questions about your specific organization. You can take that even further as well, and soon you'll be able to do fine tuning over your organization's code. So, rather than just generic responses based on the context you give it.

Speaker 2:

It knows how your organization does this particular type of work. There's additional things like Copilot for pull requests, where it can describe what's in a pull request for you in that description really easily. A few other things like that. So, yeah, a lot more features kind of popping up as part of Copilot Enterprise. That one is, and we're recording this in February, I realize as well but it's scheduled for February 2024. So it should be later this month.

Speaker 1:

Okay, thanks. So you say your part of a role as a senior developer advocate. Do you normally Take feedback? How do you handle feedback from like partners and clients and stuff?

Speaker 2:

Yeah, all over the place really. We have so a lot of the development teams or the engineering teams inside GitHub do a lot of customer research as part of their day-to-day work the way that our tends to work is that we develop features alongside customers, so we know that what we're creating is actually solving the problems that we wanted to solve.

Speaker 2:

But as well as that, in advocacy, we are frequently at events, we do live streams, we do lots of video, we do lots of blog posts and things like that as well. So any of those channels, we're online in most places. I think GitHub has accounts on a number of social media platforms. I'm personally still on X a little bit, or Twitter. I'm on Hackaderm, blue Sky Threads, all of those hunts as well.

Speaker 1:

LinkedIn obviously so you can reach out and kind of any of those. You can see my little handle down there.

Speaker 2:

DemoVisa is kind of everywhere. That's my GitHub handle too and that has links to all of the socials on there as well. But we do that. There's another place I would suggest as well If you want to talk to GitHub, which is the GitHub community discussions. So we use a feature called Discussions and it's open to the community. If you search for community discussions or GitHub community discussions, that's a great place to start and the engineering teams and the support teams spend a lot of time looking at those discussions as well.

Speaker 1:

They're kind of like forums, I guess, but a great place to start talking to us. That's fine. So has these episodes come to an end? We would love to get to know people, I guess individually. So are you going to any events about in GitHub in the future?

Speaker 2:

Yes, I have a few actually.

Speaker 1:

So if you're a Microsoft MVP, I should be at the summit in March, so I'll be there which would be great.

Speaker 2:

Other than that, there is a couple of other events. I'm trying to think of the right ones.

Speaker 1:

Are you speaking at the?

Speaker 2:

summit. I should be, yeah, I should be speaking or helping out moderating it managing, especially in the DevOps area and DevOps and GitHub and things like that. There's also Microsoft Build. I think the dates for that just got announced recently. Yeah, it's me In.

Speaker 1:

May.

Speaker 2:

yeah, I should be there for that I can't absolutely guarantee that, but I should be there for that.

Speaker 1:

And then I feel like there's another one. I'm missing.

Speaker 2:

But yeah, and then of course, end of October, this year is. Github Universe again, so that'll be in San Francisco. That'll be a bit bigger than it has been in the previous two years, so that's a huge one to look out for. So, yeah, keep an eye on that.

Speaker 1:

Brilliant. So how can people learn about GitHub Co-Pilot and get in touch with yourself? You know you briefly touch on it, so which is the best channel to get in touch with people with details?

Speaker 2:

Yeah, I would love to say one of the channels is better than others, but I'm kind of on all of them all the time. Linkedin or X is probably the fastest way, but you know it's most of the others.

Speaker 2:

As well as that, I think keeping in touch via those forums that I mentioned as well is a good idea. Yeah, I think those are probably the best ways to keep in touch with me or to get that information for me. In terms of learning how to use GitHub Copilot, there's a ton of resources. Github has a great YouTube channel, which has a few in there. I think Microsoft Learner also has an entire GitHub learning path, or GitHub Copilot learning path, so that one's quite good too. And where are some other ones? Yeah, github Blog is a great place to learn.

Speaker 1:

I want to add something with that. So GitHub announced some certifications like beginners, foundation, intermediate. As long as we've had, so you can get that sorted as well.

Speaker 2:

So there's a couple of places you can learn or do GitHub certification, so one of them yes, GitHub certifications is relatively new. There's Foundations, Actions, Advanced Security, Admin, but nothing specific for Copilot. That said, there is, I think, on skillsgithubcom. That's another place where I think there's a whole bunch of different kind of courses or things that you can run through as well, and that covers a lot of GitHub as well. So those are great places to look at GitHub certifications and GitHub skills as well.

Speaker 1:

Yeah, brilliant Thanks. So, yeah, thanks for joining us on this episode, david and Bradley. So in a few weeks you're going to be on Spotify and Appamusic, so stay tuned, thank you.

People on this episode