Embedded Software Engineering Interview Questions & Answers

  Рет қаралды 62,236

Greidi Ajalik

Greidi Ajalik

Күн бұрын

Пікірлер: 111
@GreidiAjalik
@GreidiAjalik 2 жыл бұрын
Feel free to leave your embedded software engineering interview questions in the comments below! Cheers!
@vasanth0x55tube
@vasanth0x55tube 2 жыл бұрын
Some of the questions that immediately came to my mind are 1) What is a race condition? What causes it and how to avoid it? 2) What happens in a startup code? 3) How does a cpu handle an interrupt? 4) what is an interrupt latency? How can it be measured? 5) What is a software interrupt? 6) what is the difference between a breakpoint and watchpoint? 7) What is meant by board bringup activity? 8) Explain a scenario where you have used a logic analyzer
@GreidiAjalik
@GreidiAjalik 2 жыл бұрын
Great questions! thanks for sharing!
@vamsikrishna9825
@vamsikrishna9825 2 жыл бұрын
2) startup code runs bootloader first then checks for the any new firmware for the flash memory. If not bootloader switches to the starting address of the flash memory, where our previously loaded firmware starts excecuting. From then cpu loads address of the each instrcution to the stack pointer. Goes everything normal. 3) Whenever the interrupt triggers, the processors stops the execution and hands over the process to interrupt handler(ISR). The cpu loads the address of the ISR in the Stack pointer. Once the execution of the ISR over. SP intializes with the memory address where it was resumed before. 5) software interrupts are created by the system whenver the exceptions happend. 6) when u are debugging the code breakpoints are helpful to break the execution at required line of code. Where as watchpoint is u can add it to the debug window to see how the variable is changing over time in the process. Any thing wrong i answered feel free to correct me. Thank you.
@tanujkumar7983
@tanujkumar7983 2 жыл бұрын
@@vamsikrishna9825 MCU executes instructions pointed by Program Counter (PC) and not the stack pointer (SP). SP is used to store the return address so that MCU can use it to reinitialise PC in order to resume last process execution after an interrupt or exception.
@evic262
@evic262 2 жыл бұрын
@@tanujkumar7983 return address from a subroutine is kept in link register (LR), SP keeps the pointer to active stack.
@tanujkumar7983
@tanujkumar7983 2 жыл бұрын
@@evic262 that's true in case of ARM. But thanks, actually I am currently working on EFM8 so completely forgot about ARM for a while. Thanks again
@djdarco
@djdarco 2 жыл бұрын
Wow, these are some really low-level questions and you really provide great information! As an interviewer I'm much more interested in the person sitting accross me. Such as teamwork, the ability to learn new things, communication skills and so on. Technical skills and abilities are mostly already pointed out in the CV, but the non-technical skills. I think it is also good to add that if you don't have an answer it is okay to be honest about it, not everyone knows everything and again the ability to learn is also very important.
@GreidiAjalik
@GreidiAjalik 2 жыл бұрын
+1!!! I can’t agree more with this!!! Thanks for bringing this up Dirk!
@SpaceSurferGod
@SpaceSurferGod 2 жыл бұрын
Some questions I answered during an interview I gave recently (Embedded + OOP): 1. How do you prevent memory leaks? 2. How do you use stack? 3. When do you want to use static classes? 4. What is polymorphism and inheritance? 5. Major difference between C and Python. 6. Have you used pointers as parameters to functions? 7. How have you used interrupts in your code before? 8. How have you used watchdogtimer in your code? 9. How do you use pointers? 10. How do you use private constructors? These mostly cover what I was asked, it is not strictly an embedded role but embedded plus general software developer role. Hopefully I'll get in!
@GreidiAjalik
@GreidiAjalik 2 жыл бұрын
Rahul! Thank you so much for sharing this info! Lots of good questions that can help a lot of people when they prepare for their interviews!
@bagaspermana88
@bagaspermana88 2 жыл бұрын
those are hard questions :(
@AlonsoNoCarDude
@AlonsoNoCarDude 2 жыл бұрын
Hopefully you get an offer from them. Thanks for sharing.
@lemon6521
@lemon6521 Жыл бұрын
These questions are kinda crazy. Major difference between C and Python? They're polar opposites, how much time does the interviewer have?! How do you use pointers? Have you used pointers as parameters in functions? This basically amounts to "have you ever touched code"
@miloszivkovic6256
@miloszivkovic6256 Жыл бұрын
I will give my answers and give an * next to an answer I think is incomplete / wrong 1. Use smart pointers instead of raw pointers, but embedded is resource constrained and sometimes raw pointers are absolutely necessary * 2. Not sure if Stack/Heap memory management or stack data structure (they are the same) * 2.a. Stack is a linear data structure that uses LIFO (last in first out) model. Stacks are used for many things like backtracking and expression evaluation. Stack defines three operations: push (creates a new item on top of the stack), pop (removes and returns top item of the stack) and peek (just reads the top item without removing it) 2.b. Most famous use of a stack is memory management in modern languages. Stack is used to track references and primitive values, as programs execution enters a scope a new item is created on a stack that allocates memory for that scope, when program execution exits the scope stack is popped and memory is freed. 3. I have no idea what this is about. Static inner classes in Java come to mind **** 3.a. When do you want to use static variables in classes? Static in classes defines memory that is shared by all instances of that class, there are two use cases: static methods and static variables. Static methods are added to class namespace, limitation of static methods is that they cannot access instance varables. use cases are factory and utility methods. static variables hold data that is global to the class it is often used to store class constants. 4. I am not gonna dignify this with a response 5. C is a statically typed (instead of duck typed), compiled (instead of interpreted), python has automatic memory management (GC), python is portable, C can natively use threads etc. 6. No, I am a normal person that has a life. I primarly use Java that doesn't expose pointers to programmers but it does use pointers below the hub, every time I pass something by reference I use pointers. *** 7. I have never programmed embedded systems but I know what interrupts are. Interrupts are a mechanism that allows microcontroller to interupt current execution and respond to an event, this improves responsivnes of embedded systems. Without interrupts we would have to pool external dependencies 8. *** (I know what it is but that's not the question) 9. Pointers allow us to allocate large chunks of memory once and pass a pointer to that memory instead of copying it. *** 10. Private constructors restrict creation of objects outside of the class, most common use of private constructors is in singleton pattern, factory pattern, utility classes and to prevent subclassing
@nanisaladi4710
@nanisaladi4710 2 жыл бұрын
Thanks a lot for Awesome content 😊 keep going… Some Interesting Questions: 1. multi core programming and debug 2. IoT and Embedded 3. Power management, clocks 4. role of OSI in newer communications like pcie, all wireless, usb, thunderbolt etc 5. Bus 6. Memory management, caching 7. s/w topics like - preprocessors, understanding coredumps, struct vs union 8. LLDB Looking fwd for more videos 👍🏻
@GreidiAjalik
@GreidiAjalik 2 жыл бұрын
Thank you for the support and sharing the questions!
@TuchoJL
@TuchoJL 2 жыл бұрын
I really appreciate these videos. I am about to finish my degree and I want to make a career in embedded systems. Videos like this are very helpful to get an idea of ​​what I am going to face. It would be great if you continued making videos about embedded systems. Thank you!!
@GreidiAjalik
@GreidiAjalik 2 жыл бұрын
You’re welcome! Thanks for the support!!
@randomyoutubeuser8509
@randomyoutubeuser8509 2 жыл бұрын
I have seen all of these question in the interview. good video!
@evic262
@evic262 2 жыл бұрын
Great video! Just a little comment on cpu clock freq. on power consumption; in some cases you actually need max clock freq to achieve lower power consumption. (e.g. serve all the tasks and do all the calculations as fast as possible and go back to sleep).
@GreidiAjalik
@GreidiAjalik 2 жыл бұрын
Thanks for the support! That's true, there can be some corner cases like that :) thanks for clarifying.
@mandar_dessai
@mandar_dessai Жыл бұрын
Race to halt :)
@panagiotisfelekis7105
@panagiotisfelekis7105 2 жыл бұрын
Great Video Greidi! Just started looking for my next Embedded Software job. Great Timing
@GreidiAjalik
@GreidiAjalik 2 жыл бұрын
Nice! Good luck with your interviews!
@shivas2714
@shivas2714 2 жыл бұрын
Love from India 💯 I just now started as a Embedded C Engineer..... keep doing more videos for us
@GreidiAjalik
@GreidiAjalik 2 жыл бұрын
Thanks for the support! Cheers! :)
@shivas2714
@shivas2714 2 жыл бұрын
Thanks
@barath3956
@barath3956 2 жыл бұрын
Hello, shivs s I am goind to learn Embedded could you please provide me your email id or phone number so I can contact you?
@Brave569
@Brave569 Жыл бұрын
English communication is compulsory for that field?
@rahulkumarmahato4357
@rahulkumarmahato4357 6 ай бұрын
Bro give me some suggestions I want to start this career in embedded system
@CaliforniaSunboy
@CaliforniaSunboy Жыл бұрын
For the bonus question about pull-up/down-resistors I would also explain, why I need them, especially because i don't want floating (undefined, random) readings on an input pin. I you have an unconnected pin when the button is not pressed, the input is likely to be random (not really, but hard to predict)
@noahbraasch7854
@noahbraasch7854 Жыл бұрын
As a computer engineering student, its great knowing some of these questions! Still have lots to learn though... haha
@emmanuelkorankye1154
@emmanuelkorankye1154 2 жыл бұрын
Great video mate; it's difficult finding embedded systems content on KZbin. I would also like to ask if you have any books you recommend for beginners in embedded systems.
@GreidiAjalik
@GreidiAjalik 2 жыл бұрын
Thank you for the support! Unfortunately I don't have any right now ... it's a common question I get and I'm working on getting a solid list of books together that are actually good...
@aishwaryashashikumar3645
@aishwaryashashikumar3645 2 жыл бұрын
Hey Greidi! I'm so glad you're back with making videos regularly! I remember you were studying at Georgia Tech part time and I'll be going there this fall for master's in ECE Let me know where I can get in touch with you, have a lot to discuss :)
@GreidiAjalik
@GreidiAjalik 2 жыл бұрын
Thank you for the support!! People can always reach out to me on discord/instagram :)
@MohamadAshtari-c3x
@MohamadAshtari-c3x 11 ай бұрын
great! I was asked some basic questions like how much memory does unsigned char or short data type occupy? Explain what heap memory is? Next week I have another Technical interview with a big company. I will share their questions here .
@ramprasanthudhayabaskar8073
@ramprasanthudhayabaskar8073 2 жыл бұрын
Isn't DMA, Direct Memory Access? I only heard it that way and not Dynamic Memory Access as told in the video. Or is this another name?
@GreidiAjalik
@GreidiAjalik 2 жыл бұрын
it is, it was a mistake on my part, it has already been pointed out in the comments and there is Errata in the video description. Cheers! :)
@pedrovelazquez138
@pedrovelazquez138 2 жыл бұрын
Im from Paraguay. I am finishing my degree in Electronics Engineering and Im surprised by the ammount of questions that I can answer in this video. The thing with the career itself here is that there are not many jobs available for us locally. I tried applying online but I got rejected many times. Can you give some advice?
@kayakMike1000
@kayakMike1000 9 ай бұрын
Its not an illusion. Processes spend most of their time waiting for IO, so switching among tasks is a good idea.
@philware1546
@philware1546 21 күн бұрын
I think you missed the entire point about Volatile variables. You didn't mention anything about them changing outside of the compiler's "view" and so to NOT optimise them. That's the point.
@kayakMike1000
@kayakMike1000 9 ай бұрын
Low power mode... Make sure you do the WFI instruction
@hawwoth
@hawwoth 2 жыл бұрын
Thank you! These questions are really helpful! Keep it going. You're great! :D
@GreidiAjalik
@GreidiAjalik 2 жыл бұрын
Thank you for the support! Cheers!
@mitchellbergman7482
@mitchellbergman7482 2 жыл бұрын
I was recently asked: How does free() know how much memory to free? #define SQR(a) (a*a) SQR(10) returns 100 But SQR(2+8) returns 26 Why? And how do you debug that? Give me some examples of where you’d use an open/close collector/emitter. As a state machine: How would you prevent an actuator or bearings from seizing up under extreme temperatures provided expensive and sensitive TECs?
@dishakarnataki7019
@dishakarnataki7019 2 жыл бұрын
Why use bare metal programing when we have compiler to write a startup code and dump code in microC
@vamsikrishna9825
@vamsikrishna9825 2 жыл бұрын
Ans: bare metal code enables direct manuplating the registers to get the required output. Whwere as startup code includes uncessary data some times which u dint required for your project, which increses the size your program. When u are more specific with the program memory u should opt to bare metal. And bare metal some what speed as u are directly manuplating the registers.
@voytek_two_thousand
@voytek_two_thousand 2 жыл бұрын
DMA = Direct Memory Access (not Dynamic)
@GreidiAjalik
@GreidiAjalik 2 жыл бұрын
Absolutely correct! I have this errata listed in the description of the video already :) thanks for adding it to comments as well!
@voytek_two_thousand
@voytek_two_thousand 2 жыл бұрын
@@GreidiAjalik my bad, should have looked harder
@GreidiAjalik
@GreidiAjalik 2 жыл бұрын
You’re all good! I’m glad it’s in the comments as well - easier to find/see!! Cheers!
@BenMorse0
@BenMorse0 11 ай бұрын
Came here to leave this comment
@MrDajiangyoude
@MrDajiangyoude 9 ай бұрын
I am indebted to this video.
@thisaintmyrealname1
@thisaintmyrealname1 2 жыл бұрын
Thanks for the content! And please keep featuring your dog in the background 🥲
@GreidiAjalik
@GreidiAjalik 2 жыл бұрын
Thank you for your support!! I’ll try to make sure he gets more camera time… lol
@sivapraveens9643
@sivapraveens9643 2 жыл бұрын
Good information, thanks a lot💙. Love from India
@GreidiAjalik
@GreidiAjalik 2 жыл бұрын
Cheers! thank you my friend!
@kaushalpanchalk.p4930
@kaushalpanchalk.p4930 Жыл бұрын
Great video, How can we select a clock ? Of course it depends on the requirement say for example I have only bare metal code there is no rtos and there are only few peripherals like uart, i2c and spi and it works on standard frequency. So can we identify this much clock is enough for this project?
@PALTUBABY
@PALTUBABY 2 жыл бұрын
Very nice explanation. I would like to add 1 point for mutex and sem. In addition to what you explained, the difference in mutex and sem is in their usage. Mutex is used for mutual exclusion and sem is used for synchronization between tasks or tasks and ISRs
@bolder99
@bolder99 5 ай бұрын
synchronization between ISR? Semaphores sleep so using them for ISR is not a good idea.
@dhanushronaldo5378
@dhanushronaldo5378 2 жыл бұрын
I need to check the interview rounds of top companies like Qualcomm, Rockwell and Honeywell for embedded software engineer. So, where can I find it?
@GreidiAjalik
@GreidiAjalik 2 жыл бұрын
You can have some luck with leetcode forums or reddit. Take a look there :)
@buddysnackit1758
@buddysnackit1758 Жыл бұрын
They ask about what is on the data sheet? It takes like 1/2 hour to read that and understand it. Why would ANYONE memorize this.
@Foersom_
@Foersom_ Жыл бұрын
???
@zltn_brkl
@zltn_brkl 2 жыл бұрын
Hey Greidi I just wanted to say thank you for this valuable video, I am a self taught electrical and embedded software engineer and I would like to ask what kind of project do you recommend doing and putting to my portfolio. Thank you in advance
@GreidiAjalik
@GreidiAjalik 2 жыл бұрын
Thanks for the support!!! What projects do you already have there? any specific industry you are targeting? (i.e. automotive, wearables, robotics...)
@zltn_brkl
@zltn_brkl 2 жыл бұрын
@@GreidiAjalik I am mainly on IoT. Especially smart home/systems/automation
@GreidiAjalik
@GreidiAjalik 2 жыл бұрын
I’ll give my best shot here, but I think anything with facial recognition would be a huge +. At home camera monitoring system or something like that. Building the hardware + software and a phone/pc app for it would be a pretty significant effort and good experience. Thoughts?
@zltn_brkl
@zltn_brkl 2 жыл бұрын
@@GreidiAjalik sounds great, to be honest I have already experienced with facial recognition, the main idea was something like a smart home security/entrance system. Thanks for your advice and your support as well.
@GreidiAjalik
@GreidiAjalik 2 жыл бұрын
Also, audio processing stuff is good too… could be voice activation of device, gunshot detection - very low power oriented iot stuff…
@krishna_raj
@krishna_raj 2 жыл бұрын
You are one of a kind make more and from everything
@GreidiAjalik
@GreidiAjalik 2 жыл бұрын
Thank you so much! :)
@Error__504
@Error__504 2 жыл бұрын
How the locking procedure of mutex take place
@bhaveshnaik1337
@bhaveshnaik1337 10 ай бұрын
The Dog is enjoying his life
@TonyDaExpert
@TonyDaExpert 2 жыл бұрын
I am only on my first Embedded systems class so I am wondering is DMA a RTOS concept?
@GreidiAjalik
@GreidiAjalik 2 жыл бұрын
DMA (Direct memory access) is not an RTOS concept. It’s feature/device part of the microcontroller.
@ohwow2074
@ohwow2074 2 жыл бұрын
DMA exists everywhere. Even on $300 laptops up to $5000 PC and even super computers and smart phones. It's funny but without DMA the world of computing would be far less efficient.
@bobwmcgrath
@bobwmcgrath 2 жыл бұрын
How many years of experience do you need before they don't ask you stuff like that? I feel like I used to be able to ace all those questions, but now I'm more focused on my very specific parts of my project and I don't worry about some of that stuff.
@GreidiAjalik
@GreidiAjalik 2 жыл бұрын
Depends on the job, most companies still will ask some of these questions no matter what years of experience you have.
@kayakMike1000
@kayakMike1000 9 ай бұрын
Errr... Pulling data in parallel.... Gotta make sure your DMAs are able to work on the bus at the same time...
@JohnSmith-pd7mp
@JohnSmith-pd7mp 2 ай бұрын
DMA is direct memory access not dynamic.
@chadizdroid
@chadizdroid 2 жыл бұрын
You need to provide correct and clear info.. what is miso or mosi.. DMA is Direct Memory Access ..
@GreidiAjalik
@GreidiAjalik 2 жыл бұрын
Good to know! Thanks for the feedback! :)
@haebrahimi
@haebrahimi 2 жыл бұрын
DMA = Direct Memory Access
@GreidiAjalik
@GreidiAjalik 2 жыл бұрын
Thank you for clarifying!
@theodoreomtzigt7145
@theodoreomtzigt7145 Жыл бұрын
DMA = Direct Memory Access, not Dynamic Memory Access
@zeelpatel1002
@zeelpatel1002 Жыл бұрын
Network communication protocols?
@slim_cana
@slim_cana 5 ай бұрын
Nothing wrong with posting a Mutex/Semaphore in an IRQ as a signaling mechanism. Good video otherwise
@vincentlow4172
@vincentlow4172 2 жыл бұрын
I like how emo your dog is. =D
@GreidiAjalik
@GreidiAjalik 2 жыл бұрын
Lol
@infantmano2977
@infantmano2977 Жыл бұрын
Explain CAN buss brother
@barath3956
@barath3956 2 жыл бұрын
Hi buddy, I have a question does IoT Engineers use SQL for Analyzing Data?
@GreidiAjalik
@GreidiAjalik 2 жыл бұрын
If there are databases involved, then maybe, otherwise, I don’t think so…
@barath3956
@barath3956 2 жыл бұрын
@@GreidiAjalik Why I asked is IoT engineers collect lot of data so how they will analyze the data?
@GreidiAjalik
@GreidiAjalik 2 жыл бұрын
missed your follow up questions.... Sometimes you do need to analyze data in real time so you analyze some data on the devices directly or partial analyzation and rest is done later within database structure. Otherwise whatever the developers/company decide to use for data analysis is up to them... it could be SQL if the existing infrastructure is there or could be NoSQL or some other fun way of doing it, maybe pandas df?
@Foersom_
@Foersom_ Жыл бұрын
It would depend on the size (RAM and CPU) of the IOT device. Many MCU are much too small, you would read data and store in a memory structure / records format. Then send those data by serial or other communication to a PC or larger device that can process and store data maybe in SQL DB.
@keyurpanchal1706
@keyurpanchal1706 2 жыл бұрын
in DMA, actually CPU is not in ideal mode and also CPU does not give all controls to the DMA controller.
@thehouseofelamrani5795
@thehouseofelamrani5795 Жыл бұрын
the questions in th video : 1. Explain how the spi works. 2. How does a DMA work? 3. What is Semaphore ? How is it different from Mutex ? 4. How to collect data in parallel and in sync ? 5. When and why to use keyword volatile ? 6. What are some ways to minimize MCU power consumption ? 7. What are the benefits of RTOS ? 8. Should we always use RTOS ? 9. What to remember when writing an ISR ? 10. What are little and big Endian ? 11. What are pull-up and pull-down Resistors ?
@darshanpandya6111
@darshanpandya6111 Жыл бұрын
Dog behind you is so cute 🥰 !! Thanks for informative video.
@eyalporat3027
@eyalporat3027 2 жыл бұрын
9/10 :)
@GreidiAjalik
@GreidiAjalik 2 жыл бұрын
That's pretty good .... lol, thanks for the rating! :)
@buddysnackit1758
@buddysnackit1758 Жыл бұрын
DMA ...noty Dynamic but Direct
@msbanda2123
@msbanda2123 2 жыл бұрын
👍
@gkpar
@gkpar 9 ай бұрын
You dog could care less about embedded questions...he was just waiting for you to take him out for a nice walk.....
@dimabirenbaum9200
@dimabirenbaum9200 Жыл бұрын
2:06 DMA is not a "Dynamic" Memory Access. It is a Direct Memory Access - a technique that allows devices to *directly* access system memory without CPU intervention, as it sounds. Typically controlled and configured through hardware registers and DMA controllers. Dynamic Memory Access (if there is such a definition) - refers to the dynamic allocation and management of memory during program execution, such as managing the process's heap (memory allocations using malloc()), etc. Direct Memory Access focuses on data transfer, and Dynamic Memory Access focuses on memory allocation.
How To Become An Embedded Software Engineer?
10:30
Greidi Ajalik
Рет қаралды 131 М.
МЕНЯ УКУСИЛ ПАУК #shorts
00:23
Паша Осадчий
Рет қаралды 5 МЛН
Perfect Pitch Challenge? Easy! 🎤😎| Free Fire Official
00:13
Garena Free Fire Global
Рет қаралды 100 МЛН
1, 2, 3, 4, 5, 6, 7, 8, 9 🙈⚽️
00:46
Celine Dept
Рет қаралды 111 МЛН
What type of pedestrian are you?😄 #tiktok #elsarca
00:28
Elsa Arca
Рет қаралды 32 МЛН
10 years of embedded coding in 10 minutes
10:02
Greidi Ajalik
Рет қаралды 414 М.
Fundamentals of Embedded Linux - Chris Simmons - NDC TechTown 2022
1:04:15
7 Years of Software Engineering Advice in 18 Minutes
18:32
Software Engineering Job Interview - Full Mock Interview
1:14:29
freeCodeCamp.org
Рет қаралды 1,5 МЛН
Embedded Systems interview questions
12:20
Venkatesh Mane
Рет қаралды 18 М.
МЕНЯ УКУСИЛ ПАУК #shorts
00:23
Паша Осадчий
Рет қаралды 5 МЛН