Career Opportunity
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
Essential Duties & Responsibilities
- Instruct, direct, and check the work of other design engineers
- Translate product requirements into implementable architectures
- Design and develop software for 8, 16, 32 and 64-bit processor platforms
- Design and develop software in assembly language, C, C++ and Python languages
- Familiarity with other object-oriented languages like C#, Java, R, GO is preferred
- Design and develop software for bare metal, RTOS, Linux and Android platforms. Experience with Yocto, Linux open source projects and Android AOSP is desirable
- Familiarity with Windows CE, IOS, Android and QNX platforms is preferred
- Design and develop device drivers for USB, ATA, Video, Audio, Ethernet, CAN, NAND flash, NOR flash, DDR3/4, SDRAM, HDMI, PCI Express, SPI, I2C, and other devices
- Experience developing software solutions for wireless technologies such as 802.11, WiFi, Bluetooth, GPS, and cell technologies
- Conduct design analysis on software assets to assist in the development process by ensuring designs are maintainable, customer focused and reliable
- Prepare technical data such as design verification test documents, software development plan, software design specifications and software requirements specifications
- Complete assigned engineering projects within budgetary and scheduling guidelines
- Communicate with engineers and project managers to coordinate and assure project completion; may manage an entire customer project
Required Qualifications:
- Bachelor of Science in Computer Science, Computer Engineering, Software Engineering or equivalent
- 4+ years’ experience developing software for embedded processor platforms, mainly using Yocto Linux or any other form of Linux distribution
- 2+ years of experience developing system software or HAL layers on Andorid AOSP or other variants of Android operating system
- Experience with embedded systems and microprocessor-based design
- Experience with all aspects of product design including requirements documentation, system architecture, design for manufacturing, design for test and design verification
- Ability to analyze customer requirements for feasibility, cost and development timeline
- Strong communication skills including the ability to write technical specifications and design documentation, create and author templates for engineering documents, create project proposals with technical details, present verbally in one-on-one or group settings
- Thorough technical knowledge of application software methodologies including OOA/OOD and Design Patterns
- Understanding of CPU functions such as L1/L2 cache, MMU, power states, bus arbiters & multiplexers, interrupts, and DMA
- Understanding of coding for embedded peripherals including Ethernet, USB, I2C, CAN, Flash, SPI
- Experience using Spectrum analyzers, Oscilloscopes, and JTAG debuggers is highly desirable
- Experience with ARM, PowerPC and x86 processor cores is highly desirable
- Experience with embedded Linux, Android, IOS, Windows CE and RTOSs at the application, device-driver and board support package level is highly desirable
- Experience with TCP/IP, Routing protocols and Internet protocols is an added advantage
- Experience with MS Office products including MS Project
- Ability to work in a fast-paced environment with quickly changing priorities to ensure superior customer satisfaction
- Experience with Agile/Scrum Development
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
Essential Duties & Responsibilities
- Instruct, direct, and check the work of other design engineers
- Translate product requirements into implementable architectures
- Design and develop software for 8, 16, 32 and 64-bit processor platforms
- Design and develop software in assembly language, C, C++ and Python languages
- Familiarity with other object-oriented languages like C#, Java, R, GO is preferred
- Design and develop software for bare metal, RTOS, Linux and Android platforms. Experience with Yocto, Linux open source projects and Android AOSP is desirable
- Familiarity with Windows CE, IOS, Android and QNX platforms is preferred
- Design and develop device drivers for USB, ATA, Video, Audio, Ethernet, CAN, NAND flash, NOR flash, DDR3/4, SDRAM, HDMI, PCI Express, SPI, I2C, and other devices
- Experience developing software solutions for wireless technologies such as 802.11, WiFi, Bluetooth, GPS, and cell technologies
- Conduct design analysis on software assets to assist in the development process by ensuring designs are maintainable, customer focused and reliable
- Prepare technical data such as design verification test documents, software development plan, software design specifications and software requirements specifications
- Complete assigned engineering projects within budgetary and scheduling guidelines
- Communicate with engineers and project managers to coordinate and assure project completion; may manage an entire customer project
Required Qualifications:
- Bachelor of Science in Computer Science, Computer Engineering, Software Engineering or equivalent
- 5+ years’ experience developing software for embedded processor platforms, mainly using Yocto Linux or any other form of Linux distribution
- 2+ years of experience developing system software or HAL layers on Andorid AOSP or other variants of Android operating system
- Experience with embedded systems and microprocessor-based design
- Experience with all aspects of product design including requirements documentation, system architecture, design for manufacturing, design for test and design verification
- Ability to analyze customer requirements for feasibility, cost and development timeline
- Strong communication skills including the ability to write technical specifications and design documentation, create and author templates for engineering documents, create project proposals with technical details, present verbally in one-on-one or group settings
- Thorough technical knowledge of application software methodologies including OOA/OOD and Design Patterns
- Understanding of CPU functions such as L1/L2 cache, MMU, power states, bus arbiters & multiplexers, interrupts, and DMA
- Understanding of coding for embedded peripherals including Ethernet, USB, I2C, CAN, Flash, SPI
- Experience using Spectrum analyzers, Oscilloscopes, and JTAG debuggers is highly desirable
- Experience with ARM, PowerPC and x86 processor cores is highly desirable
- Experience with embedded Linux, Android, IOS, Windows CE and RTOSs at the application, device-driver and board support package level is highly desirable
- Experience with TCP/IP, Routing protocols and Internet protocols is an added advantage
- Experience with MS Office products including MS Project
- Ability to work in a fast-paced environment with quickly changing priorities to ensure superior customer satisfaction
- Experience with Agile/Scrum Development
Search Jobs