How I use ChatGPT as my ultimate Rubber Duck

5 min read đŸ€“

X (Twitter) Logo
How I use ChatGPT as my ultimate Rubber Duck

Introduction

When I first started coding, I did what everyone does—binge-watched YouTube tutorials, hoarded Udemy courses, and tricked myself into thinking I was making progress.

But the moment I tried to build something on my own?

I was completely lost.

I was stuck in tutorial hell—watching videos, feeling “productive,” but in reality, just copying and pasting code without truly understanding it.

So, over the last year, I decided something needed to change. Instead of just consuming content, I forced myself to build actual projects.

It was painful. It was frustrating. Half the time, I had no idea what I was doing.

But little by little, things started to click—and for the first time, I actually understood what was happening... kind of, at least đŸ„Ž

The Problem With "Just Doing It"

blinks-confused.gif

Jumping straight into building projects sounds great, but you quickly realize that coding isn’t always the hardest part


  • There are a million frameworks, libraries, and tools to choose from.
  • Best practices change constantly—and no one agrees on them anyway.
  • You have to design at a high level, weigh trade-offs, and figure out what actually works for you and your project.

It's pretty overwhelming and a lot to learn. And the only way to do that? By actually trying things.

I’ve learned that to really become a developer, you have to break things, struggle, and figure stuff out on your own. Through that, you start to see there’s no single “right” way—just trade-offs. Instead of blindly following tutorials, you learn to trust your own judgment.

But learning to think through problems is a skill on its own. So how do you actually break down a complicated project or debug an issue when you're stuck?

The Rubber Duck Method

image.jpg

Ever spent hours on a problem only to instantly realize you’re a dumbass the moment you start explaining it to someone?

Boom—that’s basically the Rubber Duck method in action. The Rubber Duck method is a programming technique I learned about that really changed how I tackle problems.

How It Works:

  1. Grab an inanimate object (traditionally, a rubber duck).
  2. Explain your problem out loud like you're teaching a beginner.
  3. Mid-sentence, realize exactly where you screwed up.

Sounds dumb, but trust me—it forces you to slow down and clarify your logic. 90% of the time, you’ll spot the issue without even needing help.

I use this for everything—not just coding. Feeling overwhelmed? Talk through it. Don’t know where to start? Say it out loud.

I like to pair this with a visual whiteboard tool like Excalidraw to sketch my ideas out as I’m thinking through them.

Rubber Duck + LLMs

The Rubber Duck Method is solid, but let’s be real—it’s 2025. If you’re not offloading half your brain to AI what are you even doing? 🙃

Pairing LLMs (Large Language Models) like ChatGPT with the Rubber Duck method has completely changed how I problem-solve. It still forces me to slow down and think through the problem, but now I get the added bonus of a super-nerd trained on the entire internet questioning my logic and suggesting better solutions.

How I use LLMs

  • Challenging my ideas – I’ll ask it to be critical of my plans, project design, structure, etc. and often times it points how flaws and edge cases I never even considered. Asking it for alternative solutions can also lead to some pretty big breakthroughs.
  • Breaking down high-level concepts – When there isn’t a 100 second Fireship video spoon feeding me information, having an LLM break down high level concepts has saved me lots of time. Plus, you can ask questions without feeling like a dumbass.
  • Read docs for me – I’ll be honest, I have a pretty bad attention span. I often use LLMs to read and understand docs for me. This is especially useful for docs that are not very friendly to read (looking at you Auth.js).

Since using this approach, my learning and problem-solving skills have gotten a lot better and I genuinely feel like I’ve improved as a developer.

A Personal Example

nerd.gif

When I first wanted to build a web app, I had no idea how it all worked. After some initial research, I stumbled across Firebase, and it seemed like the perfect solution.

After learning how it worked and exploring the services they offered, I unknowingly developed some pretty bad foundational knowledge.

I just assumed:

  • Most apps used managed services like Firebase or Supabase.
  • Security was always on the database level (Firebase rules or Row Level Security).
  • Self-hosting was unnecessary and probably a headache.

Then, when I started working on a client project, I suddenly had to think about read / write optimizations, surprise cloud bills (shoutout to Serverless Horrors), and vendor lock-in for their data. That’s when I decided to do some deeper research.

I explained everything I knew to ChatGPT using the Rubber Duck method and quickly realized:

  • Most apps secure their database at the application level.
  • Self-hosting Postgres or MongoDB was really not hard and more than capable for most projects.
  • With your own database, you don’t have to worry about arbitrary read/write limits.

That was the moment everything started to click for me.

This discovery led me down the path of self-hosting and a ton of fundamental web design concepts. I went all in—set up my own VPS on Hetzner, found Coolify (an awesome open-source tool for self-hosting apps and databases), got into Docker, and eventually started self-hosting my own databases. Along the way, I also learned about Object-Relational Mappers (ORMs), which made working with databases way easier.

Looking back, I know this wasn’t a particularly advanced topic, but as a new developer with no one to ask, working through it with an LLM felt like a game-changer.

Tips for Using LLMs as a Rubber Duck Effectively

Before using an LLM like ChatGPT or Claude, make sure you set the conversation up with a base prompt. I found if you don’t explicitly tell LLMs to be critical and actively challenge you they will yap a lot and almost “try to make you feel good”.

I will usually set it up with something like:

You're my AI Rubber Duck. Help me break this down, challenge my assumptions, and ask guiding questions instead of just giving me the answer.

To get the most out of this method you should also follow some guiding principles.

1. Give It Context

LLMs work best when they have details. Include:

  • What you're trying to do
  • What you've tried
  • Where you're stuck
  • What you think the issue is

2. Ask Quality Questions

The better the question, the better the answer. Try:

  • Explain this like I’m a junior dev.
  • What’s another way to solve this?
  • What trade-offs should I consider?
  • What are the edge cases I might not be considering?

3. Don’t Blindly Trust Everything

Sometimes, especially in coding, information can be outdated or just plain wrong:

  • Treat LLMs as a thinking partner, not a single source of truth.
  • Double-check critical details against official docs and real-world examples.
  • Use this method alongside your own research to validate and refine ideas.

My Pro TIp

Using ChatGPT’s voice mode makes this process even smoother. I find it’s a lot faster, and it kinda forces you to slow down and actually think about what you’re saying. This has led to some pretty good results for me.

Final Thoughts

LLMs are a powerful tool for learning and problem-solving, and those who use them to actually develop their skills rather than just as a crutch—are going to have a serious competitive advantage in the coming years.

Definitely give it a shot and see how it works for you.

Also, don’t forget to thank your LLM in case they remember later :}