DEV Community

Ivan Delgado
Ivan Delgado

Posted on

My Journey into Software Engineering #5: Debugging, Docker, and Growth

It’s been a whirlwind since my last post, and I wanted to share what I’ve been up to, what I’ve learned, and where I’m headed. These past months have been full of opportunities to grow as a software engineer, and while it’s been challenging, I’m proud of the progress I’ve made.

Progress on the Leak Test Device Project
We’re nearing the finish line on the leak test device project. I’ve been working on understanding the codebase and contributing where I can. While my contributions have mainly focused on testing and verification, they’ve been critical in ensuring we meet the specifications required.

The project’s codebase is fascinating—Java handles the UI and parts of the backend, while Python scripts manage socket communication with the device's internal components. These scripts control the various leak testing programs that the machine runs.

The biggest game-changer for me has been learning to use IntelliJ and its debugger effectively. Instead of staring at code and trying to piece it together in my head, I’ve been able to step through the code and understand how everything fits.

One of our toughest challenges has been reverse-engineering a decompiled JAR file to recover the source code. The programmer who originally wrote it refused to share the source and was let go, leaving us to pick up the pieces. I’m proud of how far we’ve come—and I’m excited to finalize the repository once all our tests are complete.

Diving Into C++
I’ve been sharpening my skills in C++. I’ve been following The Cherno’s C++ series, and it’s been an eye-opener. Concepts like shared pointers, unique pointers, and weak pointers have been interesting, and I look forward to exploring more advanced topics.

To practice, I’ve been playing around with a Super Mario Bros C++ repo. Using the debugger in VS Code to walk through the code line by line has been a great way to learn how everything works under the hood.

A New Gig: ReactJS, Docker, and Porting a Program
I recently landed another gig through a referral (still unpaid). The project involves porting a Windows program to Linux. The source code is in C++, and while I’ve managed to get the .exe running on Linux using Wine, we’re missing a couple of header files. I’m checking in with the team to see how critical they are, but in the meantime, I’ve started diving into ReactJS and Docker, both of which I was asked to learn for the role.

Docker has been a revelation. If VM's virtualize hardware, Docker virtualizes the operating system. I’ve started replicating the Raspberry Pi environment we’ve been developing in, setting up JDK 11 and MariaDB. Future note to self: It essentially solves the “it works on my machine!” problem.

Reflections on the Job Search and Career Advice
The job market has been tough, sometimes it feels like it always will be, but things are finally starting to come together. My resume has improved significantly over the last few months, and I’m beginning to feel like a professional software engineer.

One thing I’ve learned is that conflicting advice is everywhere in this industry. For example, should your resume be one page or two? Everyone seems to have a different answer. At the end of the day, I’m just focusing on getting as much feedback as possible and iterating on it.

Another thing I’ve noticed is how easy it is to get caught up in what to learn. Web development? AI? Game dev? Embedded systems? My advice: pick one and stick to it. Pivot later if you need to, but don’t spread yourself too thin. Right now, I’m learning whatever is required for the gigs I’m working on—ReactJS, C++, and Docker—and that’s enough to keep me busy.

Looking Ahead
I’m growing more confident in my skills every day, but I know I’ve still got a long way to go. I want to brush up on my data structures and algorithms with LeetCode and start building more projects to showcase what I’ve learned.

As a first-generation college student who graduated during COVID, the journey has been rough. But I’m here, I’m learning, and I’m proud of how far I’ve come. I can’t wait for the moment when I get my first paycheck as a professional software engineer.

Stay tuned.

Top comments (0)