Message from Anonymous Engineer
I’ll preface by giving some information about myself: I’m an ECE student going to my 2nd year in college, so far I really like the content from classes, hardware or even low level software (I don’t liken high-level software as much though). Over the summer I took a Computer Architecture class (I didn’t take it officially, it’s the same class that I’d be taking next semester. I just watched all the lectures with some friends because they were kept online from last semester). It seems that I am very interested in computer chips in general and it’s not surprising, I’ve known about CPUs since I was in high school. However, the problem arising as of right now that I see is dealing with internships/job offers going forward.
The problem is I don’t want to put it down that I am a hardware or a software person on my resume. If I say I deal with hardware, then software companies won’t want me as much, and vice versa. And I know, I have friends who tell me to just make 2 different resumes for each type of company, and that’s all fine.
I feel somewhat uncertain about what the types of jobs I will be able to get in the future. I often wonder about the tradeoffs over going into something like Computer Architecture over something like Robotics/Becoming some sort of Programming person.
I kind of want to do things related to Computer chips for a portion of my career, but when I feel like I’m satisfied I want to move towards more robotics and such. Would it be hard to transition into something like Robotics with a background in Computer Architecture despite having at least some experience in embedded/low-level software?
For example: one of my personal projects is making an rgb keyboard from absolute scratch, as of right now I am doing the pcb, but it currently features an oled screen and a volume scroller (rotary encoder), but the volume scroller has multiple usages given what you’ve picked in the menu.
It seems that I’m really interested in a lot of topics and I don’t want to settle with just one. I’ve also heard the statement: for one person in hardware, there is 200,000 people in software who can work on what he developed. How hard do you think it would be to find a job specializing in Computer Architecture? Thanks for any answers / Responses you give me beforehand.
Response from Padopado
First thanks for your message. I sincerely appreciate it and I’ll do my best to answer. Finding a field to specialize in and then devoting your time and energy into cultivating your specialization is a difficult decision for a young engineer with broad interests. The decision is informed by a host of factors such as level of interest, the practicality of being easily and securely employed, as well as the insecurity of making a wrong decision and then being unable to back pedal your way out. I see three main questions lingering in your messages to me and I’ll try to address them.
First, what are the trade offs of specializing in computer architecture verses robotics or another field such as software?
This is a tricky question because there are many different dimensions in which one can answer. Are we talking about employability? Earning potential? Satisfaction? Work life balance? Something else? Furthermore, I don’t have a grasp of what is important to you or how you’d rank how important these things are to you. I kind of like that I don’t have a handle on the particulars of your situation because it allows me to give the most honest, from the gut, advice. I’ll give the same advice to you that I’d give my younger self. When evaluating trade offs between different careers, maximize for passion.
I advocate for engineers to maximize for passion because as an ECE major you are already in a practical field with high demand. We aren’t 16th century Russian poetry majors that are going to end up waiting tables to pay off our student loans. We are technologists. We create. We fix. We make things better. The world will always need us and I am going to stay on this high horse until the world proves otherwise.. Sure there will be variation within ECE sub-fields in terms of how many job opportunities there as well as some salary flux, but interest and passion are the primary predictors of a successful career in terms of financial benefit and job satisfaction. I wholeheartedly advise that you heavily weight this factor when you do your decision making.
Second, if I do make a decision to pursue a certain field can I pivot into another area if my interests or fortunes change?
It’s anecdote time. While I was at Intel working on high performance computer chips I had several interns that I trained. One went on to graduate school and then got a position at Apple working on their custom silicon that is soon to power the next generation Macbooks. Another went on to law school and eventually became a patent attorney. And another went on to take a full-time position at Uber working on their autonomous vehicles, focusing on robotics. So yes, with an open mind, some planning, and some good old fashioned effort, you can pivot into other roles. It is realistic and it happens more often than you think. One thing that I would posit based on my experience is that it is easier to go from a hardware career to a software career than vice versa. I won’t comment on whether this is fair or not. I am basing this on the hiring patterns that I’ve observed during my career and many interviews that I have conducted.
Also, there is graduate school. Grad school is the engineers magic ticket to refocusing and rebranding yourself. You did software for a while and then realized you wanted to go into robotics? Start looking for MS or PHD programs and pull on that thread to your hearts content.
How hard would it be finding a job specializing in computer architecture?
Ok let’s be real here. There are probably less than a dozen design houses in the world that do traditional, hardcore, computer architecture. And of them there are only two that do x86 architecture. This may seem like I’m painting a bleak picture but it’s not exactly the case. There is a catch and it has two parts. 1) There are more jobs in chip design/manufacture than you think. There are architects, digital designers, analog designers, manufacturing engineers, firmware engineers, embedded programmers, and the list goes on. As an example, Intel alone employs 100,000 people. 2) There are almost always more open positions than qualified people to fill them. You can verify this for yourself by logging into Linkedin and searching for the usual suspects in the semiconductor industry and see just how many job openings there are.
It’s rare for undergrads to get architecture positions straight out of undergrad but common for them to get positions in the broader umbrella of chip design. Computer architecture positions normally requires a PhD or an MS and some work experience.
Difficult is a relative term. I’d say that if you attend a top 50-ish engineering school, maintain above average grades, excel in related coursework, and have projects or undergrad research, any chip design house would be chomping at the bit for a student like you. It takes time and effort but these aren’t unrealistic goals by any stretch of the imagination.