“Vibe Coding” as a Non-Developer

Vibe coding lets non-coders write functional software tools, though knowing how code works helps be most effective.

Preface

Let’s talk about “vibe coding” – a term coined by Andrej Karpathy not even a year ago, and already buzzing through the tech world. At its core, vibe coding means using large language models to build software by describing what you want in natural language, rather than wrangling complex syntax.

It’s kind of wild: suddenly, regular folks can spin up surprisingly capable tools without a traditional coding background or know-how.

My own “vibe coding” journey began in 2024. While writing a Raspberry Pi 5 overclocking guide, I used ChatGPT, CoPilot, and Gemini to help build a basic telemetry tool. The good news? It worked. The bad news? My brother (a seasoned developer) called the code “flimsy” and said it could be refactored into something far more robust (which he ended up helping with – thanks!).

Three Vibe Coding Summer Projects

So, this past summer, I wanted to see just how doable it was to use these large language models for real coding tasks as a non-developer. I took on three projects:

  • Orange Pi 5 Max Telemetry Tool
  • Rockchip RK3588 OC Tool
  • BENCHLAB PyTools

Orange Pi 5 Max Telemetry Tool

This project was a spiritual sequel to my Raspberry Pi 5 experiment as I worked on an OrangePi 5 Max 16GB overclocking guide. The goal: collect telemetry from the Linux OS and SoC, then display it in a simple terminal UI. Nothing fancy—just a clean test of what vibe coding could do with plain English prompts.

The result was a single-file Python script that provides a full telemetry dashboard for Rockchip RK3588-based boards like the Orange Pi 5 Max. It tracks CPU, GPU, NPU, and DSU clock speeds, system voltages, temperatures, load averages, and SAR-ADC readings.

The interface uses curses to present the data in a tabbed layout, with optional CSV logging for long-term analysis. Clock frequencies are decoded directly from hardware registers via /dev/mem, translating PLL sources and divider settings into actual operating conditions.

Rockchip RK3588 OC Tool

The next project was a step up in complexity. Rather than reading the SoC telemetry, I wanted to use register access to adjust clock frequency parameters at runtime.

This tool, also a single-file Python script, uses curses for its UI. The challenge was ensuring safe register access, meaning writing the right bits to the right registers while following Rockchip’s register writing rules, and avoiding system crashes. For example, enabling writing bits to the lower bits by first writing to the upper bits.

The result is that we have a tool that allows us to change the clock sources, adjust Rockchip’s PVTPLL configuration, and helped me overclock the SoC to over 3450 MHz.

BENCHLAB PyTools

The BENCHLAB PyTools project takes things even further as I wanted to explore working on a multi-file, complex software stack. The goal was to turn some BENCHLAB Python sample code into a handful of tools that bridge BENCHLAB telemetry with a desired output format, whether you’re on Windows or Linux. Here’s what it ended up doing:

  • TUI: Sensor monitoring via a text interface
  • CSV Logging: Sensor logging for data analysis
  • Graph: Sensor visualization using dearpygui
  • MQTT: Message BENCHLAB data to an MQTT server
  • VU: Display sensor output on a Streacom VU1 dial

Each tool shares core logic for serial communication and sensor parsing. They support multiple BENCHLAB devices and (should) run seamlessly across platforms.

I’m using this as a platform to explore what vibe coding can help with so I’m actively working on adding more functionality. Furthermore, the BENCHLAB team is working on some new service offerings that rely on the vibe-coded tools. Stay tuned for more!

What I Learned from Vibe Coding

The biggest win? Accessibility. I’m not a software developer – not even close – but with the help of AI I could build working tools in under a week. That’s the magic of AI: it lowers the barrier to entry and lets non-coders fill gaps in their workflow or hobbies with custom software.

But let’s be real: the code isn’t perfect. It’s rough, not super scalable, probably insecure, and definitely buggy in places. Still, without vibe coding, I’d first have to spend months learning to code before even getting started on a basic “hello world” project. Now, I can get straight to making the tools I need.

As projects grow, complexity creeps in. You’ll need to understand your code to debug it. Language models sometimes rename functions or introduce quirks that trip you up. It doesn’t always remember relevant context or disregards the important parts. And once you’re juggling issues involving multiple files and dependencies, things can get annoying.

One of the biggest pain points? Guidance. AI models still need a lot of hand-holding for tougher tasks. It can be slow and frustrating but that also makes it surprisingly effective as way to learn.

Final Thoughts

Vibe coding has opened doors for me that I thought I’d never walk through and it doesn’t cost a dime if you’re using free services. That’s huge. Of course, it’s not a silver bullet that will do all the hard work for you. You’ve got to know what you want and be ready to get your hands dirty. The clearer your goals, the better your results.

Don’t get hung up on fancy “prompt engineering” either. Just figure out what you want, ask for it, and tweak as you go. If you’re planning to launch a business around a vibe-coded project, though, definitely have a pro review your code for security, scalability, and stability.

Otherwise, have fun! It’s a powerful new way to build things, even if you don’t call yourself a coder or developer.