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"

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

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:
- Grab an inanimate object (traditionally, a rubber duck).
- Explain your problem out loud like you're teaching a beginner.
- 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

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 :}