DEV Community

Cover image for Suffering from BUGS: How I Almost Deleted My Entire Project
Maame Afua A. P. Fordjour
Maame Afua A. P. Fordjour

Posted on

Suffering from BUGS: How I Almost Deleted My Entire Project

You know that iconic DJ Khaled album, "Suffering from Success"? The one where he looks overwhelmed by how much he's winning?

DJ khalid gif

Yeah... I WISH that was me.

For the last 48 hours, I wasn't suffering from success. I was Suffering from Bugs. Specifically, the kind that make you question if you should drop out of Computer Science and just become a farmer instead.

I spent two days staring at a screen that screamed 500 Internal Server Error and ModuleNotFoundError. I was winning on localhost:3000 (it worked perfectly!), but the moment I tried to deploy? Disaster.

Here is the story of how I almost deleted my entire project out of frustration, and how I turned a 45-second nightmare into a win


1. The "Works on My Machine" Trap

I think everyone who codes in general has faced this trap maybe one too many times in their life. The reason I decided to build this project in the first place was because I have an upcoming quiz worth 30 marks of my final grade in a couple of weeks, and looking at 80+ slide per every week's lecture would be a nightmare for my revision. I do write notes (in my own words for better understanding) but when it gets to the last minute, I still cannot go through all my notes to refresh my memory of 200+ slides or even more for half of my semester. Then I decided to build 'SlideSift': Very simple tool that basically summarizes your lecture notes, just for revision.

Some of us including myself, are slow learners, and I struggle to just read or study something once, for it to stick forever. People with those kind of abilities are so lucky! But if you are like me, this would actually help you in your uni studies.


I built it using Google Gemini Pro. On my laptop, it was beautiful. It felt like magic.

But then I tried to deploy it to Render.

The Reality Check:

Cloud servers are not your laptop. They don't care that "it works for me."

My requirements.txt was a mess. The server installed an ancient version of the AI library that didn't even know what "Gemini" was.

Lesson Learned: If you don't lock your dependencies (e.g., google-generativeai>=0.8.3), the cloud will humble you very quickly.


2. The 45-Second Awkward Silence

The perfect scenario of how I was feeling whiles waiting for the web app to summarize the notes I uploaded, is very similar to those times when DVD's were a thing, you insert the disc into your DVD player, and sometimes if its corrupt, it shows 'disc error'. Or for my gamers, if any of you ever used the Nintendo GameCube, sometimes when you insert the tiny disc, it takes like 2 mins to load and gives you an error, then while it loads, you pretend to look into the sky so it loads faster... 😂only to receive an error and all you feel is disappointment.

Anyway, back to the story:

Once I finally fixed the crash (after what felt like 50 deploys), I hit the next wall: Latency.

Gemini Pro is smart, but it is slow.

I would upload a PDF, click "Summarize," and then... wait.
And wait.
And wait.

It took 45 to 60 seconds to get a response (Honestly speaking I think at a point it took like a solid 3 mins to even end up giving me an error).

Gemini pro took 45 to 60 seconds to summarize a single PDF. Then I tried to change it to Gemini Flash 1.5, for some weird reason I crashed the app when I used the Flash version, it didn't work at all.

Imagine showing this to a recruiter:

Recruiter clicks "Summarize"
... spinner spins ...
... awkward silence ...
... "So, how's the weather?" ...
... still spinning ...

Or people even using this, with modern technology in 2026, no one would wait 3 mins for a web app to work, let's be honest here. Even me the creator, didn't want to wait that long!

I hated it. It felt broken. I seriously considered hard-coding a loading message that said: "Go make a coffee, this will take a while."

This is when the Imposter Syndrome kicked in hard. I thought, "Real engineers build fast apps. I built a loading screen simulator."


3. The Pivot: Choosing Speed (Groq)

I realized I didn't have a Code problem; I had an Architecture problem.

I didn't need the "smartest" model in the world (Gemini Pro) to summarize a PDF. I needed the fastest one.

I scrapped the Google integration and switched to Groq (running Llama-3).

Groq is an inference engine designed purely for speed.

The result?

Before: > 50 seconds.

After: < 30 seconds.

It was instant. I clicked the button, blinked, and the notes were there. I literally screamed. I had been sitting behind my PC for hours, just surviving on zero sleep, dried mango slices (love them) and iced americano just to stay awake to make it work.

4. Why I Didn't Quit (The DevOps Mindset)

Well I did almost delete the entire repo and the project itself, because I kept on having so many deployment issues and Render kept on sending these error messages to my mail:

Render Error message

I got almost 20 of these messages and that was the time I almost gave up on this. But when I was staring at those error logs, wanting to delete the repo, I realized something: This IS the job.

As a CS student, I love writing code. But as an aspiring DevOps engineer, my job isn't just to write code, it's to ship it.

  • Fixing the requirements.txt? That's Environment Management.

  • Switching from Gemini to Groq? That's System Design.

  • Handling the "Cold Start" on the free tier? That's Cost Optimization.

Honestly, that's why I am always heavy on building as you learn, because truly, that is the only way to make it stick. If I am to work on another project and face these issues, I would immediately know what to do. Tech is so fascinating, you will lose your mind sometimes but its truly remarkable.

The Result

Slide Sift is now live. It turns chaotic lecture slides into pristine study guides instantly.

Try it here (Live Demo)
(Note: It’s on the free tier, so give it at most 50s to wake up the first time!)

Check the code on GitHub

To anyone stuck in "Deployment Hell" right now:

Don't delete the repo.
Take a walk. Drink some water/ coffee for my coffee lovers 😉. CRY IF YOU HAVE TO

The error is probably just a missing environment variable. You got this. 💙

Top comments (14)

Collapse
 
dannwaneri profile image
Daniel Nwaneri

This hit close to home.

Been building The Foundation - a federated AI knowledge commons on Cloudflare Workers. ActivityPub federation, semantic search, browser extension, the works. spent days fighting content-type headers that mastodon kept rejecting, wrangler deploys that succeeded but broke things silently, schema migrations that worked locally but not remote.

But the one that broke me was trying to capture claude chats. first attempt was ctrl+a, ctrl+c - paste the whole thing. didn't capture code blocks properly. then tried scraping the DOM. then share links. each one worked until it didn't. share links stripped artifacts. DOM scraping broke on long conversations. ended up building a full browser extension just to capture conversations reliably

at some point i wrote a whole "scaling back" post because the scope had outgrown what one person with client work and a life could maintain.

your line "this IS the job" is exactly it. fixing the requirements.txt isn't a distraction from real work. it IS the real work. switching from gemini to groq wasn't giving up - it was architecture thinking

you learned through the pain. that's the part no tutorial teaches

keep building 🙏

Collapse
 
maame-codes profile image
Maame Afua A. P. Fordjour

Exactly so Daniel, thanks for the read!

Collapse
 
bhavin-allinonetools profile image
Bhavin Sheth

This hit too close 😅 I’ve faced the same “works on localhost, breaks in production” nightmare. Locking dependency versions and testing in a production-like environment early saved me later. Also +1 on choosing speed over the “smartest” model — users forgive slightly less accuracy, but they never forgive waiting.

Collapse
 
maame-codes profile image
Maame Afua A. P. Fordjour

Exactly no one has patience these days (incl myself) so speed always wins

Collapse
 
maxxmini profile image
MaxxMini

The requirements.txt versioning issue is so real. I had almost the exact same experience deploying a Gemini-based tool — worked perfectly locally, then the cloud server pulled an older google-generativeai version that didn't support the model I was using. What saved me was pinning exact versions with pip freeze > requirements.txt instead of manually writing them. Also, for the 45-second cold start on Render's free tier — if you end up needing something snappier, Vercel's serverless functions with Python runtime might be worth a look. The cold starts are usually under 5 seconds.

Collapse
 
maame-codes profile image
Maame Afua A. P. Fordjour

Glad we can trauma bond on the same issues haha. And for the Vercel serverless functions I’ll try that and see how it goes, thanks for that tip Maxx

Collapse
 
harsh2644 profile image
Harsh

We've all been there! Mine was a 'rm -rf' near-death experience. The panic is real. Glad you made it through! Would love to know — did you have backups? And what's your backup strategy now after this near-miss?

Collapse
 
maame-codes profile image
Maame Afua A. P. Fordjour

The panic is very real Harsh. Yeah I always do have backups, I usually have a stable version as a private repository on my GitHub, and then the main one, and also another one where I play around with. So when i was able to make the main one work and I started having the issues with the backend, I just experimented on the other two backups till it clicked, then I updated the main one. That’s usually how I go about things, because anything can happen😂

Collapse
 
nomad4tech profile image
nomad4tech

There are also projects where you spend hours - sometimes even days - debugging and researching, and in the end it turns out to be such a stupid mistake or an absurdly simple solution that it’s almost funny. And you don’t even know how to track that kind of thing afterward

The upside, though, is that during all that suffering you actually learn a lot. You end up digging into areas you would never normally touch. You think about things and explore topics that wouldn’t even cross your mind under easier circumstances.

So yeah…what doesn’t kill us makes us stronger - even if your eye starts twitching afterward

Collapse
 
maame-codes profile image
Maame Afua A. P. Fordjour

My eyes were definitely twitching for sure😂 from the excessive caffeine intake. But you have worded it right, what doesn't kill us definitely makes us stronger & I have learnt a lot from the struggle.

Collapse
 
intelligenttools_tomic_85 profile image
IntelligentTools

To avoid the "Works on My Machine" trap, you can use Docker. I use it for everything. It gives us portability, a stable environment for every project, literal separation of concerns for your runtime.

Collapse
 
maame-codes profile image
Maame Afua A. P. Fordjour

I will eventually use Docker, still learning and getting into devOps and infrastructure. So I mostly base my projects on stuff I am learning in real time 😅 but will definitely use Docker when it gets to that time. I will keep that in mind, thanks for the advice! :)

Collapse
 
pascal_cescato_692b7a8a20 profile image
Pascal CESCATO

I could totally relate to your post! Honestly, who hasn't had an experience like yours? But looking back, it's the experiences that make us feel most desperate that also teach us the most...

Some comments may only be visible to logged-in visitors. Sign in to view all comments.