When your router stops working and the support person tells you to "update the firmware," most people just click the button without knowing what that means. I used to be one of those people.
Now I write firmware for a living. Let me explain what it actually is.
The simple explanation
Firmware is software that lives inside a hardware device and controls how that device works. It is stored in the device's memory — usually flash memory — and it runs every time the device powers on.
The name comes from where it sits in the stack. Hardware is hard (physical, unchangeable). Software is soft (easy to change). Firmware is in between — it is stored in hardware but can be updated, like software.
What makes firmware different from regular software
When you install an app on your phone, it runs on top of an operating system. The OS handles memory, file access, networking, and hundreds of other things. Your app just calls the OS when it needs something.
Firmware usually has no operating system. It runs directly on the hardware. When firmware needs to read a sensor, it does not call an OS function — it reads a hardware register directly. When it needs to send data over a serial port, it configures the hardware registers for the UART peripheral itself.
This gives firmware developers complete control. It also means complete responsibility. There is no OS to catch your mistakes.
The constraints are real
A typical microcontroller might have 64 kilobytes of RAM. Not megabytes — kilobytes. Your phone has 8 gigabytes. That is 125,000 times more.
This means firmware developers think about memory constantly. Every variable, every buffer, every string takes up space. You cannot afford to be wasteful.
Firmware also needs to be reliable in a way that apps do not. An app crash is annoying. A firmware crash in a medical device or a car's braking system is dangerous. Firmware must be tested thoroughly and written defensively.
How firmware gets updated
Updating firmware is more complex than updating an app. You are replacing the code that controls the device itself. If something goes wrong during the update, the device can become permanently unusable — this is called "bricking" it.
Good firmware update systems have safeguards: they verify the new firmware before applying it, keep a backup of the old firmware, and can roll back if the new version fails to start.
Types of firmware
Bootloader firmware runs first when a device powers on. It initializes the hardware and decides whether to run the main firmware or enter update mode.
Application firmware is the main program — the code that actually does what the device is supposed to do.
BIOS/UEFI is the firmware in your PC that runs before Windows or Linux loads.
Why firmware quality matters so much
A bug in a web app might show the wrong price. A bug in firmware might cause a car to accelerate unexpectedly, a pacemaker to malfunction, or a factory machine to injure a worker.
Firmware developers carry a responsibility that most software developers do not. The code has to work correctly, every time, in every condition, for years.




