Building the Next Generation of AI Developer Tools

Bookmark
Rate this content

AI has already changed software development. Tools like GitHub Copilot have become ubiquitous parts of the workflow of millions of developers. Like other well-known editor features (like autocomplete or tooltips), AI-in-editor increases productivity, reduces required context switching, and lets developers stay in the flow while focusing on important parts of their job. However, this was just a first step—with the rapid developments of large language models (LLMs), which have become more powerful and knowledgeable with every release and have excellent reasoning capabilities, we can do more. Nowadays, we see AI tools able to solve complex, repository-wide tasks or even generate whole applications. In the talk, I will demo some new AI tools coming from GitHub Next, such as Copilot Workspace or GitHub Spark. We will discuss emerging UX patterns, give advice on how to build your own AI tool and peek into the future of developer tools. All that while trying to answer the most important question—how to design applications using AI with humans in mind.

This talk has been presented at Productivity Conf for Devs and Tech Leaders, check out the latest edition of this Tech Conference.

FAQ

The speaker is Krzysztof, a software developer and engineer at GitHub, who has worked on projects like GitHub Copilot.

The main focus is on user experience in developing AI applications and how to create the next generation of developer tools.

GitHub Copilot is an AI tool designed to assist developers by providing inline code suggestions. It was released in June or July 2021.

GitHub Next is a part of GitHub responsible for exploring and prototyping the future of software development, focusing on developer experience and productivity.

The principles include enhancing user capabilities, integrating AI tools directly with development tasks, modeling user workflows, and designing defensively for AI failures.

Co-agents are AI agents that include human input in their processes, allowing users to control, guide, and edit the AI's actions and output.

GitHub Spark focuses on lowering the barrier for creating small applications without requiring extensive coding skills, emphasizing the act of creation over code exposure.

Lessons include designing with user needs in mind, recognizing the ambiguity in most real-world tasks, requiring human guidance, and exploring beyond chat-based AI interfaces.

Future ideas include bidirectional editing experiences, applications that update based on natural language specifications, and enhancing understanding of codebases rather than just code productivity.

It is crucial to consider whether AI is necessary and ethical for a given task, especially in sensitive areas like mental health or financial applications, to ensure responsible usage.

Krzysztof Cieślak
Krzysztof Cieślak
26 min
27 Mar, 2025

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Hello, everyone. My name is Krzysztof, and I will be talking today about developer tools, AI, and how we use both of those to create the next generation of developer tools. GitHub Copilot, released in 2021, revolutionized developer tools by automating boring parts of coding and keeping developers in a state of flow. Suggestions are shown directly in the editor and clearly separated from the real code. Chat interfaces, like Chat GPT, solve quality of response issues and are useful when flow doesn't exist. The next generation of tools focuses on structured exchange, user control, and iteration. GitHub Spark allows users to create small applications without focusing on code. Designing applications with the user in mind and handling ambiguity is important. Real-world software tasks require human guidance, and exploring new ideas beyond chat-based AI is necessary. Always consider the human aspect and ethical considerations when using AI-powered features.

1. Introduction to Developer Tools and AI

Short description:

Hello, everyone. My name is Krzysztof, and I will be talking today about developer tools, AI, and how we use both of those to create the next generation of developer tools. I will focus today a lot on user experience and hopefully some lessons that we've learned and you all can also use while maybe building your AI applications. I used to be a software developer and I'm also a software engineer. In my spare time as part of my open source night life, I was focusing a lot on developer experience and developer tools. Today, I'll talk about a couple of those tools, mostly focused on AI stuff. This is the talk about what happens in the middle, how you design this applicative, how we build prototype. Let's start with talking a bit about history.

Hello, everyone. My name is Krzysztof, and I will be talking today about developer tools, AI, and how we use both of those to create the next generation of developer tools.

Before going further, I need to tell you one thing. I'm not a data scientist. I'm not a machine learning specialist. I don't have a PhD in maths or anything like that. I'm just a software developer, as I imagine most of the people watching this talk today. And, yeah. So it will not be talking about some deep understanding of AI or anything like that. I just don't have it. However, I will focus today a lot on user experience and hopefully some lessons that we've learned and you all can also use while maybe building your AI applications.

Who am I? I used to be a software developer and I'm also a software engineer. I used to be an independent consultant for many, many years of my life. In my spare time as part of my open source night life, I was focusing a lot on developer experience and developer tools. And because of that, around four years ago, I joined GitHub to work on this very secret project back then called GitHub Copilot. At GitHub, I work at GitHub Next. GitHub Next is part of the GitHub that's responsible for investigating the future of software development. We are a group of developers, researchers, user experience specialists prototyping tools and technologies that push boundaries of what we've thought is possible. And we try to go where no one has gone before. Well, at least in the context of software developer tools. Our projects vary from creating familiar fonts designed specifically for developers, to creating a prototype of new extendable user interface for GitHub, to AI tools such as Copilot. They have one common feature, all those projects. They're always about developer experience, developer productivity, and developer happiness. And today, I'll talk about a couple of those tools, mostly focused on AI stuff because, well, that's the topic of the conference, right? And yes, to reiterate, this is the talk about what happens in the middle, how you design this applicative, how we build prototype. I will not be talking about models themselves. For sake of this presentation, we can treat models as the black box that does magic. I'm also not going to talk about building the fully-fledged product. Building those is difficult and it requires a lot of knowledge, not only about user experience or artificial intelligence but also about business strategy and so on, monitoring, observability and stuff. So I will not touch those parts of building real scalable products for millions of users. So let's start with talking a bit about history.

2. GitHub Copilot: Revolutionizing Developer Tools

Short description:

And the tools we all know and use and love. The first one that started it all, and I've mentioned it before, was GitHub Copilot. It was released in 2021 in June or July, I believe. And I've been working on this project since February, I believe, 2021. My first reaction was that that just cannot be. And yet, well, I joined the team. It was interesting. Interesting challenge. Over a couple of months with a very small team of, I think there was like six of us, six engineers, we moved from badly working internal prototype into technical preview that we presented to world. Original Copilot has been designed in very, very extreme way. Copilot's original user interface, the inline suggestion, or coast text, how we called it internally, has been designed with such one thing in mind, keeping developers in the state of flow while they code. It's about reducing context switching. It's about spinning you up. It's about automating boring parts of your work. So you can focus more on interesting bits, building business domain, difficult algorithms, or whatever is the core value in your projects.

And the tools we all know and use and love. The first one that started it all, and I've mentioned it before, was GitHub Copilot. It was released in 2021 in June or July, I believe. And I've been working on this project since February, I believe, 2021. And I can't even describe to you all how big a shock it was, at least for me personally.

I remember that when I was first contacted by Uge Demur, who was leading Next back then, and he has shown me Copilot for the first time as he described how it works. I responded with, it cannot work. It's not possible. As I've mentioned, I've been working on a lot of developer tools in the past. And, you know, I've been focusing, I've spent years of my life building tools powered by compilers, statical analysis, especially for statically typed functional programming languages, where correctness and type system is everything. And then you come to me and you tell me that, oh, it's using some AI, whatever it means. And we send to this black box a string as an input, and we get back string as an output. And it's supposed to be magic and it works. My first reaction was that that just cannot be.

And yet, well, I joined the team. It was interesting. Interesting challenge. And over a couple of months with a very small team of, I think there was like six of us, six engineers, we moved from badly working internal prototype into technical preview that we presented to world. So let's talk a bit about it. Original Copilot has been designed in very, very extreme way. And I don't mean it in a bad way. We've done what most good projects do. Like what most books or literature about new projects, startups, or user experience design will tell you to do. Focus on one thing and solve it really well.

Copilot's original user interface, the inline suggestion, or coast text, how we called it internally, has been designed with such one thing in mind, keeping developers in the state of flow while they code. It's about reducing context switching. It's about spinning you up. It's about automating boring parts of your work. So you can focus more on interesting bits, building business domain, difficult algorithms, or whatever is the core value in your projects. We as developers are paid a lot of money for our ability to solve those difficult parts, not for typing some boring boilerplate code into editor.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

The Future of Performance Tooling
JSNation 2022JSNation 2022
21 min
The Future of Performance Tooling
Top Content
Today's Talk discusses the future of performance tooling, focusing on user-centric, actionable, and contextual approaches. The introduction highlights Adi Osmani's expertise in performance tools and his passion for DevTools features. The Talk explores the integration of user flows into DevTools and Lighthouse, enabling performance measurement and optimization. It also showcases the import/export feature for user flows and the collaboration potential with Lighthouse. The Talk further delves into the use of flows with other tools like web page test and Cypress, offering cross-browser testing capabilities. The actionable aspect emphasizes the importance of metrics like Interaction to Next Paint and Total Blocking Time, as well as the improvements in Lighthouse and performance debugging tools. Lastly, the Talk emphasizes the iterative nature of performance improvement and the user-centric, actionable, and contextual future of performance tooling.
AI and Web Development: Hype or Reality
JSNation 2023JSNation 2023
24 min
AI and Web Development: Hype or Reality
Top Content
This talk explores the use of AI in web development, including tools like GitHub Copilot and Fig for CLI commands. AI can generate boilerplate code, provide context-aware solutions, and generate dummy data. It can also assist with CSS selectors and regexes, and be integrated into applications. AI is used to enhance the podcast experience by transcribing episodes and providing JSON data. The talk also discusses formatting AI output, crafting requests, and analyzing embeddings for similarity.
Rome, a Modern Toolchain!
JSNation 2023JSNation 2023
31 min
Rome, a Modern Toolchain!
Top Content
Rome is a toolchain built in Rust that aims to replace multiple tools and provide high-quality diagnostics for code maintenance. It simplifies tool interactions by performing all operations once, generating a shared structure for all tools. Rome offers a customizable format experience with a stable formatter and a linter with over 150 rules. It integrates with VCS and VLSP, supports error-resilient parsing, and has exciting plans for the future, including the ability to create JavaScript plugins. Rome aims to be a top-notch toolchain and welcomes community input to improve its work.
Forget Bad Code, Focus on the System
React Summit US 2023React Summit US 2023
27 min
Forget Bad Code, Focus on the System
Top Content
Watch video: Forget Bad Code, Focus on the System
Setting up the system and separating concerns are important in software development. Modular construction and prefab units are a new trend that makes construction quicker and easier. Architectural complexity can lead to a drop in productivity and an increase in defects. Measuring architectural complexity can help identify natural modules in the code. Best practices for avoiding architectural complexity include organizing code by business domain and using prop drilling. Atomic design and organizing a monorepo are recommended approaches for managing architectural complexity.
Confessions from an Impostor
JSNation 2022JSNation 2022
46 min
Confessions from an Impostor
Top Content
The Talk discusses imposter syndrome and reframes it as being a professional imposter. It emphasizes the importance of sharing and starting, embracing imposterism, and building inclusively for the web. The speaker shares personal experiences of being an imposter in various technical disciplines and highlights the significance of accessibility. The Talk concludes with the idea of building a collective RPG game to remove excuses for not making things accessible.
Conquering Complexity: Refactoring JavaScript Projects
JSNation 2024JSNation 2024
21 min
Conquering Complexity: Refactoring JavaScript Projects
Today's Talk explores the complexity in code and its impact. It discusses different methods of measuring complexity, such as cyclomatic complexity and cognitive complexity. The importance of understanding and conquering complexity is emphasized, with a demo showcasing complexity in a codebase. The Talk also delves into the need for change and the role of refactoring in dealing with complexity. Tips and techniques for refactoring are shared, including the use of language features and tools to simplify code. Overall, the Talk provides insights into managing and reducing complexity in software development.

Workshops on related topic

Solve 100% Of Your Errors: How to Root Cause Issues Faster With Session Replay
JSNation 2023JSNation 2023
44 min
Solve 100% Of Your Errors: How to Root Cause Issues Faster With Session Replay
Workshop
Ryan Albrecht
Ryan Albrecht
You know that annoying bug? The one that doesn’t show up locally? And no matter how many times you try to recreate the environment you can’t reproduce it? You’ve gone through the breadcrumbs, read through the stack trace, and are now playing detective to piece together support tickets to make sure it’s real.
Join Sentry developer Ryan Albrecht in this talk to learn how developers can use Session Replay - a tool that provides video-like reproductions of user interactions - to identify, reproduce, and resolve errors and performance issues faster (without rolling your head on your keyboard).