Some of the most important software in the world doesn’t take the form of a computer application. Instead, it’s a tiny piece of code embedded in a physical device — often taking up no more memory than a single smartphone photo. This type of software is known as firmware. In this article, we’ll explore how students can get an early foothold in firmware engineering, giving tips for students themselves and for high school teachers looking to highlight a career path for computer-literate teens.
What is Firmware Engineering?
Firmware engineering is the practice of creating firmware for various products.
“Firmware is everywhere — not just in robots, but in your car, your thermostat, your headphones, and even in the streetlights,” explains Jeff Wiencrot, Senior Director, Firmware & Hardware Engineering at Sphero. “There is firmware in spaceships and in submarines. It’s everywhere.”
What Do Firmware Engineers Do?
At the simplest level, firmware engineers build the code that allows electronic devices to work, usually working in close collaboration with the hardware engineers who build the physical device. These skills can be applied to various roles.
Firmware Engineer Jobs
Suitable future careers for a student interested in firmware include:
- Firmware engineer
- Embedded systems engineer
- Test engineer
- Systems architect
Engineers may also want to go into leadership roles, taking up positions like firmware manager, director, vice president, or chief technology officer (CTO). Another path is to work directly with customers as a field applications engineer, helping other companies bring their designs to life.
Throughout the course of their career, professional firmware engineers often move sideways as well as upwards. “Many seemingly unrelated fields share similar firmware concepts, so it’s very normal for engineers to move between subject areas as they grow, or to stick to a single path if they prefer,” says Wiencrot.
How to Become a Firmware Engineer
There are many different routes to becoming a firmware engineer, but students with an interest in the subject will need to hone their STEM skills while putting in work outside the classroom.
Qualifications and Skills
Firmware engineers typically have degrees in electrical engineering, electrical and computer engineering, software engineering, or even math — subjects that generally require strong aptitude in STEM subjects during high school. During college or after graduating, engineers may start with an internship in a field related to their goals, and then progress toward specialization and expertise.
Budding firmware engineers need to cast a wide net when it comes to hardware, software, and programming languages, regardless of what’s on their school computing curriculum. For example, engineers at Sphero work with a variety of systems and languages across many different microprocessors.
A quick tip for students and educators: the C programming language is a great starting point for programming embedded systems. “I strongly recommend getting great at bare-metal C coding and having a basic knowledge of assembly,” says Wiencrot.
Useful Extracurricular Activities
A student can sharpen their firmware engineering skills outside of the classroom. One way they can do this is to look for online videos of product “teardowns,” in which engineers take apart and reverse engineer devices to understand how they work. Students can also buy experimental development kits or even attempt a teardown themselves (with adult supervision).
Other ways to stay in the loop include following engineering news sources, subscribing to manufacturers’ product updates, and reading the technical documentation that comes with new product releases.
What to Expect as a Firmware Engineer (Today and in the Future)
Firmware engineers spend most of their time editing and building code that will allow an electronic device to function. But a lot of that coding involves trial and error, so engineers need to deal with the bugs (code defects) that will inevitably come up.
“Many early engineers focus only on building new features and see bugs as a roadblock getting in their way,” explains Wiencrot. “This misses two big facts. One, you can’t avoid bugs. And two, debugging is actually really fun! Each time you solve a bug, you learn something new about your craft, uncovering new techniques and design ideas.”
Of course, firmware engineering in a few decades’ time may look quite different. Many small devices are now being programmed with high-level languages, and as processors get faster and cheaper, the line between firmware and software will continue to fade. That being said, low-level code will likely still have a role to play.
Practice Firmware Engineering with Sphero BOLT+
Firmware is all about building code that makes robots move, light up, and interact with the world around them. BOLT+ is a fantastic platform for kids and teens to start working on these ideas, as they can interact with sensors, drive the robot, play an animation, and much more. And importantly, they can tie all of these ideas together to explore how robots use inputs to make decisions.
Speak to one of our experts today to find out how BOLT+ and other tools can help students develop firmware engineering skills in the classroom.
About the Author
The Sphero Team
The Sphero Team is comprised of current and former educators, education content and curriculum writers, product designers, engineers, executive leadership, and other experts in their fields. Learn more about who we are and what we do at https://sphero.com/pages/about-us.