You can find links for tutorials and development boards in the video DESCRIPTION! Let me know if I missed something or if you want some clarification - more than happy to help! Cheers!
My Notes: 1. Learn C Pointers & Addresses Multithreading Data Structures Sorting & filtering Embedded Protobuf GET GOOD AT THESE THINGS ABOVE 2. Come up with Projects that apply C language in them (NOTHING) 3. Program with a development board beginner: Arduino / Raspberry pie intermediate: TI / STI 32 Key points to focus on: Super loops/while loops GPIOs DAC/ADC Interrupts Hardware Communication protocols: SPI/QSPI, I2C, UART/USART, Bluetooth, USB + Ethernet DMA (Direct Memory Access) Memory Management: Simple Flash read & write, DDR memory RTOS (Real Time Operating System) + Free RTOS Linux Systems 4. Non Programming Skills Learn how to read electrical schematics Learn to read Data sheets Hope this helps. You're welcome
As an embedded software engineer myself, I can say that This is the MOST accurate explanation about what is needed to become en embedded software engineer. Great video!!
Hello sister I had recently got an offer for embedded software position for a bond of 4.5 year so can you tell me what is the scope for an experienced embedded software engineer across India and abroad and does it lack behind in package when we compare with vlsi
@@maxalex2055 compared to VLSI, pay is less, I agree. And 4.5 years of bond is too much. In India, for an experienced person(3 years) , pay could be around 20L per year in an MNC like Qualcomm. But in the beginning, the pay is very less (3-4 L)
Well that is basically how to become an Embedded Software Engineer. To become a GOOD Embedded Software Engineer demands an awful lot more. You need to have a moderate understanding of electronics to understand what is happening beyond your code and how hardware faults can manifest as software issues. You need to be able to read datasheets and their revisions and corrections. You need to build a library of understanding for basic principals such as SPI, I2C, circular and linear buffers. You also need to understand and appreciate what is happening in the engine-room of the microcontroller when executing your code. Don't just rely upon the compiler, actually KNOW what bits and bytes are being passed around and operated on and why. Then you need to develop excellent communication skills. You need to be able to establish what is required rather than merely what is being asked for. You will need to submit yourself to numerous coding reviews to establish best practice. At the same time you must be flexible enough to adopt the "in-house" coding style of your employer or client. Finally, you must become resilient to being constantly second-guessed, questioned and micromanaged by those above you who know almost nothing about what you are doing.
is it a must to learn electronics for Embedded Software Engineers too? I thought only embedded systems engineers need that. This makes it difficult to distinguish software engineering and system engineering :(
Hi, I am going to enroll in robotics engineering this year but since i searched through the net it seems that i need to have advanced understanding of mathematics. i was wondering if you could provide some explanation in this regard since you have the experience. Thanks in advance!
I've been studying C for a bit and just closed my business so i can actually put more effort into my studies and i have been kinda moving around aimlessly without direction on what to do with C and this embedded systems stuff has really caught my eye i am actually very excited and thank you for this video its more than most others especially the dev board things that information is gold for me.
That’s good to hear…Some courses are here: Embedded C Programming for Absolute Beginners: bit.ly/3RYbR0U Master Embedded Driver Development: bit.ly/3vd6YqJ Master DMA’s: bit.ly/3vcE8Xy Master RTOS: bit.ly/3zuU7Tp STM32 Dev Board: amzn.to/2TX91zO
You know... I have been studying four years an Industrial Electronics Degree and I realized in my last year the thing I really LOVE is embedded software! I'm just looking for information so I can dig my way into embedded software, and probably I would have enjoyed a lot more Computer Engineering but here we are! Thanks for the info Greidi, I have to learn about RTOS and brush up a few concepts in C programming.
Just discovered your channel through a video I've saved. Glad I finally took time to watch it and go through your channel. As a CS student atm I want to be ESE later on and thanks to your video I have guidelines now ! I'll definitely follow your advice from now on. Thanks man !
What a video man. I'm looking for a company to do my degree's working practices and one of the posibilities is about embedded systems. After watching your video I will finish my cv as soon as possible to apply for this one. You explained it really really well and now I'm completely up for this job!!! Thank you man!
thank you so much man, I'm currently doing an internship for embedded and now I finally know what I want to do later in life and thanks to you I have some direction.
A great explanation of how to become an embedded software engineer. This is a real valuable video for anyone who wants to get into the embedded software field👍👍👍
Thank you, I'm learning c, after learning to design things and play with hardware. I'm looking forward to working with robotics and will share your channel with others. Cheers
I am trying to switch from an automation test engineer to an embedded software engineer. I used to work as a QC, I worked on measuring systems when I was in college and occasionally worked/configured controllers and firmware but after college I ended up doing web developing particularly test automation but I was never happy doing it. Two weeks ago I ended up helping my nephew with his mbots building it and everything came back after helping my nephew I remembered how excited I was when I am configuring the micro controllers, using oscilloscope/multi meter to balance the controllers when I was a QC. Now I am brushing up my c/c++ programming skills and waiting for a couple of arduino boards that I ordered so I can start building projects and hopefully to acquire a job as an embedded software engineer. 🤞🏽🤞🏽🤞🏽 Thanks!
Many thanks for sharing your amazing video with us and all these resources 🎉👍🔥👏 Could you please make similar videos about Kernel (windows, mac, linux) and System programmers, I'm pretty sure you can ask people around you, who have experience in that field, what resources, etc. 🙏 Thanks in advance brother!! 🎉
I love embedded systems but never managed to do anything after my computer engineering undergraduate 20 years ago! There just wasn’t any good money in it unfortunately back then. I don’t know what IoT folks make these days.
Great video. So funny… I came here from another “embedded engineer tips” and he didn’t suggest ardunio/rasp pi. I just got a ardunio kit and following along with Paul McWhorters videos. I’m a sysadmin by day but no programming xp. I’m learning so much from that little device and loving every minute of it! I love that little arduino!
Hello I come from Vietnam. because my english is very bad so i can't fully understand what you say, but i can understand a little bit. and thank you for your wonderful sharing. 😁 Of course I subscribed and liked the video
Woow what a great book thanks a lot for the resources. I did not notice them at first i was only watching the video. It would be better if you have talked about the resource in your video. Thanks alot
Hi Greidi! It is nice to get your channel known. Are you working with Rust when programming embedded software? Have you any experience with it? What do you think about Rust? Thanks for sharing your knowledge. P.
Thank you very much for sharing this fantastic piece with us!!!! I am a third-year embedded system student in Vietnam who aspires to pursue a master's degree in embedded system at University of Applied Sciences Bremerhaven . Do you believe it is better to continue your education and specialize in a certain subject, or should you always go to work after earning a bachelor's degree to get experience?
Hey! It totally depends on what you want to get out of your career! You would most likely end up in the same place either way in the industry. For example new masters grad would start off as SWE L4 (mid level engineer), fresh bachelors grad would start off as SWE L3 (entry level engineer). In 2-4 years the bachelors degree engineer would be able to get to SWE L4 and made money the entire time. The masters guy has spent more money on education and not earned any during that timeframe yet, but by that time they are at the same place. It is hard to enter back to school after you've experience the engineering salary and got comfortable with it. It's really up to you, if you want to learn more and really enjoy doing that... go ahead with masters, if you're eager to start making some money and want to try out what it feels like to work in the industry for few years before committing to school for the Masters. Who knows... maybe you'll hate it and want to do business degree instead.... or want to focus in biomedical engineering ... computer science or something else instead....
@@GreidiAjalik good reply, I am currently pursuing master on computer engineering and i want to work as soon as possible because I miss working environment
It's pretty well-considered Thank u for sharing these info As we can see, there is a long road to drive , so many things to be learned and practiced I work for this job only 1 year I think I only learned 25% of the whole big picture in thevideo Sometimes I confuse , and get tired of it In the other hand, I can see that, I've made my progress last year I'm very satisfied with it Now the last company I work for meet its financial crisis I lost my job So I am wondering, Should I keep going on this way?
Thank you for the thoughts! It’s hard for me to say if you should keep going down this path - when you said you’re getting tired of it, that can happen to anyone… especially if it’s the same thing every day. Make a list of pros and cons for this job and then make a decision… take into account if you actually enjoy the work not just the money made.
Sir could you please post a video for students those who just started college on electrical and electronics field about how to learn what are the steps(from beginning to advanced) this will help many students who are struggling I am 17 .I hope you will do this
I hope I enjoy this, it seems fun from the outside. I am a computer engineering major and next semester I am taking a class on embedded systems then I am planning to take 3 more classes focusing on embedded systems for my Sr year. I would also love to play around with it at home. I have to take an operating systems class as a requirement too.
Hey Tony! Thanks for reaching out, sounds like you're on a good path, this is exactly one of the reasons why I recommend computer and software engineering degrees over electrical engineering for embedded software engineering because there are so many more focused courses for embedded... Cheers! Let me know if you have any questions!
@@GreidiAjalik it’s so true for my university compared to electrical engineers which only take one class on it and it’s not even required, then there are electives of course but computer engineering prepares you by having you learn assembly, C, algorithms and data structures, operating systems and being able to take many courses focused on embedded systems. We even have one that teaches machine learning with embedded systems. I am really looking forward to them. Thank you for your videos
hello , glad i found your channel , embedded is a vast feild and i am a CS student with spec in IOT , i have worked with arduino , RPI , atmega boards and am familiar with microprocessor architech currently i have started learnnig system verilog and was looking to buy a fpga board, but i must say a fresher it gets a little demotivating to see that there is not as much community support as we have in let say machine learning or general programming ..like it gets so confusing not to mention everything is costly(shipping charges are huge) if i want to learn anything , even the software simulations. i got a job offer at the far end of my country with a very low pay , idk why the pay is so low , can we get a high paying job in a specific profile?
Hey! Thanks for the kind words and your support!! I'm assuming you were talking about pay for embedded software engineers? I think the pay should be the same (or around there) as for most other software engineering positions. Unfortunately, some companies just pay less because they don't have money for engineers or they just don't want to pay - some of it is also salary negotiations. Anyways, hopefully some of it helped or answered your question. Cheers!
So finally I have a passion to go in my own core field, wasted much time I know, but if you may suggest me some good guideline or how to n what should I do if I may enter in embedded field then pls help me guide me for get my entry in this domain.I am feeling like that I was just a bit step away from my dream but it's benn again a time in crisis since last 2 yrs almost.I am not saying that I am a master programmer in C but I can do wht I did and I understood these all well. Just need a guidance to break.
If you’re already familiar with C, I’d recommend get an STM32 board and start learning to use it as bare metal then move to RTOS usage - learn a lot about RTOS. While you’re learning continuously apply for jobs you like and think it would be a good fit. Depending on a company you’d probably want to be ready to do some coding for technical interviews - some linked lists or sorting algorithms would be a good start. Or just a fizz buzz.
technically FPGAs are part of embedded world as well... but I think I know what you're asking... in my opinion, it's really up to you to decide which you like more, I wouldn't recommend doing something you wouldn't enjoy - can't go wrong in either space.
You’re welcome! And thank you for the question, I think ML and AI are good skills to have, always. Hence why I’m doing my masters to learn about those. Im not sure how commonly it is actually used, but it could be used to learn more about sensors or devices to detect faults or prevent them. Although they would be challenging to implement due to hardware constraints.
Hey, nice video. I noticed that you briefly mentioned embedded linux, what do you think of it in regards to job prospects? I've been reading in reddit that bare-metal is dying and is being replaced by embedded linux. What is your opinion on this? I'm starting my career in embedded and I really like bare-metal and RTOS programming, but I'm worried that it would be a bad long term choice.
Hey! Thank you! I would say it is pretty desired skill to have in the job market and so is RTOS. I do agree that Embedded Linux or Free RTOS are becoming more and more popular than bare metal. You usually always want to start off with learning bare metal, then learn about RTOS and/or embedded Linux . RTOS wouldn’t be a bad long term choice. Even though there is a shift to use OS more on embedded systems (which is great), not every system will need to be running one. You could also run into a situation at work where they are porting code from one architecture (bare-metal) to another (RTOS/embedded Linux), thus knowing about both would be helpful. Hope this helps! Cheers!
I have industry experience in dsPIC by Microchip and am having trouble getting interviews. I have some academic knowledge in STM32 and FreeRTOS but no one is convinced. Terrible.
I'm a MCA(master of computer science) graduate. got a job as a design engineer (as a fresher) in a healthcare machine manufacturing company. Concerning thing is that it has a 5 year bond(they are saying they have 2 years of training itself). package is 4.5 lpa (INR) . I'm in a fix ,whether to take up the job or not . Need advice.
thank you for this video , it's help me alot as a beginner embedded system engineer ! unfornutally i'm a little bit confused about the c language because i think that i need only the embedded c extension of it or i need to learn more about the c programming as a plus for me ! ... also is it a good to learn new things like IOT or data bases that can communicated with our embedded system for data storage or monitoring operations ?
No problem! Glad it helps Amir! For the C language you can just learn as normal, once it comes to using the development board, all the tools will be provided by the company selling those boards - your code size and performance will be limited by the microcontroller used. Yes it’s good to learn those especially if you are interested in it. We have another project at work currently where our embedded swe’s work with Databases and IoT for data collection. So definitely stuff that can come up! Hope it helps!
@@GreidiAjalik thanks Greidi ! also it's impressive to find a youtubeur and a profissional interested on embedded systems engineering ... good job and all my support
There is no embedded C extension in the C language! It is all C. There may be some processor or architecture specific pragmas but they exist for almost all architectures. Please note that things like printf() is *not* part of the C language but library functions of the standard C library, and a lot of that is not available on small embedded systems. Supposed „dirty“ Tricks accessing registers, or switching GPIOs are usually plain C constructs accessing bytes and bits in the address space. There are few areas where you fall back to assembler yourself. I have done all my bare metal hardware access in plain C. To program effective programs you need to know the full C language. If you are using C++ be always be aware which of the language constructs come with higher overhead, and which come with almost no cost in regards to space or runtime.
All depends on location/company/industry. In general, it should be competitive with those salaries that are software engineering at least it is in my area where I’m at (New York). Hope this helps!
Fantastic video Sir. I want to ask that how to implement vision system in robots coz for computer vision mostly python is used and for sensors & actuators C is used as programming language? What to do sir???
Thanks for the support! You can look into some computer vision courses for robotics on Udemy or coursera, that should help you get started (or maybe even on youtube).
I’ve been studying C language but the course that I take (this is just a youtube video) has ended. My point is programming Arduino by using C and I saw some videos on youtube about how to code arduino with C. What I wanna ask is should I begin studying C for arduino or go deeper in C for a while. I am a high school student so I have the time (i hope i do) to learn something new. I’m waiting for all answers =)
I think starting with C development on Arduino is a great start... you'll run into similar peripherals on many other development boards... I'd also recommend STM32, they have some great development boards out there.
Complete noob here. I studied a C - intro to computer science course at university. What Arduino board should I buy? Do I need other accesories to get started with tutorials? Thanks a lot!
You talk about starting with an Arduino board. Would it be a good idea to start with Arduino C as a programming language, or is it better to just jump right into regular Embedded C?
@@electroniclover5589 they are particularly popular for low power systems. I don't have a statistically proven answer, but here's my guess... ARM is a processor widely used and used by many microcontrollers such as for TI and STM. Why would STM and ARM be popular, well, there are a lot of factors to it, such as how the company has presented itself within communities, the success of prior work, ease of usage of products, marketing, etc... STM for example has great support system for their products, you can use their boards together with arduino, and the chips are fairly small and some even support ultra low power operation. Power consumption is a huge thing nowadays for all of the wearable and IoT devices...
depends on the system... if it's an easy system... maybe writing from scratch. There are legacy systems out there are that have 100s of thousands of lines of code... I doubt that rewriting that would be worth anyone's time or easy to do (maybe just refactoring some of it).
Im not sure, would you be able to reply anyway here is, my question. Im computer science graduate and working as software developer but I want to switch to embedded but I have no experience in this field. I have knowledge of topics that are common but how do I make sure to get an interview and prolly be able to get the job without experience?
I have software engineering degree (calculus 1,2,3 ),physics,Logic circuit,microprocessor(intel 8085 and 8086),computer architecture organization (VHDL etc) included but no electrical engineering. Will i be able to get an internship in embedded systems ?
I think it's arguable, depends what area and what companies one might work for. In big tech companies salaries are competitive with regular software dev.
According to what you say at, 8:11 my question is, how much electronics should I know ? Well im not an electronic engineer and am not much interested in it. I am only a computer science student and have no idea what physics and electronics are. Can I be an embedded system engineer who has skipped the electronic part ?
For an embedded software engineer, you might wanna know how a voltage divider works, how to limit current on a gpio, what does Pull-up/Pull-down resistors and overview of basic R, L, C if you are going to deal with ADC, signal processing(can get ugly if you probe too deep).
Can you recommend a simulation software that would allow me to test my code for any microcontroller and sensor or any peripheral device? Not all sensors or Peripherals are easy to get, sometimes they are not available locally or even at online stores. I need a simulation software to test my project without buying any hardware first. TIA
I think you’re safe by doing so! I personally did some of my earlier projects on a PIC. I wouldn’t stick around on it for a long term and would move to a 32 bit architecture
Hi Geidi, I've been learning javascript for around 7ish months. Because for 3 - 4 months I've been dabbling with other tech like C, Java, Swift, C# and even Kotlin which I love. Question, I think this maybe a dum question. But the reason why I stopped learning C was because of the memory management issues, I heard something about having to release the memory? If you don't release the memory after your done with programming can this damage your CPU? WHT do you need to release the memory? What does garbage collecting prevent? Also, will learning C improve my understanding of JavaScript or even make me a better programmer? Thank you.
yep, you need to allocate memory in c in some cases and then reallocate when done using it. I’d recommend googling more about this if you want the exact details of why and how etc if that’s what you’re curious about! Cheers!
Hey! No, they are not, systems engineers usually do both management and engineering - they focus on the design, integration, management of some product/project cycles. You can search more on what a typical systems engineer might do online. Anyways, at least that’s how it is in the companies I’ve worked at.
@@GreidiAjalik Hi, Much thanks for the reply, However I am still confused a little. I searched it on internet and I found that both the names are somehow used interchangeably. I was also searching for masters courses, and i found out the name Embedded systems...
Hey, I have seen that as well. Embedded systems is a broad field, that consists of electrical, hardware, software, test(hardware and software), and systems engineering fields. At least in the companies I’ve worked for systems engineers is it’s own title. Idk why people use them interchangeable, if you’re looking at schools then look at what courses they offer (could be a mix of electrical designs, RF, layout, and maybe so assembly/C mcu programming). For job positions, could be a small company that expects you to wear multiple hats and design and develop the entire system… take a look at this link of job descriptions in embedded field, pretty accurate in my opinion: www.modis.com/en-us/resources/salary-guide/embedded-systems-job-descriptions/
great video sir ! im computer science student in my 3rd year university , im interesting embedded s/t enjineer , my question is can i become while iam computer sience student ??
I've not used qemu, but yes you could use an emulator to try and learn some. Also, you can get linux and learn linux kernel programming... or learn some assembly that you could run in your own current computer... hope this helps. There are some really inexpensive dev boards out there that you can use as well.
Is there a document or somewhere that has all these topics to look into written in one place (preferrably textually)? If not would you mind if I share one?
You can find links for tutorials and development boards in the video DESCRIPTION! Let me know if I missed something or if you want some clarification - more than happy to help! Cheers!
How long would this take to achieve?
@@kaosisoanaekwe7925 it depends on your hard work
My Notes:
1. Learn C
Pointers & Addresses
Multithreading
Data Structures
Sorting & filtering
Embedded Protobuf
GET GOOD AT THESE THINGS ABOVE
2. Come up with Projects that apply C language in them
(NOTHING)
3. Program with a development board
beginner: Arduino / Raspberry pie
intermediate: TI / STI 32
Key points to focus on:
Super loops/while loops
GPIOs
DAC/ADC
Interrupts
Hardware Communication protocols: SPI/QSPI, I2C, UART/USART, Bluetooth, USB + Ethernet
DMA (Direct Memory Access)
Memory Management: Simple Flash read & write, DDR memory
RTOS (Real Time Operating System) + Free RTOS
Linux Systems
4. Non Programming Skills
Learn how to read electrical schematics
Learn to read Data sheets
Hope this helps.
You're welcome
Great tl;dr
Any must-learn physics or electronics ?
youre amazing
@@ali_youtube_user_7351 electronics yes physics not as much
As an embedded software engineer myself, I can say that This is the MOST accurate explanation about what is needed to become en embedded software engineer. Great video!!
Cheers man! Thank you!
How’s the pay?
Hello sister I had recently got an offer for embedded software position for a bond of 4.5 year so can you tell me what is the scope for an experienced embedded software engineer across India and abroad and does it lack behind in package when we compare with vlsi
@@maxalex2055 compared to VLSI, pay is less, I agree. And 4.5 years of bond is too much. In India, for an experienced person(3 years) , pay could be around 20L per year in an MNC like Qualcomm. But in the beginning, the pay is very less (3-4 L)
@@stephenmartinez4883 in India, around 20 Lakh INR
Well that is basically how to become an Embedded Software Engineer. To become a GOOD Embedded Software Engineer demands an awful lot more. You need to have a moderate understanding of electronics to understand what is happening beyond your code and how hardware faults can manifest as software issues. You need to be able to read datasheets and their revisions and corrections. You need to build a library of understanding for basic principals such as SPI, I2C, circular and linear buffers. You also need to understand and appreciate what is happening in the engine-room of the microcontroller when executing your code. Don't just rely upon the compiler, actually KNOW what bits and bytes are being passed around and operated on and why. Then you need to develop excellent communication skills. You need to be able to establish what is required rather than merely what is being asked for. You will need to submit yourself to numerous coding reviews to establish best practice. At the same time you must be flexible enough to adopt the "in-house" coding style of your employer or client. Finally, you must become resilient to being constantly second-guessed, questioned and micromanaged by those above you who know almost nothing about what you are doing.
So I need an computer or electronics engineering to understand that?
is it a must to learn electronics for Embedded Software Engineers too? I thought only embedded systems engineers need that. This makes it difficult to distinguish software engineering and system engineering :(
I'm doing a post bacc in computer engineering computer goes over software engineering to do it would be easier with than just pure ee@@prohibited1125
I just started a job as a robotics engineer. Everything you said, are things my boss told me I need to learn
Good to hear it aligns with your boss :)
Hi, I am going to enroll in robotics engineering this year but since i searched through the net it seems that i need to have advanced understanding of mathematics. i was wondering if you could provide some explanation in this regard since you have the experience.
Thanks in advance!
Which degree you did?
I've been studying C for a bit and just closed my business so i can actually put more effort into my studies and i have been kinda moving around aimlessly without direction on what to do with C and this embedded systems stuff has really caught my eye i am actually very excited and thank you for this video its more than most others especially the dev board things that information is gold for me.
That’s good to hear…Some courses are here:
Embedded C Programming for Absolute Beginners: bit.ly/3RYbR0U
Master Embedded Driver Development: bit.ly/3vd6YqJ
Master DMA’s: bit.ly/3vcE8Xy
Master RTOS: bit.ly/3zuU7Tp
STM32 Dev Board: amzn.to/2TX91zO
@@GreidiAjalik sweet :D
What resources are you using to learn C
@@miriamDev yes
@@thefluffles6384 what resources?
All the content you are sharing here is what i have learned to become an embedded engineering. Great video
Awesome! Thank you!
You know... I have been studying four years an Industrial Electronics Degree and I realized in my last year the thing I really LOVE is embedded software! I'm just looking for information so I can dig my way into embedded software, and probably I would have enjoyed a lot more Computer Engineering but here we are!
Thanks for the info Greidi, I have to learn about RTOS and brush up a few concepts in C programming.
You’re welcome! Glad to hear you love this!
You were my TA in undergrad and I’m climbing the ladder at my embedded software engineering job!
Dude! That’s awesome! Hope everything is going well!
Just discovered your channel through a video I've saved. Glad I finally took time to watch it and go through your channel.
As a CS student atm I want to be ESE later on and thanks to your video I have guidelines now ! I'll definitely follow your advice from now on. Thanks man !
Love this! Thanks for sharing man! Good luck!!
Man, you show me the way I was looking for sometimes. Thanks and God bless u
Glad to hear it helped you!
What a video man.
I'm looking for a company to do my degree's working practices and one of the posibilities is about embedded systems. After watching your video I will finish my cv as soon as possible to apply for this one. You explained it really really well and now I'm completely up for this job!!! Thank you man!
Thank you so much for the support!! I’m glad to hear you found it helpful and good luck applying for that job!
thank you so much man,
I'm currently doing an internship for embedded and now I finally know what I want to do later in life and thanks to you I have some direction.
Holy cow dude your videos are so helpful, thank you so much.
No problem! Happy to hear that you enjoyed it!
A great explanation of how to become an embedded software engineer. This is a real valuable video for anyone who wants to get into the embedded software field👍👍👍
thanks for the support!
Thank you, I'm learning c, after learning to design things and play with hardware. I'm looking forward to working with robotics and will share your channel with others. Cheers
I am trying to switch from an automation test engineer to an embedded software engineer. I used to work as a QC, I worked on measuring systems when I was in college and occasionally worked/configured controllers and firmware but after college I ended up doing web developing particularly test automation but I was never happy doing it. Two weeks ago I ended up helping my nephew with his mbots building it and everything came back after helping my nephew I remembered how excited I was when I am configuring the micro controllers, using oscilloscope/multi meter to balance the controllers when I was a QC. Now I am brushing up my c/c++ programming skills and waiting for a couple of arduino boards that I ordered so I can start building projects and hopefully to acquire a job as an embedded software engineer. 🤞🏽🤞🏽🤞🏽 Thanks!
+1 For the BoYata laptop stand
Happy to find this channel....love it..
Thanks! I appreciate it!
Thanks a lot, Sir !!
Was eagerly waiting for this video😄
Hey Ash! You’re welcome! Cheers!
Happy to find this channel, I'm a fresh electronics engineering graduate from the Philippines and I want to focus on embedded engineering
Thank you Kevin! Happy to have you here!
Me too
That was great! Reminded me of my days at UC Davis in my computer engineering classes :)
thank you! :)
tq bro, everthing is relative
Kernighan & Richie, and a good pen to write neatly on it with :)
God bless you Sir !
you made my day !
Greetings & thanks from South Morocco !
Thanks for your video. It helps me know what i must focus on.
No problem and glad to hear it was helpful! Cheers!
Thank you so much for this video. Keep up the good work! You're awesome!
Thank you! no, you're awesome! Thanks for the support!
Awesome video 👏👏👏👏, long live to C programing
Thanks for the support! :) Cheers!
Thanks a lot. Very helpful.
Thank you sir!
OP GUIDE..!! Thank you and greetings from Costa Rica..!!
Many thanks for sharing your amazing video with us and all these resources 🎉👍🔥👏
Could you please make similar videos about Kernel (windows, mac, linux) and System programmers, I'm pretty sure you can ask people around you, who have experience in that field, what resources, etc. 🙏
Thanks in advance brother!! 🎉
Thank you very much !
No Problem!
Can you make a video on FPGA Engineer vs Embedded Software Engineer? Which field did you prefer and why?
Good video! I'll watch the rest!
I am also an Embedded software developer.
I love embedded systems but never managed to do anything after my computer engineering undergraduate 20 years ago! There just wasn’t any good money in it unfortunately back then. I don’t know what IoT folks make these days.
Pretty much the same pay as regular software engineers… if it’s not yet somewhere… it should be.
Great video. So funny… I came here from another “embedded engineer tips” and he didn’t suggest ardunio/rasp pi.
I just got a ardunio kit and following along with Paul McWhorters videos. I’m a sysadmin by day but no programming xp. I’m learning so much from that little device and loving every minute of it! I love that little arduino!
Those dev boards are good for starting off… I’m sure it will be good - best of luck with leading this stuff! :)
Hello I come from Vietnam. because my english is very bad so i can't fully understand what you say, but i can understand a little bit. and thank you for your wonderful sharing. 😁 Of course I subscribed and liked the video
Thank you so much for the support! I'm glad you were able to understand something! Cheers!
Woow what a great book thanks a lot for the resources. I did not notice them at first i was only watching the video. It would be better if you have talked about the resource in your video. Thanks alot
Thanks TED, I'll keep that in mind, a lot of people have asked about these resources.
Just found you channel , looks interesting.👍🏾
Looking to try the Arduino .
nice. Thanks for sharing
Thank you for watching! Cheers!
I am start learning right now....
Good luck my friend!
Hi Greidi! It is nice to get your channel known.
Are you working with Rust when programming embedded software?
Have you any experience with it? What do you think about Rust?
Thanks for sharing your knowledge.
P.
I used mazidi's book for 8051 and AVR.
pl make a video on embedded software development tools (IDE, Compiler, Version control) used by industry
Thanks for the idea Keyur!
Thank you very much for sharing this fantastic piece with us!!!! I am a third-year embedded system student in Vietnam who aspires to pursue a master's degree in embedded system at University of Applied Sciences Bremerhaven
. Do you believe it is better to continue your education and specialize in a certain subject, or should you always go to work after earning a bachelor's degree to get experience?
Hey! It totally depends on what you want to get out of your career! You would most likely end up in the same place either way in the industry. For example new masters grad would start off as SWE L4 (mid level engineer), fresh bachelors grad would start off as SWE L3 (entry level engineer). In 2-4 years the bachelors degree engineer would be able to get to SWE L4 and made money the entire time. The masters guy has spent more money on education and not earned any during that timeframe yet, but by that time they are at the same place.
It is hard to enter back to school after you've experience the engineering salary and got comfortable with it. It's really up to you, if you want to learn more and really enjoy doing that... go ahead with masters, if you're eager to start making some money and want to try out what it feels like to work in the industry for few years before committing to school for the Masters. Who knows... maybe you'll hate it and want to do business degree instead.... or want to focus in biomedical engineering ... computer science or something else instead....
@@GreidiAjalik good reply, I am currently pursuing master on computer engineering and i want to work as soon as possible because I miss working environment
It's pretty well-considered
Thank u for sharing these info
As we can see, there is a long road to drive , so many things to be learned and practiced
I work for this job only 1 year
I think I only learned 25% of the whole big picture in thevideo
Sometimes I confuse , and get tired of it
In the other hand, I can see that, I've made my progress last year
I'm very satisfied with it
Now the last company I work for meet its financial crisis
I lost my job
So I am wondering, Should I keep going on this way?
Thank you for the thoughts! It’s hard for me to say if you should keep going down this path - when you said you’re getting tired of it, that can happen to anyone… especially if it’s the same thing every day. Make a list of pros and cons for this job and then make a decision… take into account if you actually enjoy the work not just the money made.
GREAT TUTORIAL, please ,can you tel me ,the roadmap to good understand the Automotive Embedded systems Advanced?
I would have whatever I have in this video but add in CAN protocol - very commonly used…
Glad to watch this...what is suitable for embedded software engg?
*Electronics Engineering or Software Engineering?*
Software engineering or computer engineering with electives in embedded systems (microcontrollers, IoT, computer architecture)
@@GreidiAjalik that helps...thanks
Sir could you please post a video for students those who just started college on electrical and electronics field about how to learn what are the steps(from beginning to advanced) this will help many students who are struggling I am 17 .I hope you will do this
I’ll keep that in mind when planning my future content :)
Hi bro this is vasu from india i following your videos
good man. :)
Thanks! :)
useful info's thanks bro
Damn pointers still ruin my day!
true...
Thanks
Thanks a lot
No problem! :)
Hey iam from India .good content
Thank you sir!
I hope I enjoy this, it seems fun from the outside. I am a computer engineering major and next semester I am taking a class on embedded systems then I am planning to take 3 more classes focusing on embedded systems for my Sr year. I would also love to play around with it at home. I have to take an operating systems class as a requirement too.
Hey Tony! Thanks for reaching out, sounds like you're on a good path, this is exactly one of the reasons why I recommend computer and software engineering degrees over electrical engineering for embedded software engineering because there are so many more focused courses for embedded... Cheers! Let me know if you have any questions!
@@GreidiAjalik it’s so true for my university compared to electrical engineers which only take one class on it and it’s not even required, then there are electives of course but computer engineering prepares you by having you learn assembly, C, algorithms and data structures, operating systems and being able to take many courses focused on embedded systems. We even have one that teaches machine learning with embedded systems. I am really looking forward to them. Thank you for your videos
@@TonyDaExpert that's really cool! No problem, I'm more than happy to keep producing this content!
Thank you so much for your advices. Can you make more vids about this topic or a day life of an embedded software look like
No problem! Here's a video for day in the life of an embedded software engineer ruclips.net/video/6HpbZ-nKNxA/видео.html
hello , glad i found your channel , embedded is a vast feild and i am a CS student with spec in IOT ,
i have worked with arduino , RPI , atmega boards and am familiar with microprocessor architech
currently i have started learnnig system verilog and was looking to buy a fpga board,
but i must say a fresher it gets a little demotivating to see that there is not as much community support as we have in let say machine learning or general programming ..like it gets so confusing not to mention everything is costly(shipping charges are huge) if i want to learn anything , even the software simulations.
i got a job offer at the far end of my country with a very low pay , idk why the pay is so low , can we get a high paying job in a specific profile?
Hey! Thanks for the kind words and your support!! I'm assuming you were talking about pay for embedded software engineers? I think the pay should be the same (or around there) as for most other software engineering positions. Unfortunately, some companies just pay less because they don't have money for engineers or they just don't want to pay - some of it is also salary negotiations. Anyways, hopefully some of it helped or answered your question. Cheers!
Thanks a lot...
No problem Ahmet!
Could you plz post a video to how to apply a embedded software engineer for freshers
So finally I have a passion to go in my own core field, wasted much time I know, but if you may suggest me some good guideline or how to n what should I do if I may enter in embedded field then pls help me guide me for get my entry in this domain.I am feeling like that I was just a bit step away from my dream but it's benn again a time in crisis since last 2 yrs almost.I am not saying that I am a master programmer in C but I can do wht I did and I understood these all well. Just need a guidance to break.
If you’re already familiar with C, I’d recommend get an STM32 board and start learning to use it as bare metal then move to RTOS usage - learn a lot about RTOS. While you’re learning continuously apply for jobs you like and think it would be a good fit. Depending on a company you’d probably want to be ready to do some coding for technical interviews - some linked lists or sorting algorithms would be a good start. Or just a fizz buzz.
Bro VLSI Or embedded?? Plsssss
Tell pros and cons of these two?!!!
Anyone pls tell! I need to know.. my brain facing so much pressure in this swing!!
technically FPGAs are part of embedded world as well... but I think I know what you're asking... in my opinion, it's really up to you to decide which you like more, I wouldn't recommend doing something you wouldn't enjoy - can't go wrong in either space.
Thanks so much for this video.
One question: will learning ML(machine learning) be useful alongside C language for embedded systems?
You’re welcome! And thank you for the question, I think ML and AI are good skills to have, always. Hence why I’m doing my masters to learn about those. Im not sure how commonly it is actually used, but it could be used to learn more about sensors or devices to detect faults or prevent them. Although they would be challenging to implement due to hardware constraints.
Thank you
Hey, nice video. I noticed that you briefly mentioned embedded linux, what do you think of it in regards to job prospects? I've been reading in reddit that bare-metal is dying and is being replaced by embedded linux. What is your opinion on this? I'm starting my career in embedded and I really like bare-metal and RTOS programming, but I'm worried that it would be a bad long term choice.
Hey! Thank you! I would say it is pretty desired skill to have in the job market and so is RTOS. I do agree that Embedded Linux or Free RTOS are becoming more and more popular than bare metal. You usually always want to start off with learning bare metal, then learn about RTOS and/or embedded Linux . RTOS wouldn’t be a bad long term choice. Even though there is a shift to use OS more on embedded systems (which is great), not every system will need to be running one. You could also run into a situation at work where they are porting code from one architecture (bare-metal) to another (RTOS/embedded Linux), thus knowing about both would be helpful. Hope this helps! Cheers!
@@GreidiAjalik Thanks for the advice!
No problem!
Hi! Do you know any good books that can help with embedded systems/software
Hi! unfortunately no....
I have industry experience in dsPIC by Microchip and am having trouble getting interviews. I have some academic knowledge in STM32 and FreeRTOS but no one is convinced. Terrible.
I'm a MCA(master of computer science) graduate. got a job as a design engineer (as a fresher) in a healthcare machine manufacturing company. Concerning thing is that it has a 5 year bond(they are saying they have 2 years of training itself). package is 4.5 lpa (INR) . I'm in a fix ,whether to take up the job or not . Need advice.
thank you for this video , it's help me alot as a beginner embedded system engineer ! unfornutally i'm a little bit confused about the c language because i think that i need only the embedded c extension of it or i need to learn more about the c programming as a plus for me ! ... also is it a good to learn new things like IOT or data bases that can communicated with our embedded system for data storage or monitoring operations ?
No problem! Glad it helps Amir! For the C language you can just learn as normal, once it comes to using the development board, all the tools will be provided by the company selling those boards - your code size and performance will be limited by the microcontroller used.
Yes it’s good to learn those especially if you are interested in it. We have another project at work currently where our embedded swe’s work with Databases and IoT for data collection. So definitely stuff that can come up! Hope it helps!
@@GreidiAjalik thanks Greidi ! also it's impressive to find a youtubeur and a profissional interested on embedded systems engineering ... good job and all my support
Thank you so much! Cheers!
There is no embedded C extension in the C language! It is all C. There may be some processor or architecture specific pragmas but they exist for almost all architectures.
Please note that things like printf() is *not* part of the C language but library functions of the standard C library, and a lot of that is not available on small embedded systems.
Supposed „dirty“ Tricks accessing registers, or switching GPIOs are usually plain C constructs accessing bytes and bits in the address space.
There are few areas where you fall back to assembler yourself.
I have done all my bare metal hardware access in plain C.
To program effective programs you need to know the full C language.
If you are using C++ be always be aware which of the language constructs come with higher overhead, and which come with almost no cost in regards to space or runtime.
@@kaihorstmann2783 Thanks for clarifying that! :) much appreciated! Cheers!
thanks for your video, can you tell me about the embedded software salary comparing other IT job (web, app)
All depends on location/company/industry. In general, it should be competitive with those salaries that are software engineering at least it is in my area where I’m at (New York). Hope this helps!
Fantastic video Sir. I want to ask that how to implement vision system in robots coz for computer vision mostly python is used and for sensors & actuators C is used as programming language? What to do sir???
Thanks for the support! You can look into some computer vision courses for robotics on Udemy or coursera, that should help you get started (or maybe even on youtube).
Greaaat channel and great effort
Reading microcontroller data sheet is my problem it would be nice if you make a video for that
Thank you for the support! I’ll keep that idea in mind and see if I can fulfill it in some way :) cheers!
@@GreidiAjalik thank you so much
I’ve been studying C language but the course that I take (this is just a youtube video) has ended. My point is programming Arduino by using C and I saw some videos on youtube about how to code arduino with C. What I wanna ask is should I begin studying C for arduino or go deeper in C for a while. I am a high school student so I have the time (i hope i do) to learn something new. I’m waiting for all answers =)
I think starting with C development on Arduino is a great start... you'll run into similar peripherals on many other development boards... I'd also recommend STM32, they have some great development boards out there.
@@GreidiAjalik Thanks :)
Complete noob here. I studied a C - intro to computer science course at university. What Arduino board should I buy? Do I need other accesories to get started with tutorials? Thanks a lot!
How big part of Assembler programming in your career?
Good question! Right now, very little, close to none. Depends on the project and architecture I’d be working on. Cheers!
You talk about starting with an Arduino board. Would it be a good idea to start with Arduino C as a programming language, or is it better to just jump right into regular Embedded C?
Depends on the person on how new they are, I’d recommend starting with c and then going into embedded c
why not PIC microcontroller >?
You could use PIC if you want to! I didn’t mention it in the video because I’ve not worked with PIC for 4-5 years now…
@@GreidiAjalik Why do most of the embedded developers use st and arm microcontrollers?
@@electroniclover5589 they are particularly popular for low power systems. I don't have a statistically proven answer, but here's my guess... ARM is a processor widely used and used by many microcontrollers such as for TI and STM. Why would STM and ARM be popular, well, there are a lot of factors to it, such as how the company has presented itself within communities, the success of prior work, ease of usage of products, marketing, etc... STM for example has great support system for their products, you can use their boards together with arduino, and the chips are fairly small and some even support ultra low power operation. Power consumption is a huge thing nowadays for all of the wearable and IoT devices...
Awesome
What is easier for you, write a sw from scratch or reviewing legacy code?
depends on the system... if it's an easy system... maybe writing from scratch. There are legacy systems out there are that have 100s of thousands of lines of code... I doubt that rewriting that would be worth anyone's time or easy to do (maybe just refactoring some of it).
Im not sure, would you be able to reply anyway here is, my question. Im computer science graduate and working as software developer but I want to switch to embedded but I have no experience in this field. I have knowledge of topics that are common but how do I make sure to get an interview and prolly be able to get the job without experience?
So u dont actual need a CEngineering or electronics engineering? I didnt get that
Do you recommend Micropython in embedded software development or should I stick with c??
I have software engineering degree (calculus 1,2,3 ),physics,Logic circuit,microprocessor(intel 8085 and 8086),computer architecture organization (VHDL etc) included but no electrical engineering. Will i be able to get an internship in embedded systems ?
Interesting occupation but the remunerations suck compared to enterprise development.
I think it's arguable, depends what area and what companies one might work for. In big tech companies salaries are competitive with regular software dev.
According to what you say at, 8:11 my question is, how much electronics should I know ? Well im not an electronic engineer and am not much interested in it. I am only a computer science student and have no idea what physics and electronics are. Can I be an embedded system engineer who has skipped the electronic part ?
For an embedded software engineer, you might wanna know how a voltage divider works, how to limit current on a gpio, what does Pull-up/Pull-down resistors and overview of basic R, L, C if you are going to deal with ADC, signal processing(can get ugly if you probe too deep).
Can you recommend a simulation software that would allow me to test my code for any microcontroller and sensor or any peripheral device? Not all sensors or Peripherals are easy to get, sometimes they are not available locally or even at online stores. I need a simulation software to test my project without buying any hardware first. TIA
is it a good idea to start working with microchip's PIC platform? or any better suggestion? i was thinking about specifically PIC18f47Q43
I think you’re safe by doing so! I personally did some of my earlier projects on a PIC. I wouldn’t stick around on it for a long term and would move to a 32 bit architecture
Hi Geidi, I've been learning javascript for around 7ish months. Because for 3 - 4 months I've been dabbling with other tech like C, Java, Swift, C# and even Kotlin which I love.
Question, I think this maybe a dum question. But the reason why I stopped learning C was because of the memory management issues, I heard something about having to release the memory? If you don't release the memory after your done with programming can this damage your CPU? WHT do you need to release the memory? What does garbage collecting prevent? Also, will learning C improve my understanding of JavaScript or even make me a better programmer? Thank you.
yep, you need to allocate memory in c in some cases and then reallocate when done using it. I’d recommend googling more about this if you want the exact details of why and how etc if that’s what you’re curious about! Cheers!
Are embedded programmers scared as other if AI will take their jobs?
❤️
Hi, Embedded Software Engineer or Embedded system engineer! Are they both the same? Or not?
Hey! No, they are not, systems engineers usually do both management and engineering - they focus on the design, integration, management of some product/project cycles. You can search more on what a typical systems engineer might do online. Anyways, at least that’s how it is in the companies I’ve worked at.
@@GreidiAjalik Hi, Much thanks for the reply, However I am still confused a little. I searched it on internet and I found that both the names are somehow used interchangeably.
I was also searching for masters courses, and i found out the name Embedded systems...
Hey, I have seen that as well. Embedded systems is a broad field, that consists of electrical, hardware, software, test(hardware and software), and systems engineering fields. At least in the companies I’ve worked for systems engineers is it’s own title. Idk why people use them interchangeable, if you’re looking at schools then look at what courses they offer (could be a mix of electrical designs, RF, layout, and maybe so assembly/C mcu programming). For job positions, could be a small company that expects you to wear multiple hats and design and develop the entire system… take a look at this link of job descriptions in embedded field, pretty accurate in my opinion: www.modis.com/en-us/resources/salary-guide/embedded-systems-job-descriptions/
@@GreidiAjalik Than you very much for sharing your knowledge, very helpful.❤️
Thank you for the video😊. Which IDE are you using for STM32 controllers?
You’re welcome! I’d recommend stm32 cube IDE - there’s also a MSVSC extension you could potentially try out.
@@GreidiAjalik thank you
great video sir !
im computer science student in my 3rd year university , im interesting embedded s/t enjineer , my question is can i become while iam computer sience student ??
I am struggling to develop my own protocol software From scretch I don't want to use library please guide me
What if idont have actual hardware. Do you recommend using qemu or another emulator?
I've not used qemu, but yes you could use an emulator to try and learn some. Also, you can get linux and learn linux kernel programming... or learn some assembly that you could run in your own current computer... hope this helps. There are some really inexpensive dev boards out there that you can use as well.
Is it ok to start with Raspberry PI Zero? It’s hard to get Raspberry PI 4 these days
Is there a document or somewhere that has all these topics to look into written in one place (preferrably textually)? If not would you mind if I share one?
Hi sir I want to move my carrier as an embedded testing engineer . what is the future scope of this course?