Vibe Coding: How a Non-Programmer Built Real Applications
I'm not a programmer. Let me be clear about that from the start. I don't have a computer science degree, I didn't spend years learning algorithms and data structures, and I can't recite design patterns from memory. Yet, as I write this, my GitHub profile shows a collection of functional applications spanning multiple programming languages - Python, Rust, Shell scripts, and more.
How did this happen? Two words: Vibe Coding.
What is Vibe Coding?
Vibe Coding emerged in early 2025 as a revolutionary approach to software development. Coined by AI researcher Andrej Karpathy, it describes a method where you describe what you want to an AI language model, and it generates the code for you. The key difference from traditional programming? You don't need to understand every line of code the AI produces - you focus on the outcome, not the implementation details.
Critics call it reckless. Advocates call it democratizing. I call it transformative.
My Recent Creations
Let me walk you through what I've built in the past few months using this approach:
Voice-to-Text System (vtt)
The most recent project on my GitHub: a sophisticated voice transcription system using Groq's Whisper API with intelligent LLM-based post-processing. I had a problem - I needed high-quality speech recognition that could intelligently clean up transcriptions. I described what I needed, and through iterative conversations with AI assistants, we built a complete Python application.
Would I have written this from scratch six months ago? Absolutely not. Could I maintain and modify it now? Surprisingly, yes.
Mailing List Validator
A practical business tool that collates, validates, and deduplicates investor contact information from multiple CSV and Excel files. This solved a real problem I was facing - messy data from various sources that needed cleaning and consolidation.
The AI helped me navigate pandas DataFrames, email validation libraries, and file handling - concepts I understood theoretically but had never implemented in practice.
Google Keep Spider
A comprehensive toolkit for processing Google Keep exports with content extraction, Obsidian linking, and smart file renaming. This emerged from my personal need to migrate years of notes to a different system.
The AI understood my workflow, suggested approaches, and generated code that actually worked with my specific use case.
A Rust Browser Engine
Here's where it gets interesting. I have a repository for a Rust-based browser engine project. Rust is notorious for its steep learning curve and complex ownership system. Did I become a Rust expert overnight? No. But did I create a functioning prototype by explaining concepts and iterating with AI assistance? Yes.
The Vibe Coding Process
My workflow looks something like this:
- Identify the problem - I need a tool that does X
- Describe the requirements - Have a conversation with an AI about what success looks like
- Iterate and refine - Test the generated code, report issues, adjust requirements
- Learn by osmosis - Understand patterns from seeing similar solutions repeatedly
- Ship it - Deploy working software that solves real problems
Notice what's missing? Hours of tutorial videos. Stack Overflow rabbit holes. Debugging cryptic compiler errors for days. The AI handles the syntax; I handle the vision.
The Critics Have a Point
Let me address the elephant in the room. The software engineering community has legitimate concerns about Vibe Coding:
- Hidden bugs - Code you don't fully understand can contain subtle errors
- Security vulnerabilities - What if the AI introduces dangerous patterns?
- Maintenance nightmares - How do you modify code you didn't write?
- Technical debt - Are we creating tomorrow's legacy systems today?
These aren't hypothetical concerns. In September 2025, Fast Company reported on "development hell" when professional engineers had to work with AI-generated codebases. Y Combinator noted that 25% of their Winter 2025 batch had codebases that were 95% AI-generated.
But here's my counter-argument: the alternative for someone like me isn't writing perfect, maintainable code. It's not writing code at all.
The Democratization Argument
Traditional programming has always had gatekeepers. You needed formal education, or thousands of hours of self-study, or natural aptitude for abstract thinking. The barrier to entry was measured in years.
Vibe Coding changes the equation. It lets domain experts - people who understand business problems, user needs, workflow optimization - create software solutions without becoming full-stack developers first.
My voice-to-text system exists because I understand the problem space of transcription quality. My mailing list validator works because I know what clean investor data looks like. These tools wouldn't exist if I had to master Python first.
What I've Actually Learned
Ironically, Vibe Coding has taught me more about programming than years of half-hearted attempts at online tutorials. Here's what I've absorbed through practical application:
- Code structure - Seeing patterns repeatedly makes them familiar
- Error handling - Understanding why things break and how to fix them
- API design - How different libraries and services interconnect
- Testing approaches - What makes code reliable vs. fragile
- Documentation importance - Good explanations make maintenance possible
I'm not pretending to be a software engineer. But I can read code now. I can modify it. I can debug basic issues. I've learned by doing, with an infinitely patient AI tutor explaining concepts as they become relevant.
The Professional Boundary
Let me be absolutely clear about limitations. My Vibe Coded applications are:
- Personal tools and experiments
- Small-scale utilities solving specific problems
- Prototypes and proof-of-concepts
They are not:
- Production systems handling sensitive data
- Mission-critical applications
- Software that requires rigorous testing and validation
- Code that professional teams need to maintain long-term
I know my lane. Vibe Coding is brilliant for rapid prototyping, personal automation, and learning. It's not a replacement for professional software engineering where lives, money, or data security are at stake.
The Shell Script Collection
One of my most useful repositories is "my_linux_shell_improvements" - a collection of tools to make life easier. These are exactly the kind of small utilities where Vibe Coding shines:
- Scripts that automate repetitive tasks
- Tools that integrate different systems
- Utilities that solve personal workflow problems
Each one represents a conversation with AI about a specific annoyance I wanted to eliminate. No formal training required, just problem-solving through dialogue.
Looking Forward
The debate about Vibe Coding will continue. Professional developers will rightfully point out its limitations and dangers. But for people like me - technologists who understand systems and problems but lack formal programming training - it's revolutionary.
My GitHub profile tells a story that would have been impossible five years ago. Twenty repositories. Code in multiple languages. Functional applications solving real problems. All created through conversations with AI assistants.
Is it perfect code? No. Would it pass code review at a major tech company? Probably not. But does it work? Does it solve problems? Does it let me build things I never could have built before?
Absolutely yes.
The Real Skill
If there's one thing I've learned from this journey, it's that Vibe Coding requires its own skill set:
- Problem decomposition - Breaking complex needs into clear requirements
- Effective communication - Describing what you want precisely
- Critical evaluation - Knowing when AI solutions make sense vs. nonsense
- Iterative refinement - Testing and improving through feedback loops
- Domain expertise - Understanding the problem space deeply
These aren't traditional programming skills, but they're valuable nonetheless. They're the skills of a builder, an innovator, a problem-solver - even if the syntax gets written by AI.
Conclusion
I'm a non-programmer who builds software. That sentence would have been contradictory a few years ago. Today, it's my reality.
Vibe Coding won't replace software engineers any more than calculators replaced mathematicians. But it does expand the circle of people who can create functional software. It lowers barriers. It democratizes creation.
My GitHub repositories - the voice transcription system, the data validators, the browser engine prototype, the shell utilities - they're proof that you don't need a CS degree to solve problems with code anymore. You need curiosity, domain knowledge, and the willingness to iterate.
The rest? Well, there's an AI for that.
Want to see what a non-programmer can build? Check out my repositories at github.com/tlarcombe