Pramod glanced over at me, curiosity flickering in his eyes as we walked the familiar path to college. "How are you getting interviews with startups?" he asked, the question casual but pointed.
I’d been expecting it, though I hesitated for a moment, forming my response. The truth felt both simple and complicated. I had an interview that evening with a startup working on an eCommerce app for colleges—my first real break in a long time. But explaining how I’d gotten here? That wasn’t as straightforward.
"I’ve been building up my GitHub contribution chart," I said, trying to sound matter-of-fact. "Every day I come to college, I work on some made-up project or help with a friend’s assignment. Then I make sure to push at least one feature to the repo. It’s nothing fancy, but on my GitHub profile, it shows up. It looks like I’m constantly contributing—like I know what I’m doing."
“How long have you been doing this?”, he asked.
“About a year and half”.
I’m Krishna Dubagunta, and I write about my career, photography, and a variety of other intriguing topics. If you enjoy my content, feel free to like, share, and subscribe!
This is the final part of my Upskilling Journey. If you missed the first post, you can read it here.
Consistency over intensity
It’s easy to start strong, fueled by intensity—when I first began, I threw myself into learning headfirst. But staying consistent? That was the real challenge. You can only focus intensely on one thing for so long before the excitement wears off. Consistency is what keeps the momentum going after the initial rush fades.
The key was keeping things interesting. Early on, I built a WYSIWYG editor, and not long after, I switched gears to creating a Google Sheets crawler. At one point, my college implemented a fair usage policy for breakout rooms, and I got tired of manually checking availability. So, naturally, I built a parser to track room availability automatically, sparing myself the hassle of visiting the desk for updates.
By that time, I wasn’t just learning frontend anymore—I was building something bigger, more integrated. I used Python to develop the system, diverging from JavaScript for a while to explore a new language. Although I had experience with Python from my bachelor's, this was my first time applying it to a real-world scenario, albeit a "made-up" one driven by my own idea. I integrated SendGrid to notify me via email when rooms were available, set up a cron job to run the script hourly between 10 AM and 7 PM, and hosted the entire system on Heroku.
It took me over three weeks to build this setup. I was often grasping at straws as I pieced things together, figuring it out as I went. I didn’t even know what a cron job was until I needed to make the script run at intervals. Soon enough, I had built a fully server-side program without any user interface, hosted and running smoothly.
This project made me fall in love with creating things out of thin air. It wasn’t easy, far from it—but I was hooked. When something didn’t work out the way I had intended, it was frustrating, but it also pushed me to dig deeper. It became a cycle of hitting a roadblock, getting bruised, and then staying at it even longer until I figured it out. Sometimes the fix was as simple as forgetting to export a module, but the process of doing this consistently, day after day, made me faster. Eventually, I reached a point where the moment I thought of something, I’d immediately start building it.
Apply What You Learn
The learning didn’t just come from Udemy or YouTube courses; my regular university classes played a big role too. By my third semester, I had taken on a heavy course load with three challenging subjects, and to be completely honest—it was horrifying.
I need to be upfront here: I’m not a math whiz, not even close. Back in my bachelor’s, I failed my first math paper four times and only passed on the fifth attempt. It took me four years just to clear that one exam. Mathematics has always been my weakest link. Despite this, I wanted to challenge myself and see if I could handle Data Science. Deep down, I knew it was beyond my comfort zone, but I signed up for "Introduction to Data Science," "Image Processing," and "Software Architecture" anyway.
Soon enough, I was completely overwhelmed. I was neck-deep in Jacobians, integrals, differentials, gradient descents, and more theorems than I could count. I hated every bit of it, but I had no choice but to push through.
One assignment in my Data Science class stands out. It involved learning about coalescent memory and using CUDA to access it. I was able to perform matrix multiplication on the GPU using the CUDA library in Python. Although I had a tough time keeping up with both Data Science and Image Processing, I managed to hold my own in Software Architecture.
Towards the end of the semester, we were tasked with a final project for Image Processing, and it had me racking my brain for weeks. Eventually, I decided to implement a histogram generator for an image in Python. The goal was to plot points on a graph, with the points derived from a specific algorithm to compute the histogram. The concept was that the histogram would remain consistent whether the image was 1px or 4k pixels, so I only used a 1px image to simplify the task.
But I didn’t stop there. I tweaked the algorithm to perform the computations on a GPU using CUDA libraries, allowing for parallel batch processing of multiple images. In the end, I earned a B in the course, and I’m convinced it was solely because of the project. I almost flunked the exam, but that project saved me.
If there’s one thing I’ve learned, it’s that no matter how hard things get, you have to keep going with your heart fully in it. If you do that, you might not achieve the world, but you’ll at least pass the exam—and sometimes, that’s all you need.
How Long Did It Take?
It’s easy to look back now and say, “I upskilled myself,” but the truth is it took time—much longer than I initially expected. It took me about a year and a half of continuous learning, from iOS to web development, before I felt confident enough to apply for jobs.
But the good news is that with the resources available today—online courses, YouTube tutorials, coding bootcamps—it’s easier than ever to upskill. The barrier to entry has never been lower. You don’t need to wait for the “perfect” time or course; you just need to start, make mistakes, and keep going.
If you like reading my content, buy me a coffee and we can call it even.
Great post! Help me see that failing isn't really that bad