Empowering Developers with AI: Insights from Sphere

By Shota Karavadze, Full-Stack Developer at Sphere Partners

We continue to explore the experiences of Sphere engineers with AI technologies. In this piece, one of the team leaders shares his vision for the future of electronic assistants in daily work.

19 Feb 2024

The demand for AI and machine learning skills continues to grow, highlighting the need for full-stack developers to acquire knowledge in AI programming, data analysis, and machine learning operations (MLOps). This expertise will not only enhance their marketability but also ensure they can effectively integrate AI technologies into their projects​​.

Since each experience is unique, we are extending our review to understand how AI technologies impact developers’ lives and their effectiveness in daily work. Following our last article featuring Pavel Korchak, a full-stack developer at Sphere, we present the perspective of Shota Karavadze, who led a team of front-end developers to successfully develop and maintain an EV smart charging cloud enterprise web application for one of our clients.

Before ChatGPT and GitHub Copilot

Before recent GenAI tools arrived in the software development field, the influence of AI on daily software development tasks was minimal. Some of the available AI tools were mostly simple code suggestion tools. The most prominent examples of this are IDE code completion tools like IntelliSense. These kinds of static code suggestion tools still have significant use in software development, but their usage is limited to the scope of functions that are already available in the software they are used in.

As static code completion tools were the sole option for code suggestions for decades, new AI tools emerged. One example of such a tool is the Tabnine plugin. After experimenting with it for several months, it turned out to be a big disappointment for me. The plugin often mistakenly assumed the presence of various properties, functions, and other components in the codebase, which, in fact, were nonexistent. It had limited TypeScript and context understanding, leading to more confusion than benefit. Consequently, I uninstalled the plugin and haven’t revisited it since.

GitHub Copilot

After joining the waitlist for GitHub Copilot, I was eventually accepted and began using it. Right from the start, it was quite impressive. Unlike Tabnine it had significantly fewer errors and could generate relatively large sections of code that more accurately and coherently matched the existing codebase. Admittedly, it sometimes produces invalid code, and its awareness of the TypeScript type system isn’t quite refined yet. However, even with these invalid outputs, there are usually some valuable elements. As for directly using Copilot-generated code without scrutiny, we’re not there yet. Every line of code produced by Copilot must be meticulously reviewed, even if it appears to work flawlessly.

The most significant advantage to Copilot over other tools such as ChatGPT, is its context awareness. Since it has access to the codebase, it is capable of generating code that fits seamlessly within existing functionalities.

Overall Copilot has become a groundbreaking tool for developers in recent times. It provides software developers with various context-aware suggestions for implementing different parts of the code, a feature that is currently beyond the capabilities of any other tool, including search engines. These conclusions are confirmed by GitHub itself. On average, developers used more than 20 million GitHub Actions minutes a day in public projects. And the community keeps growing with the number of GitHub Actions in the GitHub Marketplace passing the 20,000 mark in 2023. Moreover, As more developers delve into these emerging technologies, they propel AI advancements within software development, further mainstreaming the technology’s rapidly evolving features. This is demonstrated by the following chart from GitHub:

ChatGPT

Unlike GitHub Copilot which is primarily advantageous for coding aspects of software development, ChatGPT can contribute across all facets of the software development process. To make the review more user-friendly, I’ve tried to break down the overall vision into the uses that ChatGPT handles best in my opinion. So, here are the areas where ChatGPT particularly excels.

Learning and Mentoring

Whether it’s basic concepts or more advanced topics, ChatGPT provides detailed explanations, examples, and resources to help understand the concepts better. For those learning a new programming language or a framework, it can offer syntax guidance, best practices, and nuances specific to that language.

Code Assistance

Given that software developers predominantly spend their time reading rather than writing code, ChatGPT can offer significant assistance in this area. It is capable of meticulously analyzing code on a line-by-line basis and delivering detailed explanations of how the code functions.

Error and Bug Analysis

Often, error messages can be cryptic or not straightforward. ChatGPT can help interpret these messages, explain them in simpler terms, and identify the part of the code that is likely causing the issue. After identifying the cause of an error, ChatGPT can suggest possible solutions or workarounds. This could involve recommending code changes, pointing out missing or incorrect logic, suggesting library updates, or identifying issues with external dependencies.

Code Generation

After explaining the input and potential output ChatGPT can generate code snippets with incredible success. There were cases when ChatGPT managed to generate complex functions that worked flawlessly. Generating test cases from the part of the code or test data is another aspect where ChatGPT is very convenient.

Data Analysis and Processing

ChatGPT can help with data analysis, manipulation, and visualization, which is crucial in many software projects. ChatGPT can make sense of the outcomes and suggest possible explanations for patterns or anomalies. Data often needs to be cleaned, transformed, or normalized before analysis.

To summarize who is using ChatGPT and how, we can refer to data from last year’s study by Zerotomastery. Although the report was published in the summer of 2023, it effectively illustrates the capabilities of this tool.

Conclusion

For full-stack developers, the integration of AI into software development presents both opportunities and challenges. By staying informed about AI market trends, understanding the impact of AI on job creation and industry practices, and developing AI-related skills, developers can position themselves at the forefront of technological innovation. As AI continues to evolve, full-stack developers have the unique opportunity to shape the future of software development, creating more intelligent, efficient, and user-friendly applications. 

If you want to improve your mastery of AI-based tools or simply increase your awareness of the latest developments in this technology, feel free to chat with our team or learn more here.