Summary:
This entry-level Firmware Engineer role supports the development, debugging, testing, and documentation of embedded firmware for ADT connected-home and security products. The role is designed for recent graduates or early-career engineers with strong C/C++ fundamentals, who are comfortable learning Linux-based development, and who want to grow under the guidance of senior engineers.
Â
About the Role:
You will help build firmware for security base stations and related connected-home devices. This includes writing and debugging C/C++ code, learning how embedded Linux and microcontroller-based systems work, supporting wireless device features, and helping improve build and test automation. Prior industry experience is not required; coursework, projects, internships, curiosity, and willingness to learn are most important.
Â
Duties and Responsibilities:
Develop and maintain embedded firmware and applications in C/C++ for Linux-based IoT security devices, with mentoring from senior engineers.
Assist with embedded Linux setup and configuration, including build tools, board support, and basic system customization with guidance from senior engineers.
Help implement and debug firmware features that connect devices to backend services over Wi‑Fi using secure network communication and structured messages such as JSON.
Support firmware features that communicate with wireless devices and radios, such as Z‑Wave, Bluetooth/BLE, Zigbee, or DECT/ULE, based on product needs.
Work closely with the hardware team on board bring-up, peripheral interfaces (UART, SPI, I2C, USB), and root-cause analysis of hardware/software issues.
Write unit tests and help the QA team with test plans and continuous integration for firmware builds.
Support the Products team in clarifying requirements and translating them into implementable firmware tasks.
Use Git, build scripts, and continuous integration tools such as Jenkins to support firmware development and testing.
Document designs, debug notes, and how-to guidance so the team can reuse and extend your work.
Continuously learn new protocols, tools, and platform details; research unfamiliar technology with guidance and share findings with the team.
Â
Requirements:
Bachelor’s degree in computer engineering, Electrical Engineering, Computer Science, or a closely related field, or equivalent practical experience. Recent graduates and candidates graduating within the current academic year are encouraged to apply.
Â
Required Skills / Qualifications:
Basic C and/or C++ programming fundamentals, demonstrated through coursework, labs, personal projects, capstone work, internship experience, or similar hands-on practice.
Basic familiarity with Linux or command-line development, such as navigating files, compiling code, running tools, or following build instructions.
Introductory understanding of operating system concepts such as processes, threads, memory, and basic multitasking; embedded experience is helpful but not required.
Basic exposure to networking concepts such as IP addresses, Wi‑Fi, client/server communication, or secure connections; deeper networking experience is a plus.
Some exposure to scripting with Shell, Python, or similar tools for simple build, test, or automation tasks.
Basic familiarity with Git or another source-control tool, or willingness to learn through team workflows.
Ability to read technical documentation and learn basic lab tools such as a serial console, logic analyzer, or oscilloscope; course or lab exposure is sufficient.
Curiosity, problem-solving mindset, clear communication, and willingness to ask questions and learn from senior engineers.
Â
Preferred / Nice to Have:
Coursework, project, internship, or co-op experience in embedded systems, firmware, IoT, consumer electronics, microcontrollers, RTOS, or bare-metal development.
Exposure to Buildroot, Yocto, or another embedded Linux build system.
Familiarity with device drivers, bootloaders (e.g., U-Boot), or firmware update/OTA flows.
Hands-on with any of: Wi‑Fi, Bluetooth/BLE, Zigbee, Z‑Wave, DECT/ULE, or other IoT/sensor protocols.
Exposure to peripheral interfaces such as UART, SPI, I2C, or USB.
Messaging formats such as JSON or Protocol Buffers.
Internship or co-op in embedded, firmware, IoT, or consumer electronics.
Awareness of Agile practices and CI tools (Jenkins, GitHub Actions, etc.).
Java or other higher-level language experience is a plus, not required.
Â
Attitude & Working Style:
Positive, can-do attitude and ownership of assigned work.
Comfortable asking questions and escalating blockers early.
Able to work independently on well-scoped tasks while collaborating closely with hardware, QA, and product partners.
Open to working outside your comfort zone and researching new technology.
Eager for technical learning and continuous improvement.
Â
Competencies:
Technical Learning
Functional / Technical Skills
Customer Focus
Drive for Results
Ethics & Values
Peer Relationships
Creativity
Collaboration and conflict resolution
Â
What Success Looks Like (First 6–12 Months):
Completes assigned firmware features and bug fixes with improving independence, good code quality, and clear communication.
Debugs issues across software and hardware boundaries using logs, debuggers, and lab tools.
Contributes meaningfully to at least one wireless/protocol or platform area used by the product.
Improves team velocity via tests, scripts, or documentation.
Learn more about this Employer on their Career Site
