My Educational Journey
In university, I majored in Computer Engineering. It is a combination of both electrical and software engineering. I always knew I wanted to go into the engineering field but wasn’t sure which route to go.
Exploring My Options
- Should I study to be a Petroleum Engineer because they make a lot of money?
- Should I do Mechanical Engineering because I get to physically build stuff?
- Should I do Civil Engineering because it’s more stable, and I can pursue government jobs?
I ended up going with Computer Engineering because I knew I loved programming, and it was the future, but I didn’t want to sit in front of a desk all day.
In my last year, I had to specialize more on hardware because it was the quickest way for me to graduate. If I knew better, I would’ve realized early on that in order to do the software specialization, I would’ve taken the appropriate classes. But I didn’t, so I went with whatever was handed to me. So I was able to graduate fast.
The Internship Dilemma
I had a couple of internships, and they were mostly software-focused. I wanted to try a hardware job, but it was impossible to get a role like that without hardware experience, which is the norm in this field. It’s a chicken and egg situation. Companies want you to have experience, but you need an opportunity to gain it. So most of the time for entry-level jobs, it’s your future manager taking a chance on you. So that is what happened to me.
My First Job
My first position was a Software Engineering role. That’s where I learned more about Python and grew my HTML and CSS skills. However, most of the projects we were working on weren’t optimized or up to date with the latest tech stacks. So I felt if I stayed there longer, I wouldn’t grow my skills, so I quit.
Discovering My Path
I tried again to look for hardware positions and luckily got an opportunity at a startup as an Associate Embedded Systems Engineer. I learned a lot, the main thing being that I wanted to do software and not hardware. I realized how much time I was wasting driving to the office, and I could stay at home if I only did the software side of things. So I left that job and took a year to learn more web development and mobile development skills. And haven’t looked back since.
Hardware vs. Software: Pros and Cons
Working in Hardware
- Tangible Creations: Working on hardware allows you to physically build and create products that you can touch and see.
- Engineering Challenges: Hardware engineering often presents unique and challenging problems related to electronics, materials, and physical design.
- Stability: Hardware jobs are often considered stable and are crucial in many industries, such as manufacturing and telecommunications.
- Limited Flexibility: Hardware projects are often more rigid and may involve lengthy development cycles, making it harder to quickly adapt to changes.
- Higher Costs: Developing hardware can be costly due to the need for physical components, prototypes, and manufacturing processes.
- Lack of Remote Work: Hardware work often requires a physical presence in labs or manufacturing facilities, limiting the possibility of remote work.
Working in Software
- Versatility: Software development offers a wide range of opportunities, from web and mobile applications to AI and game development.
- Fast Iteration: Software projects can evolve rapidly, allowing for quick adjustments and updates in response to changing requirements.
- Remote Work: Many software jobs can be done remotely, offering flexibility in terms of location and work arrangements.
- Lack of Tangibility: Software is intangible, which means your creations are not physical objects you can touch.
- High Competition: The software industry is highly competitive, and staying up to date with evolving technologies is crucial.
- Sedentary Work: Software development often involves long hours in front of a computer, which can be physically demanding in a different way.