Which is better career wise for a computer engineering graduate?

Which career holds better prospects for a computer engineering graduate: embedded systems or digital circuit design/computer architecture?

  • I am a senior undergraduate student at a leading university in the US majoring in Computer Engineering. I have good coding and circuit design skills, and have taken coursework in embedded systems, analog and digital circuits and computer architecture. I am in a dilemma in choosing a career role among: Embedded systems and software programming at the hardware/software interface, systems programming (including compiler, GPU programming and OS optimization for hardware applications) Circuit design and Computer Architecture at the microarchitecture/RTL level. I am looking at roles at top companies (ARM, NVIDIA, Apple, Intel, etc.). I find both very interesting and am finally considering financial benefits and industry roles over a long time into the future. Personal experiences and details will go a long way in helping me out.

  • Answer:

    I expect that the number of companies doing embedded systems and software will only grow over time, whereas the number of companies doing circuit design and microarchitecture will remain small and might even shrink. Building microcontrollers and systems-on-chip from raw materials is a much more capital-intensive business than building finished products from general-purpose microcontrollers on custom circuit boards with custom software. And the latter is already cheap enough that people are starting businesses in their garages. The economics seem to favor a future that has a small number of chip fabs and a huge number of companies making finished products for retail sale. A focus on microarchitecture might mean that job openings only exist in a dozen cities around the globe. A focus on embedded systems and software, on the other hand, probably will make you suitable for job openings that will exist in every major city and probably a lot of small ones, too. I think you're much more likely to find work doing what you study if you follow that track.

Nate Waddoups at Quora Visit the source

Was this solution helpful to you?

Other answers

You state that you find them both very interesting.  If you are more passionate about one over the other, pick that one, as your passion will make a bigger difference in how successful you are over the long term than will the size of the market.  There are a lot of positions that won't make you choose, where you will need to do both some circuit design (more heavily weighted on digital) and low level software development. These roles can be found all over, though there are probably more opportunities in small companies than the "top companies" that you list.  More specifically, my experience has been that when working on 32 or 64 bit microprocessors, the software team is usually separate from and larger than the hardware team,  When it comes to 8 and 16 bit processors, there is higher likelihood that the team sizes are equal or one person is doing both.     Analog design, on the other hand is more specialized.  The amount of analog work has declined over the past two decades, as more and more of the system is being done digitally.  Analog signals are very quickly digitized and filtering is done through digital techniques (FFT, etc.)  Where analog work has grown has been in antenna design and wireless signals, especially as you try to cram multiple protocols and frequencies into very tight spaces. Whatever you decide, you are not stuck there forever.  You can try something new after a couple years finding out that your initial choice might not have been the best for you.

Rick Kunin

I have worked in the semiconductor business, and it is brutal. Very few companies make money.  Many components of RTL/embedded s/w design are now farmed out to Asia, so if you are in the US, you will be competing with those engineers as well. Having said that, even semiconductor companies hire far more software engineers than RTL designers, so between the two, I would pick embedded s/w design, but personally, I would avoid working in the semiconductor business, unless indeed your work for one of the top 3-5 companies.

Konstantinos Konstantinides

This is a really tough call. Both of these are going to undergo a lot of changes in the next ten years due to a strong shift towards robotic systems. Of the two, I would guess that embedded systems will change less, and circuit design will change more. Take, for instance, this new circuit design that simulates neural networks more efficiently: http://www.pddnet.com/news/2014/04/bioengineers-create-circuit-board-modeled-human-brain The previous best effort was the use of a Field Programmable Gate Array as a neural network. No telling what improvements we'll be able to realize next. These technologies will become the must-haves as we move further into the world of real time dynamic processing as required by robotics. Programming, on the other hand, will most likely make some adaptations to work with the new hardware, but I expect most of it to just use an abstraction layer that makes use of the existing programming methods for quite some time. My answer would be based on your gut tolerance for trying to keep up with the latest advancements, which will be greater with hardware than with software.

Robert Rapplean

I'm going to take a more generic approach to answering this question. While there is a need for specialists in all industries and areas, the industry tends to provide a higher financial reward to people who have the big picture/systems level understanding rather than people who have a narrow but specialist view of certain blocks of a bigger system aka micro-architects or module designers. This is why architects and managers tend to make a lot more money than an individual contributors. Exceptions exist of course, but this is the general rule. By choosing a career in RTL/micro-architecture or even embedded systems, you are choosing a narrow career path. Of course, you can't become a systems architect overnight. It takes years to pick up the skills necessary to become a system level architect. From a long term perspective, and since you are only just starting out on your career, pick and choose subjects that will help you understanding the system level picture better. Classes in computer architecture, Databases, Distributed Systems, OS, Compilers are all classes that will satisfy this goal. Classes in circuit design, VLSI, EDA etc on the other hand are much less useful in achieving that goal. When it is time to get into a job, aim for a role in a architecture team or a systems team rather than a design team especially if you pick a career in computer engineering. In the long run, the payoffs will be better, your career growth will be exponential rather than linear and the challenges you face as a system level architect will be equal if not greater than what a designer faces. Another thing worth noting is that to get a system level picture, you may have to take some sideways steps in your career. For example, spend a couple of years in RTL verif/design (getting into an architecture role straight out of school is near impossible), couple of years in performance modeling, another couple years doing performance at the software level, couple of years as a systems programmer and so on. After 5-10 years of experience, your knowledge and expertise will be way more useful to a company than another individual who spent all that time doing the one thing. Also bear in mind that 10-15 years from now, circuit design may become less and less important as processors become fast enough. The challenges will be at the system level, for eg.- how to build scale up or scale out systems and not so much how to make a core go faster. When was the last time you cared that the processor on your laptop, or even your smartphone was the fastest in the market. You only care if it is fast enough so that you don't notice. Hope that helps!

Vijay Sathish

In my opinion I think that embedded systems for a computer engineering gradute is the correct answer , because in near future or maybe now in some countries many companies will always look for experienced employee. And the embedded field is quite large. Nowadays software + hardware is the the key for a better future. Microcontroller's rules  !

Costandin Beniamin Ioan

Just Added Q & A:

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.