Job Information
Multi-Tech Systems Inc Senior Embedded Software Engineer in Mounds View, Minnesota
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: Lead and perform the design, implementation, and maintenance of 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 to meet organizational, customer and industry needs. 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. Collaborate with cross-functional teams, including hardware engineers, product managers and quality assurance teams regarding product definition, scheduling, production testing, marketing information, technical literature, manuals, customer problems, etc. Oversee and assure the effective and efficient completion of required steps in the product design and 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. Improve operations by conducting systems analysis and recommending changes in policies and procedures. Perform other duties as assigned.