The Firmware Developer position aims to find somebody with a very good theoretical background in software development. This likely means you spent 4 years learning about search functions, data containers, and other algorithms and patterns to solve common problems. You should have about 5 years of work experience and therefore know very well how to use a debugger, setup build tools, write unit tests, etc.
You should understand (through experience) the importance of writing clear and maintainable code. You should be able to hold the behavior complex systems in your head, and reason about it. You should be able to quickly learn what they need from the Internet or peers, and should have a strong desire to perfect your craft.