DEV Community

Ivan Delgado
Ivan Delgado

Posted on • Edited on

My Journey into Software Engineering #1: Embracing Mistakes

My journey into embedded software engineering began unexpectedly, filled with challenges and learning opportunities I couldn’t have anticipated. It all started when I stumbled upon a random Craigslist post seeking a software engineer. The job title didn’t mention anything about embedded or firmware engineering, but the description did. Despite having no prior experience in the field, I sent an email anyway. To my surprise, I received a response. They acknowledged my lack of experience but decided to meet with me regardless.

During that first meeting, they asked me a question that left me completely clueless. Instead of feeling discouraged, I felt a surge of motivation. I was eager to learn and take on the challenge. They assigned me a project involving a Raspberry Pi.

I dove in with enthusiasm, but soon became overwhelmed by the task's complexity. I had no idea where to start, and terms like SPI and I2C were completely new to me. It became clear just how much I had to learn about embedded systems.

Luckily, I was familiar with Linux. I had dabbled in distro hopping in college and installed Ubuntu on my old ThinkPad. However, as I began working with the hardware and electronics side of things, things took a turn for the worse.

In my eagerness to make progress, I accidentally short-circuited something with my multimeter while probing the interface board. Smoke filled the air, and I realized I had caused serious damage. It was a humbling moment—a harsh reminder that jumping into electronics without fully understanding the risks can lead to failure.

Despite feeling lost and discouraged, I reminded myself that mistakes are part of the learning process. Each setback offers a chance to grow and improve.

I realized that the path forward would require more research, more questions, and more learning. This was part of the journey—learning to handle failure, seek help, and piece together the knowledge I needed to move forward.

As I continue my journey into embedded software engineering, I’m committed to learning from both my successes and failures. I’ll document my experiences, challenges, and the knowledge I gain along the way. My hope is that my journey will inspire others in similar situations, reminding them that every expert started as a beginner.

P.S. The RPi.GPIO module doesn’t work on the Raspberry Pi 5 due to changes in how the GPIO pins are memory-mapped. Save yourself some time and check out this helpful guide. I used gpiozero to blink an LED using the GPIO pins, and you can find my code for it here.

Top comments (0)