Transitioning from Software Development to Engineering

In summary: AnalogDesign's advice is sound. Allow me to suggest that you look into taking the Fundamentals of Engineering (FE) test and then seek a PE in software engineering.
  • #1
Chubigans
21
0
Hello.

I graduated 1.5 years ago with a major in Computer Engineering. I have been programming since I was a young child so it seemed very natural for me to go into software development. Throughout my undergrad I focused on the easiest path to me (computer science classes were a breeze) while doing decently well in my engineering classes (electronics, digital systems, dynamics, mechanics of materials.) The engineering classes seemed very difficult.

During my internships I worked at huge engineering organizations (NASA, Lockheed, my school robotics lab) but I was always doing mostly software (C++, Java/Android, and C#.NET). My current job is as a web developer at a startup where I am about as far from hardware as I can get.

I don't see myself as much of a true "engineer", but more of an embedded software developer. I programmed the microcontroller (an Atmel XMEGA) for senior design and had a lot of fun. I loved writing low level routines for electronic devices like motor controllers, sensors and LCD screens. But I felt like I was at such a "hobbyist" level that I wasn't qualified for a real "embedded job".

I've never had the title "embedded engineer" and all I know is how to program a few very simple microcontrollers. What do I need to learn to be a well rounded "embedded software engineer"? Would a second degree that teaches me more about hardware and mechanics be helpful? Do I need to improve my CAD skills? Or should I be compiling linux kernels and writing device drivers for that? I just don't really know WHAT skills I would need or how to get them.
 
Last edited:
Physics news on Phys.org
  • #2
Get an MS degree in EE. That's by far the easiest way to get where you want to go. Then you 1.5 years in Software will be included as your experience when you get a job out of grad school.
 
  • #3
analogdesign's advice is sound. Allow me to suggest that you look into taking the Fundamentals of Engineering (FE) test and then seek a PE in software engineering.

There are a whole lot of embedded critical safety applications and they'll go begging for people who are willing to put their name on their work. I speak as one who uses them.
 
  • #4
I agree with analog.
I know it seems like common sense, but make sure the EE program you look at has good computer engineering classes. If the school has separate EE and CE programs, I recommend going to computer engineering.
 
  • #5


I understand your concerns about transitioning from software development to engineering. It can be daunting to feel like you may not have the necessary skills or experience to be considered a true engineer in your field. However, I believe that with your background in computer engineering and experience in software development, you have a strong foundation to build upon to become a successful embedded software engineer.

First and foremost, I would recommend focusing on gaining more experience and knowledge in the areas of hardware and electronics. This could include taking courses or workshops in microcontroller programming, circuit design, and analog and digital electronics. You could also consider seeking out projects or internships that involve working with hardware and embedded systems.

Additionally, it may be helpful to expand your knowledge in other areas related to embedded software engineering. This could include learning about real-time operating systems, firmware development, and device drivers. You could also consider gaining experience with different programming languages commonly used in embedded systems, such as assembly or C.

In terms of a second degree, it may not be necessary if you are able to gain the necessary skills and experience through other means. However, if you feel that a degree program would provide you with a more structured and comprehensive education, then it could be a valuable option to consider.

Lastly, I would also recommend networking and seeking out mentors or professionals in the field who can offer guidance and advice on how to become a well-rounded embedded software engineer. They may be able to provide insights on specific skills or experiences that would be beneficial in your career path.

In summary, transitioning from software development to engineering may require some additional learning and experience, but with your background and passion for embedded systems, I have no doubt that you can become a successful embedded software engineer. Keep seeking out opportunities to expand your knowledge and skills, and don't be afraid to ask for help and guidance along the way.
 

What is the difference between software development and engineering?

Software development is the process of creating software applications using programming languages, while engineering involves applying scientific and mathematical principles to design, develop, and maintain complex systems. Engineering often involves a more systematic and rigorous approach to problem-solving and requires a broad understanding of various disciplines.

What skills are needed to transition from software development to engineering?

Some important skills for transitioning from software development to engineering include a strong foundation in math and science, critical thinking and problem-solving skills, the ability to work with complex systems, and knowledge of engineering principles and methodologies. Additionally, communication and teamwork skills are essential for working in a multidisciplinary engineering environment.

What are some common challenges for software developers transitioning to engineering?

One common challenge is adapting to a more formal and structured way of developing software. In engineering, there is often a greater emphasis on planning and documentation, as well as strict quality control processes. Another challenge may be learning new tools and techniques specific to engineering, such as computer-aided design (CAD) software or simulation tools.

Are there any benefits to transitioning from software development to engineering?

Yes, there are several potential benefits to this transition. Engineering offers a broader range of career opportunities, as engineers are needed in many industries, including aerospace, automotive, and healthcare. It also allows for a more diverse and challenging work experience, as engineers are involved in all stages of a project, from design to implementation. Additionally, engineering roles often come with higher salaries and opportunities for advancement.

What steps can I take to successfully transition from software development to engineering?

To successfully transition to engineering, it is important to continue learning and developing new skills. Consider taking courses or pursuing a degree in engineering, and seek out opportunities to work on projects that involve engineering principles. Networking and building relationships with engineers can also help you gain insight into the field and potentially open up job opportunities.

Similar threads

Replies
23
Views
3K
  • STEM Career Guidance
Replies
9
Views
2K
Replies
7
Views
1K
  • STEM Career Guidance
Replies
1
Views
2K
  • STEM Career Guidance
Replies
30
Views
5K
  • STEM Career Guidance
Replies
3
Views
2K
Replies
18
Views
3K
  • STEM Career Guidance
Replies
12
Views
5K
  • STEM Career Guidance
Replies
1
Views
1K
  • STEM Career Guidance
Replies
3
Views
2K
Back
Top