Back to search
hireneXus Linkedin · Posted 15d ago

Senior Embedded Software Engineer

Eden Prairie

Linkedin
Continue to application Add your email once, then Caio opens the original posting.

Indexed description

Senior Embedded Software Engineer


The Senior Software Engineer performs research, designs, tests, and implements application software on a variety of embedded and desktop platforms.


  • Reports to: Senior Manager of Engineering


  • Location: Eden Prairie, MN office


  • This role has no direct supervisory responsibilities but does serve as a coach and mentor for other positions in the department


  • The candidate must meet the definition of “US Person” under ITAR/EAR regulations


Key Responsibilities


  • Lead, mentor, and review the work of software design engineers, providing technical direction and ensuring engineering best practices are followed.


  • Translate product and customer requirements into scalable, maintainable, and efficient software architectures.


  • Design, develop, and maintain embedded software for 8-bit, 16-bit, 32-bit, and 64-bit processor-based platforms.


  • Develop software solutions using Assembly, C, C++, and Python. Knowledge of additional programming languages such as C#, Java, Go, or R is considered an advantage.


  • Design and implement software for bare-metal, RTOS, Linux, and Android environments. Experience with Yocto, Linux open-source ecosystems, and Android Open Source Project (AOSP) is highly desirable.


  • Develop and maintain device drivers and Board Support Packages (BSPs) for peripherals and interfaces including USB, Ethernet, CAN, SPI, I²C, PCI Express, HDMI, Audio, Video, NAND/NOR Flash, DDR3/DDR4, SDRAM, ATA, and related hardware components.


  • Design and integrate software solutions supporting wireless communication technologies such as Wi-Fi (802.11), Bluetooth, GPS, and cellular connectivity.


  • Perform software architecture and design reviews to ensure solutions are reliable, maintainable, scalable, and aligned with customer requirements.


  • Prepare and maintain engineering documentation, including Software Requirements Specifications (SRS), Software Design Specifications (SDS), Software Development Plans (SDP), verification test plans, and validation reports.


  • Deliver assigned engineering tasks within established project schedules and budget objectives.


  • Collaborate closely with cross-functional engineering teams, project managers, and customers to ensure successful project execution and delivery.


  • Lead customer projects when required, coordinating technical activities across multiple engineering disciplines.


Required Qualifications


  • Bachelor's degree in Computer Science, Computer Engineering, Software Engineering, or a related technical discipline.


  • Minimum of 4 years of experience developing embedded software for microprocessor-based systems, with strong experience in Yocto Linux or other embedded Linux distributions.


  • At least 2 years of hands-on experience developing Android system software, Hardware Abstraction Layer (HAL), or Android Open Source Project (AOSP)-based solutions.


  • Strong background in embedded systems design and software development for microprocessor-based platforms.


  • Experience across the complete product development lifecycle, including requirements analysis, system architecture, software design, Design for Manufacturing (DFM), Design for Test (DFT), and software verification.


  • Ability to evaluate customer requirements for technical feasibility, development effort, project cost, and delivery timelines.


  • Excellent written and verbal communication skills with experience preparing technical specifications, engineering documentation, project proposals, and technical presentations.


  • Solid understanding of object-oriented analysis and design (OOA/OOD), software architecture principles, and design patterns.


  • Strong understanding of processor architecture, including cache hierarchies (L1/L2), MMU, DMA, interrupt handling, power management, memory subsystems, and bus architectures.


  • Experience developing software for embedded peripherals and communication interfaces including Ethernet, USB, SPI, I²C, CAN, and Flash memory.


  • Practical experience using embedded debugging and validation tools such as JTAG debuggers, oscilloscopes, and spectrum analyzers.


  • Familiarity with ARM, PowerPC, and x86 processor architectures.


  • Experience developing applications, device drivers, BSPs, or middleware for embedded Linux, Android, RTOS, Windows CE, iOS, or similar embedded operating systems.


  • Knowledge of networking concepts, including TCP/IP, routing protocols, and Internet communication standards, is desirable.


  • Proficiency with Microsoft Office applications, including Microsoft Project.


  • Ability to thrive in a dynamic, fast-paced environment while managing multiple priorities and maintaining a strong customer focus.


  • Experience working within Agile and Scrum software development methodologies.


Preferred Qualifications


  • Experience contributing to Linux kernel development or other open-source software projects.


  • Familiarity with modern software development tools including Git, CI/CD pipelines, automated testing, and code review processes.


  • Experience with secure embedded software development, functional safety standards, or regulated industries such as medical devices, aerospace, or automotive is a plus.


  • Exposure to cloud-connected embedded systems, edge computing, or IoT device development is advantageous.


Free. 20 seconds. No password. See every match in this search.

Create a free Caio profile to unlock more results and save your role and location preferences.

Unlock free search
Want help applying to roles like this? Search Caio for free. If repetitive applications get heavy, Managed Job Search adds supervised execution for $99/month.
View Managed Job Search