About the Role
We are seeking a detail-oriented Embedded Software Engineer to drive the design, development, and testing of the software powering our core products and applications. In this role, you will be the technical architect of our embedded systems, ensuring that our hardware and software work in perfect harmony to deliver a seamless user experience.
Beyond new development, you will serve as a vital steward of our existing product line—updating, maintaining, and troubleshooting current software to ensure peak performance. We are looking for a proactive problem-solver who doesn't just fix bugs, but constantly evaluates our systems for potential improvements and implements the changes necessary to keep our technology at the cutting edge. If you enjoy the challenge of working at the intersection of code and hardware, we want to hear from you.
Responsibilities:
General and Task Management
Design, develop and maintain software for embedded Linux designs and Real Time Operating Systems (RTOS) ensuring optimal performance, stability and security.
Write efficient, maintainable and well-documented code in C and other programming languages while adhering to coding standards and best practices.
Collaborate with other engineering team members to define software requirements, specifications, and firmware architectures.
Develop, maintain and execute comprehensive test plans to validate the functionality and reliability of the software within embedded Linux.
Maintain and update Linux Kernel device drivers.
Assist in defining, specifying and developing new hardware platforms.
Document firmware release notes and product operational characteristics detailing theory of operation, functionality and interoperable characteristics between hardware devices and components.
Self-Management
Comply with any and all company health, safety, and environmental policies.
Proactively contribute to the team, engaging with interest and participation, and maintaining a collaborative approach.
Actively commit to personal and team development.
Show moral courage, and act with openness and honesty in all business dealings.
Perform system-level debugging, troubleshooting, and performance corrections to resolve software- related issues and improve overall system performance.
Qualifications:
Bachelor's degree in Computer Science and Engineering (CSE, ECE) or related field.
6+ years of related experience in embedded software design.
Proficient in C/C++ programming for embedded systems.
Experienced and skilled in Embedded Linux, Linux Kernel Distributions, Device Trees, Real Time Operation Systems (RTOS).
Knowledge of USB, Ethernet, WIFI and Bluetooth communication protocols.
Knowledge of C#, Python, and Microsoft Studio.
Knowledge of System on Module/Chip (SOM/SOC) and understanding of Microprocessors and associated peripherals.
Proficient in Microsoft Excel and Microsoft Word.