Hyper-Velocity Engineering
My team has been focused on leveraging Copilot to scale our engineering capacity. Some people discuss "vibe coding" which is just prompting copilot to build something. We take it a step further. Instead of asking for an entire solution. We drill down to specific coding tasks so we have more control over what's generated. I shared my experiments with our process called "Hyper-velocity Engineering" here on bluesky. But let me break it down for you.
The "Vibe Coding" approach
What I did first was ask copilot to create the end result. "I want to make an application that allows me to select from a list of Secret Lairs and add all of its contents to my inventory." The result was clunky at best. It made guesses as to what I meant from a list of Secret Lairs and their contents. I tried to look at what it created and refine it from there, but it was cumbersome at best. And I abandoned it because it just couldn't fix the corner it painted us into. That led to my first discovery: copilot is great for rapid prototyping. Whenever I talk about leveraging copilot, I always mention how it's great for getting past the "blank page" syndrome.
Sidenote: this article is fully handwritten; it would take me longer to prompt co-pilot on my experiences and thoughts during the process than it would for me to just start typing. But sometimes when I'm writing, staring at a blank page I can give it a summary of what I want to talk about and it will provide a skeleton that I can flesh out. By the time I'm done, I've rewritten everything because I prefer to use my voice rather than gpt4's
That first attempt at creating my application was easy to throw away because I'd invested little time and effort in it. But I did learn some things through the process. Think of it as an artist sketching out their work to visualize composition before committing paint to canvas.
Taking a Deeper Approach
From my experiments with the high-level prompt, I took things a step further. I broke down my solution into its components. First, I needed a list of the available secret lairs and their contents. I found this convenient list on Mtgwiki and asked copilot to generate a script to scrape it and dump the data into a json file. I had to provide some prompts to help it create the correct data: "here are the headers" "the collected cards are of the format {x} - {y} where x is the starting card and y is the ending card number". But after giving it those details, it generated a data file that matched my specification.
Next, I asked it to match those card numbers using the Scryfall API. It gave me a bonus by enriching the data from the original list with the Scryfall data. I found that running the script however resulted in me hitting the scryfall rate limit. So, downloaded the scryfall bulk data and told copilot to use the bulk data instead of the Scryfall API. It handled it like a champ.
Finally, now that I had the data collection done, I wanted to add user interaction. I asked copilot to allow me to select from a list of secret lairs and add it and all the cards in it to my inventory. It made a decent command line driven interface. But I wondered if it could do better.
This phase of my exploration gave me a second revelation: Hypervelocity Engineering is an iterative process. Rather than boiling the sea with a large "give me an app that does this" I broke it down to specific features and even specific components that interacted with those features.
Now You're Just Showing Off
On a whim I decided to see what CoPilot could do. I asked it to create a web interface for the inventory management system. It created a flask app and used the backend components it had created to display the information.
When you open the app it displays all Secret Lairs providing a search that lets you find a Secret Lair by name. Clicking on details takes you to a detail screen that shows each card in the secret lair along with its most recently retrieved price information.
Recommended by LinkedIn
You can click the Add to inventory and it will do exactly that from there I could view the secret lairs in my inventory along with the accumulated value
Finally I asked copilot to show an individual card list and group it by Secret Lair. And asked it to add a filter to the cards by minimum price. The basic goal was to show me the value of the cards I had in my duplicate secret lair packages without having to open them individually and look them up.
The screen shows a running total of the value of the cards taking into account the filter. I only wanted to sell the duplicates that were worth $5 or up. This effort took me about two hours to create with copilot saving me a lot of time having to do the price lookups manually. I opened the Lairs contained in the list and pulled the cards that matched. I sold them to my local game shop for around 1800 (would have been $2500 if I took store credit, but I wanted to cash out...although $2500 would buy a lot of Warhammer units).
Show Me the goods
As I was trying to share this codebase in a github repo, I realized that I had mistakenly added the Scryfall data dump to my repository requiring a Github LFS (Large File Storage) license. Trying to remove it from my history I accidentally wiped every file BUT the data dump. But fear not. I was able to recreate the core data scraping and web UI in half an hour with the same techniques here is the github repo. Everything in the codebase was generated with Visual Studio Code copilot using prompts. I did not personally write a line of code.
Hopefully, this demonstrates the power of Hyper-velocity engineering. It's a step beyond "vibe coding" where the developer takes an active role in breaking down the problem into components and leverages the power of Co-pilot to handle the tedium of writing code. It removes friction from taking thought to running code.