How GPT-5 Became My Pair Programmer
A Real Use Case in Developer Productivity
Like most developers, I’ve spent more hours than I’d like to admit stuck on problems that should have been simple—misconfigured settings, confusing docs, or a small bug that derails momentum.
Recently, I hit one of those walls.
I was trying to get Kafka running in standalone mode within a Databricks notebook on their Free Edition, and kept running into cryptic errors. Before you ask if this is even possible—I had successfully done this a couple of years back on Databricks Community Edition using a single-node Databricks cluster. I knew the Serverless edition would be different and have limitations, so I went through the documentation for any obvious blockers but found nothing.
Normally, I’d burn half a day digging through docs, Stack Overflow posts, or brute force trial-and-error. Or back when I worked at Databricks, I’d post in some #serverless-eng Slack channel and hope some engineer recognized the error pattern. This time, I couldn’t do that—no Databricks badge, no Slack access.
So I decided to give GPT-5 a whirl.
More Than Autocomplete: GPT-5’s Reasoning Superpower
I concede that LLMs are just “sophisticated pattern matchers, not real reasoners.” When people think of AI coding assistants, they imagine autocomplete-on-steroids. But what surprised me was GPT-5’s reasoning ability.
Instead of just spitting out code, it acted like a virtual teammate, or more like a senior engineer on Slack rolling their eyes at a sales engineer’s ‘IHAC’ question, but with lightning-fast turnaround:
It broke down errors into root causes.
Suggested step-by-step fixes.
Adjusted solutions as I clarified my environment.
This felt less like using a tool and more like collaborating with a colleague who actually “understands” context. That’s the promise of AI for developers: not replacing us, but helping us work smarter, not harder.
A Peek Into the Conversation
Here’s an excerpt (lightly edited):
Me: I’m running the following commands %sh cd kafka_2.13-4.0.0/bin ./kafka-storage.sh and getting the error:
Error: Could not find or load main class Setup.kafka_2.13-4.0.0.bin....logs
Caused by: java.lang.ClassNotFoundException: Setup/kafka_2/13-4/0/0/bin////logs
GPT-5: kafka-storage.sh requires arguments—at minimum an action (format, random-uuid, etc.). If you run it with no arguments, it interprets the current directory (or even the log path) as a Java class, which is why you see the error.
My first query was missing context, so I re-prompted with more detail.
Me: ./kafka-storage.sh random-uuid … still getting the error:
Error: Could not find or load main class Setup.kafka_2.13-4.0.0.bin....logs
Caused by: java.lang.ClassNotFoundException: Setup/kafka_2/13-4/0/0/bin////logs
GPT-5: Your environment (probably Databricks, since you’re using %sh) is appending a logs directory path into the Java classpath when running shell scripts. Kafka’s kafka-storage.sh expects a normal shell, but Databricks’ %sh injects extra paths.
At no point did I tell GPT-5 I was using a Databricks notebook, it figured that out on its own. It suggested alternatives like using absolute paths for scripts and config files, and even provided wrapper code to get started:
%sh
# ----------------------------
# 1⃣ Set absolute paths
# ----------------------------
KAFKA_HOME=/databricks/driver/kafka_2.13-4.0.0
CONFIG_FILE=$KAFKA_HOME/config/kraft/server.properties
The KAFKA_HOME path was slightly wrong and I had to tweak it. LLMs aren’t foolproof and can’t replace developers outright, you still need to know what you’re doing. But GPT-5 saved me hours of scouring stack traces by pointing out %sh injecting extra paths.
Later, when I tried to start the Kafka server, I hit another wall:
Me: When I start the Kafka server on Databricks Serverless web terminal I get the error: Node 1 disconnected.
GPT-5: That’s common when running Kafka KRaft mode on Databricks Serverless. It usually means:
The controller quorum is misconfigured in
server.properties.Databricks Serverless doesn’t allow persistent TCP sockets for Kafka’s controller ports.
Point #2 made it clear: it’s probably not possible to run Kafka standalone on Databricks Serverless Compute. Still, I persisted, tweaking the Kafka server.properties file with GPT-5’s help.
The Outcome
With GPT-5 guiding me, I solved the problem, or rather hit a definitive dead end in under an hour, instead of burning an entire night. That’s still productive: the time saved could go into finding a different solution.
In this case, GPT-5 was more than a doc-searcher or pattern-matcher. It behaved like a true pair programmer—a senior engineer who understood both Kafka and Databricks quirks, even grasping implicit, unspoken context.
Yet Another Conversation
There is another example that convinced me even more of GPT-5’s reasoning ability. I can’t share every detail (interview exercise, NDA and all), but here’s enough context:
I failed an interview coding exercise, and later asked GPT-5, without revealing the exact prompt, to generate sample data with partial context.
Me: Can you do the following:
Give me the DDL for all tables with INSERT statements including duplicate IDs.
Make sure the SQL is for MySQL.
GPT-5: Perfect
let’s build this step by step in MySQL with actual tables and sample data (including duplicated IDs).
I ran a few queries with the simulated data but the sample data did not have the properties I needed. I asked ChatGPT to generate a few more samples and each time I provided feedback on the generated data. Eventually, GPT-5 surprised me with this:
GPT-5: Thanks for double-checking—let’s slow down and debug this
. The reason you’re not seeing duplicates is because my inserts always advanced ROW_NUMBER(), so every row had a new ID. If you want “self-IDing duplicates,” we need to define duplicates differently:
Not “same id_amount twice.”
Instead, the same IDer placing consecutive IDs in the same lot (IDing against themselves).
That “self-duplication” insight turned out to be the key phrase in the actual question. I had never used that terminology in my original question or in any subsequent prompts, but GPT-5 reasoned it out from my feedback.
I am sorry if the above scenario seems confusing or incomplete as I have to mask real column names and use fake ones.
Why This Matters Beyond My Example
My personal takeaway: GPT-5 can reason well. But switching windows and copy/pasting code is still clunky. And, like in my examples, missing context in prompts happens easily.
What do developers do when they’re stuck? They pair program. Another engineer sees the full picture, context and all. AI can do the same if it’s embedded directly into our existing workflows.
That’s the real shift happening: from standalone tools to AI woven into environments and the workflows we already use. These assistants are game-changing because they’re not mere bolt-ons but true teammates..
Key Takeaways for Fellow Developers
A few lessons from my experience using GPT-5:
Be specific in prompts (configs, error logs, constraints).
Spell out implicit context (e.g., call out the environment).
Treat it like a collaborator—ask follow-ups, don’t just copy-paste.
Always validate outputs, and lean on its reasoning to guide you.
Closing Thoughts
These were just a couple of examples/use cases, but it reflects a bigger shift: LLMs aren’t just code generators, they’re reasoning partners. And the real power comes when they’re seamlessly embedded into our workflows.
I’d love to hear from others: how are you using AI tools, whether GPT-5 or workflow-native companions like VSCode extensions or GitHub Copilot, in your daily development practice?




