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.
WORK ENVIRONMENT:
Working conditions are normal for an office environment. Minimal noise.
Our facility includes a manufacturing environment. Moderate noise level. Machinery operation requires the use of safety equipment to include but not limited to; safety glasses, hearing protection, wrist and shoe straps, and ESD smock. Loose fitting clothing and jewelry are not permitted. No food allowed in the manufacturing area. No cell phone use allowed in manufacturing area unless approved by management.