What Embedded Engineers Do After Writing the Code
- Srihari Maddula
- 1 day ago
- 3 min read
Author: Srihari Maddula
Reading Time: 8-10 mins
Tags: Compliance, Manufacturing, Documentation, Testing, Career Advice

The code compiles. The LED blinks. Now the real work begins. (Photo by ThisisEngineering RAEng on Unsplash)
The "Done" Illusion
In college, "done" means the code compiles and the demo works for the professor. In the industry, when the code is "feature complete," you are about 40% of the way to shipping a product.
Junior engineers often ask: "I finished the firmware last week. Why aren't we shipping yet?"
Because the gap between "working code" and "shippable product" is filled with four massive hurdles: Documentation, Compliance, Manufacturing, and Maintenance.
1. Documentation: Writing for Your Future Self
Six months from now, you will forget why you set that timer prescaler to 42. If you don't document it, you (or your replacement) will curse your name.
Code Comments are not enough: You need Architecture Documents. How does the OTA process work? How is memory partitioned?
API Reference: If you wrote a driver, how do other engineers use it? Tools like Doxygen can generate this automatically from your code comments. Use them.
The README: Every repository needs a `README.md` that explains how to set up the build environment. "Install these 5 tools and run this script" beats "figure it out yourself" every time.
2. Compliance: The Alphabet Soup (FCC, CE, UL)
You can't just sell electronics. You have to prove they are safe and don't interfere with radio signals.
EMI/EMC Testing: You take your device to a certified lab. They put it in an anechoic chamber and blast it with radio waves. Then they listen to see if your device emits too much noise.
The Firmware Engineer's Role: You will write special "Test Firmware" that:
Runs the processor at max load (to generate max noise).
Toggles all GPIOs rapidly.
Transmits continuous Wi-Fi/BLE packets for the radio test.
If you fail (and you will fail the first time), you have to go back, tweak drive strengths, add spread-spectrum clocking, and re-test.

The Anechoic Chamber: Where bad grounding goes to die. (Photo by National Cancer Institute on Unsplash)
3. Manufacturing: The "Golden Master"
The factory needs a binary file to flash onto 10,000 chips. But they also need a way to know if the chip was soldered correctly.
Functional Test Firmware: You write a special lightweight firmware that:
Boots up in 100ms.
Checks all voltage rails.
Talks to every sensor (I2C/SPI) to verify connection.
Blinks the LED green if PASS, red if FAIL.
Prints a serial log for the factory database.
You also need to build the Flashing Tool. The factory operator is not an engineer. They need a big green button on a PC that says "PROGRAM."
4. Maintenance: The Long Tail
Once the product is in the field, your job shifts to Sustaining Engineering.
Bug Fixes: A customer finds a bug that only happens on Tuesdays in Antarctica. You have to reproduce it.
Component EOL (End of Life): The sensor you used goes out of stock. You have to rewrite the driver for a new sensor and release a firmware update that supports both the old and new hardware.
Security Patches: A vulnerability is found in the Bluetooth stack. You have 72 hours to patch it and deploy an OTA update to 50,000 devices.
The EurthTech Standard: We treat the release of V1.0 as the start of the product's life, not the end. We design our systems for updateability and observability from Day 1.
Summary: The Complete Engineer
Coding is the fun part. The rest is the professional part.
To be a Senior Engineer, you must embrace the boring stuff. Writing a good test plan, automating the build process, and debugging EMI failures is what separates the hobbyists from the pros.
Recommended Resources
Doxygen: The standard for C/C++ documentation.
Predictable Designs Guide to Certification: Understand FCC/CE requirements.
Unity / CMock: Tools for unit testing embedded C.




Comments