Experiments in Modern Dev Workflow

Barun Halder
3 min readJun 5, 2023

--

Today, I’ll share my journey with ChatGPT and Copilot. These tools have provided me with fresh perspectives and strategic insights, enhancing my day-to-day development tasks. I’ve even participated in four hackathons, where I built projects from scratch using ChatGPT and Copilot. Join me as we explore the evolving world of development and uncover the incredible benefits of these AI tools.

Every day starts with Problem Analysis and Strategy. Here, ChatGPT and Copilot serve as key allies, offering fresh insights and usable code snippets for my projects. At the Nextgen Gen AI hackathon I spent more than half of my time talking to other participants and mentors to groom the problem statement and zero in on a good MVP/Demoable use case for my project “Pathways”.

It’s important to remember that these AI tools enhance, not replace, human developers. They’re brilliant at generating code snippets and solutions for common problems, but lack complete context understanding and creativity. They’re most effective as supportive tools, not full substitutes. For FiddleJam, I had to build FE charts for my backend. I only have basic understanding of React at best. ChatGPT helped with the boilerplate which I can then adapt and enhance with copilot’s help. Fixing logic bugs along the way.

The power of ChatGPT and Copilot shines in code creation. They facilitate faster ideation and testing. By employing AI-crafted code snippets, developers can save time and effort, while maintaining high coding standards. When building out caching framework for timeseries data, iterated with various solutions. Tried out solutions where we kept all the timeseries in memory all the time, we kept only required timeseries “blocks” in memory, we pre-cached v/s we passively cached. We could build all these configurations out very quickly and integrate it with our backend and see what works best.

In my experience, ChatGPT had an edge over Copilot, especially for new projects. It facilitated tailored code generation, while Copilot shined in speeding up ongoing projects. The choice between these tools depended on the project at hand. ChatGPT eased the process of coding experimentation. It helps developers test various solutions before deciding on the best approach. Copilot, on the other hand, speeds up coding once the solution is clear.

When using ChatGPT, one challenge I encountered was the limitation of the context window, which made the model’s responses unreliable once exceeding that limit. Additionally, there is a difference in response quality between GPT-3.5-turbo and GPT-4, with GPT-4 generally producing better results. However, there is currently a limit on the number of messages GPT-4 can support. To overcome these challenges, I found a workaround by using GPT-3.5-turbo for initial problem “grooming” and getting it to a workable state, and then transferring the conversation to GPT-4 to build out the solution. This combination allowed me to leverage the improved quality of GPT-4 while bypassing the limitations of context windows and message restrictions.

An essential aspect of product development is documentation. This is where ChatGPT stands out. It simplifies the creation of comprehensible guides, making complex code functionalities accessible to users. ChatGPT’s interface helps developers get detailed explanations for code elements, easing the documentation process.

This exploration also raises questions about the tech hiring process. For example, should we prioritize someone’s knowledge of how to “implement” Red-Black trees, or should we focus more on their ability to articulate the benefits and appropriate use cases for such trees, as well as ensuring the correctness of an implementation? We should evaluate individuals based on their logical reasoning, their ability to distinguish between good and bad solutions, their communication skills, and their broad understanding of software development.

I strongly encourage developers to embrace AI tools in their toolkit, as they provide significant leverage. By doing so, they can alleviate concerns about AI replacing coding and instead cultivate a sense of awe for the remarkable opportunities these tools bring to the realm of software development. It’s crucial to shift our thinking about “coding” beyond merely producing lines of code and adopt a holistic, strategic perspective. This shift enables developers to take ownership of problems from end to end, spanning from the customer to delivery, and empowers them to become more impactful contributors in the software development process.

--

--