Embedded Software Engineer
SUMMARY: As an embedded software engineer, you will be responsible for designing, developing, and testing software that runs on embedded systems and is designed to be reusable. Your work will be crucial in ensuring that these systems function efficiently and reliably in a variety of applications.
ESSENTIAL DUTIES AND RESPONSIBILITIES:
- Design, implement, and maintain software for embedded systems in line with defined software architectures, ensuring that it meets performance, reliability, and efficiency requirements.
- Collaborate with hardware engineers to integrate software with the embedded hardware, ensuring proper functionality and optimization.
- Develop software for real-time and resource-constrained environments, where timing and efficiency are critical.
- Write code at the hardware level (Bare Metal), OS, or RTOS, including device drivers and firmware, to control and communicate with hardware components.
- Utilize real-time operating systems or develop your own scheduling mechanisms to manage tasks and resources in embedded systems.
- Identify and resolve software issues, optimize code, and conduct thorough testing to ensure reliable and error-free operation.
- Maintain clear and comprehensive documentation of software design, development, and testing processes.
- Work closely with cross-functional teams, including hardware engineers, product managers, and quality assurance teams, to ensure a successful product development cycle.
- Ensure that the embedded software adheres to industry standards, safety regulations, and security best practices.
- Continuously improve software performance, memory utilization, and power efficiency for embedded systems.
- Perform other duties as assigned.
- Follow and enforce all MultiTech rules and policies.
QUALIFICATION REQUIREMENTS:
- Bachelor's degree in Computer Science, Electrical Engineering, or a related field.
- Knowledge of one or more programming languages commonly used in embedded development, such as C and C++. C# and Python is desirable.
- Knowledge of Real-Time Operating Systems (RTOS) and experience with embedded development tools and debugging.
- Strong problem-solving skills and the ability to work with limited resources and tight constraints.
- Familiarity with hardware interfaces, communication protocols (e.g., SPI, I2C, UART), and device driver development.
- Understanding of software development best practices, version control systems, and quality assurance.
- Experience with hardware design principles and software development for microcontrollers, microprocessors, or other embedded platforms is a plus.
- Knowledge of security principles for embedded systems and a commitment to cybersecurity is highly desirable.
PHYSICAL DEMANDS:
- Lifting requirements up to 25 pounds
- Requires sitting and occasional standing and walking for periods of time.
- Use hands to finger, handle or feel.
- Reaching required.
Equal Employment Opportunity
It is the policy and practice of MultiTech Systems to provide all employees with a working environment free from all forms of discrimination and harassment. It is the policy of MultiTech Systems to recruit, hire, promote, and take other personnel actions without regard to any protected class, including but not limited to race, color, religion, sex, age, national origin, disability, sexual orientation, gender identity, genetic information or protected veteran status, and to provide equal employment opportunities for all employees and employment candidates.
*If you are interested in applying for employment with MultiTech Systems and need special assistance or an accommodation as part of the employment process, please contact Human Resources at mparrish@multitech.com
Other details
- Pay Type Salary
- Mounds View, USA, 2205 Woodale Drive, Mounds View, Minnesota, United States of America