Pair programming with OpenAI
Created by Midjourney

Pair programming with OpenAI

Introduction

The advent of generative AI, with tools like ChatGPT and GitHub Copilot, is dramatically transforming various aspects of technology and business. In my recent venture to improve my own investment portfolio, I decided to give some of these tools a test run. In doing so, I discovered how these technologies are not only game-changers in delivering insights but also in accelerating software development. In this article, I'll share my journey of creating a Python-based financial analysis application, focusing on the incredible assistance I received from generative AI.

 

The Quest for Better Investments

Like many, I've always been in pursuit of better investment opportunities, especially after that horrendous 2022. While manual research and traditional algorithms are helpful, I was intrigued by the potential generative AI holds and motivated to make smarter investment decisions. I took it as a fun and exciting challenge to build a Python application for optimizing my portfolio, teaming up with ChatGPT and GitHub Copilot for the journey.

 

The Unparalleled Expertise of ChatGPT

To say that ChatGPT's domain knowledge is comprehensive is an understatement. During the development process, ChatGPT not only helped in creating and debugging code but also educated me on a broad array of topics. From grasping macro-economic forces to exploring the nuances of return calculations and the mathematics of multi-variate regression, ChatGPT served as both a teacher and a source of invaluable data insights. See this screenshot of the financials analysis page I built where ChatGPT not only helped me define what financial ratios I should be concerned with but also critically, was also there to analyze trends and provide actionable insights for my investment strategies. The green box in the screenshot is a response from an OpenAI API call, analyzing a decade's worth of data supplied via JSON documents.


Article content


 

GitHub Copilot: My Coding Accelerator

Another indispensable tool was GitHub Copilot. While I could hold my own when it comes to typing speed, it genuinely brought a smile to my face every time I started a code snippet and was able to tab complete a line of code or even an entire function! Its code suggestions are like an experienced developer sitting beside you, but one who works at lightning speed. As someone relatively new to Python, I found that Copilot enabled me to code effectively without getting bogged down by language-specific details, letting me concentrate on the broader architecture and logic of the application.

 

Navigating Limitations

Of course, no tool is perfect. One challenge I encountered was hitting the token limit as the complexity of my code base grew. This necessitated breaking down complex packages into more manageable components, which occasionally led to integration challenges. Furthermore, there were instances where I received seemingly contradictory suggestions. Most of these limitations stemmed from gaps in my own domain knowledge, forcing me to delve deeper into various topics to utilize the tool more effectively. Thus, while generative AI provides a significant boost, it's important to recognize the need for human understanding and expertise.

 

Conclusion and Invitation for Discussion

Generative AI holds incredible promise, not only for solo endeavors like mine but also for larger development teams. As we move forward, it's worth discussing how generative AI is influencing various aspects of software development. How are you using the tools? Which tools? What approaches are your teams using to overcome token limitations? Has anyone plugged an LLM into their entire codebase? If so, how? I do happen to have some fancy GPUs laying around from my crypto mining adventures, so am keen to explore setting up my own personal pair programmer.

 

If you have experiences of your own, would love to hear about them and get your thoughts. Cheers and happy coding!  

Great use case to apply GenAI on multiple aspects of the effort. I appreciate the lessons learned as you rolled up your sleeves!

To view or add a comment, sign in

More articles by Andrew Jaworski

  • Experimenting with Multi-Agent Frameworks

    Introduction Over the past several months, I’ve been exploring various multi-agent frameworks to see which align best…

    9 Comments

Others also viewed

Explore content categories