What it's like to write code with GitHub Copilot, and why it's not the end of programming

What it's like to write code with GitHub Copilot, and why it's not the end of programming

How does AI fit into my workflow?

I'm a full-stack freelancer for early-stage startups--that means I compete with No-Code tools, agencies, and especially offshore.  Every day that I work, I'm expected to deliver significant progress on new features day, since many of my clients are short on funds--therefore, there's quite a bit of pressure.

I'm also "polyglot"--which means I specialize in learning common elements between multiple frameworks and programming languages, and then using that wide understanding to deliver results for my clients--it also means I'm constantly looking stuff up on Google, StackOverflow, and spending huge amounts of time on a spaced repetition system to memorize the important bits of each language/framework.

AI should be able to help me.

GitHub CoPilot: stranded offline

After many breathless software developers exclaiming "the end of programming" on Twitter, I decided to give GitHub Copilot a try, which is an AI plugin you can install in your IDE or text editor to recommend code for you.

In my case, I installed it in Vim, and was quickly disappointed when these outgoing network requests hit my firewall:


You see, GitHub Copilot doesn't ship the model to your computer--it runs the model on a server and then connects a web socket to your local machine, feeding you recommendations--so if you're offline, you're out of luck.

GitHub CoPilot: discovering its helpfulness

After getting the plugin installed and setting up my firewall, I was pleasantly surprised that it gave me useful recommendations that I would actually use in my code:

GitHub CoPilot: awkward workflow for a senior developer

Normally, my workflow looks like this:

  1. read code and understand it
  2. write down a plan of what I want to accomplish
  3. write down the files and functions that needs to be changed to execute the goal
  4. execute the code change


It's an aggressive workflow where I spend as little time as possible writing code--a lot of time is invested up-front, a lot of work is done outside of my code editor, and then the source code change is all executed at once in a final "render" phase, after I fully understand my goal--Step 4 is where GitHub Copilot could really help me.

I was planning on using Copilot as a really smart auto-complete, that could save a lot of typing time, and save time looking up the exact arguments for the different functions that I use.

The reality was, I type very fast, and there was about a half-second to two-second delay before the recommender returned with a code suggestion--often times I would have already typed out the majority of the code snippet before Copilot would return with a recommendation.

I uninstalled it, and continue to run vanilla Vim with syntax highlighting, a couple Git plugins, and that's it.

GitHub CoPilot verdict

In my own case, as a senior developer with a spaced repetition system supporting my work, where the source code is treated as just a render artifact and not the core of my work, Copilot was not useful--hardly "the end of programming".

There was an alternate workflow, where you write comments and have Copilot write the code for you, but I didn't need this, since I already knew how to program, and it was too slow to be useful anyway.

In the future, I could see an open-source version of Copilot being useful to me, that ran locally.

Our role as software developers isn't going away any time soon

If I really tried, I could make Copilot and AI useful to me--but I don't have time for that.  I'm busy solving real problems for real people.
As for junior developers, I could see AI solutions like Copilot both helping them and hurting them:

  • helping them by quickly solving errors and problems in code
  • hurting them by being a path-of-least-resistance around documentation and actual understanding, leaving them helpless in the long-term


I'm very impressed with the technical accomplishments with ChatGPT, but as with most things in life, my overall outlook is people-focused, not tool-focused.









Raphael Spencer

Raphael Spencer

Writing about polyglot software dev in the startup space. I break down the systems for success, and share tech tips I find along the way.
Wisconsin