Software Engineer
Role details
Job location
Tech stack
Job description
We are seeking a highly skilled Software Engineer to join our dynamic team. The ideal candidate will have a passion for developing scalable and maintainable C/C++ code, and the ability to lead and mentor junior engineers through the development cycle. You will work cross-functionally to execute complex engineering projects and maintain design documentation to support new and legacy hardware., * Develop scalable and maintainable C/C++ code in support of new designs and legacy hardware.
- Lead the development of products through the New Product Development (NPD) process.
- Mentor junior engineers and designers throughout the development cycle.
- Work cross-functionally to execute complex engineering projects.
- Create and maintain design documentation including context diagrams and flowcharts.
- Establish functional requirements and performance targets for software designs.
- Troubleshoot and debug using engineering software and hardware tools.
- Participate in and provide feedback during extensive peer code reviews.
Requirements
- Ability to present complex technical information to internal and external customers.
- Experience working on cross-functional teams (Hardware, Systems, Software, Production, Supply Chain, etc.).
- Capable of leading technical teams through structured problem solving.
- Ability to debug Hardware/Software interfaces.
- Ability to critique design details against overall product requirements.
- Proficiency with CAN interface tools, debuggers, and other common diagnostic tools.
- Experience developing embedded (Linux or RTOS) systems using C/C++.
- Skill in debugging software and hardware/software integration issues., * Must be eligible to work in the U.S. without sponsorship.
- BS in Electrical, Software, or Computer Engineering with 5-7 years of engineering experience.
- Proven track record in software architecture, design, and implementation in a developer leadership role.
- Experience with requirements management, SCM, and defect tracking tools.
- Some experience with Embedded Linux, board bring-up, kernel modules, drivers, device tree.
- Experience with custom hardware and low-level board bring-up with SPI, UART, or I2C.
- R&D and new product development experience strongly preferred.
- Understanding of the Agile development process.
- Experience with Jira, Confluence, and Bitbucket.
- Experience working with and configuring automated build pipelines such as Azure DevOps or Jenkins., The work environment is fast-paced and collaborative, involving cross-functional teamwork. Engineers are expected to handle complex projects and use a variety of engineering software and hardware tools. The position may require working with embedded systems and utilizing debugging tools. A flexible and adaptive attitude is encouraged to thrive in this dynamic setting.
Benefits & conditions
This is a Permanent position based out of Minneapolis, MN. Pay and Benefits
The pay range for this position is $40.00 - $65.00/hr.
Eligibility requirements apply to some benefits and may depend on your job classification and length of employment. Benefits are subject to change and may be subject to specific elections, plan, or program terms. If eligible, the benefits available for this temporary role may include the following:
- Medical, dental & vision
- Critical Illness, Accident, and Hospital
- 401(k) Retirement Plan - Pre-tax and Roth post-tax contributions available
- Life Insurance (Voluntary Life & AD&D for the employee and dependents)
- Short and long-term disability
- Health Spending Account (HSA)
- Transportation benefits
- Employee Assistance Program
- Time Off/Leave (PTO, Vacation or Sick Leave) Workplace Type