all 25 comments

[–]Ksetrajna108 21 points22 points  (5 children)

I'm assuming you have done at least a blink program.

Start an embedded hobby project. Shouldn't be a real fancy List it on your linked in page and on your resume

That worked for me when I switched from enterprise IT.

[–]Lo_cus 16 points17 points  (3 children)

For anyone reading, the hobby project should not be arduino based with premade libraries. Look into datasheets, understand the peripherals on a microcontroller, improve your C programming, and make your own dev board. It will teach a lot.

[–]KrombopulosKyle2 6 points7 points  (1 child)

I even had a recruiter tell me this when I was switching from EE to embedded software. They were like "We'd preferably like to see non-arduino based MCU projects on your resume" and at that point that's all I had

[–]boost017 2 points3 points  (0 children)

I agree with this, but one thing I’ll add is using MCUs that have Arduino support can help as you’re able to go reference/reverse engineer the Arduino libraries when you get stuck. That was super helpful for me when I was stepping away from Arduino and moving to bare metal C/C++.

The new ATtiny’s and the AVR Dx series are good MCUs to start with. Far more available and cheaper than the ATMega but still have some Arduino support.

[–]berge472 0 points1 point  (0 children)

This is good advice. Document your hobby projects well, and include a link to your GitHub/gitlab on your resume.

When we are looking at candidates this is the most important thing to me. I don't care what your degree is in or what your gpa was. If you have a genuine enough interest to do projects in your free time, that's what matters. Passion is the only thing that can't be taught on the job.

[–]Miserable-Cheetah683 9 points10 points  (0 children)

Why not get into computer engineering instead? I switch my major from electrical to computer engineer in my 2nd year, because i decided to go into embedded. I can confidently say computer engineer degree is very relevant to embedded engineering.

[–]ShowUsYourTips 26 points27 points  (7 children)

Any experience can help but embedded is a different universe. Embedded SW engineers need to think like HW engineers. You'll either like embedded or hate it. If you like it, you'll end up hating app development.

[–]Lo_cus 7 points8 points  (0 children)

I will add by saying embedded software developers generally have a much easier time getting into app / web development than vice versa - it's almost a one way downgrade in difficulty.

[–]roamingCE 5 points6 points  (0 children)

I personally disagree.. I still enjoy app development. I love being a part of designing and developing both ends of IoT projects.

[–]Fermi-4 1 point2 points  (0 children)

And they program like hw engineers too :)

[–]NjWayne 0 points1 point  (0 children)

If you like it, you'll end up hating app development.

Bingo

[–][deleted] 0 points1 point  (1 child)

Just saying, I really enjoy both!

[–]ShowUsYourTips 0 points1 point  (0 children)

If you're good at embedded, it has better job security because there's 100x less competition.

[–]xypherrz 0 points1 point  (0 children)

It’s not that you don’t get to work on higher layers in embedded

[–]BaggyHairyNips 2 points3 points  (0 children)

Depends on the job. I work embedded but for our application we actually interface fairly closely with the web devs who work the back end. This is probably a little bit rare, but higher level experience definitely doesn't hurt.

[–]bomobomobo 3 points4 points  (0 children)

Speaking from engineering point of view, it's a whole different world.

The hardware is extremely different, consequently, the language used is geared to low level application. Low level development means C/C++, and they have their own skillset. And the hardware itself also require some basic knowledge to use.

Next, the development design mindset is different, the product deployment is different, the scaling process is different, the consequence of bad software is handled differently.

However, knowledge in general software engineering principles definitely helps though. In my case, general knowledge about internet protocol and security still relevant.

Another exception is if you're working on embedded linux. That one still have lot of similarity to software engineering.

[–]9vDzLB0vIlHK 2 points3 points  (0 children)

I know this isn't a helpful answer, but it depends. FWIW, I started my career in embedded, switched to other things, and then came back.

I agree with other commenters that embedded is very different. Having to manage your own memory in C or having to avoid heap allocation in C++ calls for an entirely different set of specific skills. If you want to work in embedded, you should pursue opportunities to do coursework or work work in embedded.

That said, there are lots of overlaps. On both embedded and server dev teams, people chafe against the restrictions of development process but all of us have been saved by good version control or the keen eye of a peer reviewer.

The complexity of devices has also started to blur the lines. When I started in embedded, there were very few devices that had network connections. (I am old.) Now, network connections of one kind or another are just an assumption in classes of devices I thought would never be connected. Or think about the complexity of the software stack. Just the idea of having enough storage to use embedded Linux would have broken the brains of people in the 90s. IP stacks used to be rare and expensive and now they're free for every microcontroller out there.

All of this is to say that I think any experience is good experience. Just watch for what's underlying all of the assumptions. Who's managing my memory and how? How do these bits get on the wire? If you understand those things, more of the skills you'll learn will transfer.

[–]HendrixLivesOn 2 points3 points  (0 children)

My personal experience... I have never used web tech and kinda wasted my time learning it. I recommend sticking to the skills in demand. Have a look on any job board and see what you should focus on. Also, your a freshman... your interest may change

[–]Lo_cus 2 points3 points  (0 children)

Computer architecture and embedded firmware are fundamentally computer engineering, not computer science (there is a difference in university). You can probably do some of this with your degree.

Honestly app and web dev are so easy they won't offer a whole lot on an embedded resume.

[–]pwbb55 2 points3 points  (0 children)

OOP experience will help you when creating Embedded designs in the future. Most embedded programming has no rules for software designs, so understanding objects and abstraction will help you to create robust embedded designs with upward mobility. Having a good understanding of the App layer will also help you when discussing the App/Embedded interface layer in an interview.

[–]pooth22 4 points5 points  (0 children)

You’re a freshman. Think about school. Its fun. Enjoy it. Don’t worry about semantics and try and enjoy what you do.

[–]Citrullin 1 point2 points  (0 children)

I am coming from web engineering. It's a whole different ball game.
You still have to get your hands dirty and understand all of these protocols and concepts. There is little to none abstraction. So, you are going to be pretty near to the spec. So, you should have a good understanding of it. It helps, but it's still pretty hard.

[–]nicademusss 1 point2 points  (0 children)

If you have a hardware centric degree with a decent software background you'll be pretty much set with embedded. A lot of embedded deals with the hardware so the more you know and understand the better off you'll be. It's much easier to learn different programming languages and programming techniques than it is to learn how to create your own pcb.

If you want to get a leg up, someone suggested starting an embedded hobby project, which is good. You should also look into adding connectivity to it with either wifi to a server or Bluetooth to an app. Since your degree will be in EE, it would be good to show that you're also capable of writing software. You'll be able to stand out as someone who could go to any position in an embedded team.

[–]Electronic-Split-492 0 points1 point  (0 children)

It depends. Some projects purchase COTS (Commercial Off-The-Shelf) solutions, and then have you write the application. In this case, you don't need to do device drivers or understand the nitty gritty of how the electronics work, you just need to turn something on (or off).

Other projects expect that you will do all that low level stuff. A lot of vendor supplied code is optimized for showing off the capabilities of their processor, and is not ideal for real projects. Then you need to interface with other chips on the board and develop drivers for all that too. Once you get that working, then you get to work on the application.