GitHub LinkedIn

My Tiny AI Bootcamp

What a skeptical 13-year backend engineer learned from 3 weeks of building with Claude.

S
SansWord A data platform builder with 13 years of experience, curious about AI systems — learning by building, one project at a time.
The most important thing is — I abandoned my prejudices and tried to understand this "new stuff" more. Keep learning, embracing new technology, and reflecting on what I can contribute.

Over the past 3 weeks, I went from AI skeptic to building 3 real projects with Claude — here's what a 13-year backend engineer learned.

· · ·

Some background on me

As a backend engineer for the past 13 years, I was skeptical of what AI can do. I thought "vibe coding" is a dangerous concept, especially in environments that require precision and deterministic behavior. AI has become a big thing over the past few years and I couldn't ignore it anymore. I decided to stop being scared and dive into it to see what it is.

· · ·

cut_sh — Frame-Accurate MP4 Editing

It started with a question to Claude asking how to use an ffmpeg command. I wanted to be able to cut a video recording without heavy encoding, but cutting at a keyframe would be near the timestamp I want, not the accurate frame.

After 2–3 prompts, I realized: "Hey, am I coding with Claude for the first time?"

This is something I'm familiar with. I reviewed everything Claude generated, asking it to refactor as I wanted. After about 2–3 hours, I had a script exactly the way I wanted.

The development process was so interesting that I later spent another 3–4 hours to reflect on what I did — especially exactly which prompts evolved the script — and came out with a story to record the development process.

✂️
· · ·

sans_cube — Bluetooth Rubik's Cube Analyzer

After cut_sh, I found how AI can fill the gap of what I don't know. So I wanted to build something I was technically not familiar with. As a Rubik's cuber for 20-ish years, I really wanted a website that could analyze my solves — break them into phases and give detailed analysis. There are already websites doing this, but they lack some key features I need.

I was also curious how to use JavaScript to talk to Bluetooth devices. That's an area I don't know.

On the opposite side, I'm familiar with the requirements. I have my taste for look and feel.

So I started using Superpower — a Claude plugin to brainstorm, plan, and implement in TDD.

The painful part was the usage. I kept bumping into session limits in the middle of development. I chose to wait 5 hours at first, but then decided to buy extra usage. I thought if I capped the usage at $80, it would cost at most 5× - Claude Max plan.

This also made me cautious with my prompts, forcing me to break development into phases.

I have my own technical tastes. For example, I didn't want it to call the BLE library directly — build a CubeDriver interface first, and then implement the driver with BLE logic. This decision made it easier later to support mouse and touch by just implementing a pointer driver. I don't know if AI could have proposed the OOP design in the first place if I had not asked for it. This might be the part where I can provide my experience to steer the project.

· · ·

sans_yt_summary — YouTube Transcript Summarizer

After the previous fun project, I wanted to build a tool instead of an application. I have a lot of system design mock interview videos and wanted to prioritize them. I know LLMs are good for that.

In this project I explored the boundary between determinism and flexibility. First I built a Python script to fetch transcripts from YouTube, which requires deterministic behavior. Then I passed the transcript and a summarization prompt into the LLM to summarize.

I wanted to find the balance between a deterministic script and space for the LLM. I also wanted to make something reusable on the command line.

With SKILL.md, I can invoke the script in natural language — not only in English but also in my native language. After 1 day, I had a working skill that I could install into my other Claude projects.

But something felt wrong. Since I released this and allowed others to install the plugin, could I accidentally make something that would break my users' runtime? I learned from social media that people are tricking AI into doing things — could someone install my plugin and end up breaking their environment?

Prompt injection became a concern. After the first draft, I worried: what if someone shouted rm -rf / in a video? Injection attacks are something I learned about with SQL, JavaScript, logs, and data pipelines — and LLMs are no exception.

So I added instructions in SKILL.md asking it to add a sentinel tag, but found it could sometimes skip it. Then I realized the key boundary of deterministic behavior: if you need something to happen, put it in the script.

I still worry about whether the LLM might ignore the wrapped <transcript_SENTINEL> tag and accidentally treat the transcript as a command. So if you're interested in this, use it with caution.

📝
· · ·

What I took away

In this two-week bootcamp, I learned different aspects of using Claude. I still feel uncomfortable saying "I discussed something with AI" or "I asked AI to build this and that." But now I understand how it works more.

The next step is to be more efficient and stable: saving context windows, setting up a personal CLAUDE.md to configure my development preferences (or not?). Exploring how to allow multiple engineers to collaborate in one repo using AI.

The most important thing is — I abandoned my prejudices and tried to understand this "new stuff" more. Keep learning, embracing new technology, and reflecting on what I can contribute.

Claude + Superpower plugin
$20 for Claude Pro and $80 for extra usage.

#AI #Claude #SoftwareEngineering #BackendEngineering #LearningInPublic