upNabove
Back to Jobs

Embedded Software Engineer

ITW

Washington, District of Columbia, US internship

About the Role

Job Description: Objective of role: The Embedded Software Engineer is responsible for the design, development, testing, and support of embedded software solutions for both existing and new products, including new hardware bring-up, low-level hardware/software integration, and support of microcontroller-based embedded systems. Expectations: This role blends hands-on engineering with cross-functional collaboration, technical problem solving, product lifecycle support and software technical leadership where appropriate. The engineer will contribute to software architecture, product enhancements, and reliability validation while supporting internal teams, customers, and manufacturing operations. This position requires strong analytical skills, a solid foundation in software engineering principles, and the ability to work independently across most phases of the development cycle. The ideal candidate is comfortable working close to the hardware and can efficiently diagnose and resolve low-level issues involving microcontrollers, memory, interfaces, sensors, and communication devices. Main Duties and Responsibilities: Software Design & Development • Develop, code, test, and debug new embedded software or enhancements to existing software for third-party customers and internal product lines. • Work from specifications with limited guidance to design and modify moderately complex software applications, tools, and utilities. • Apply software design theories, engineering principles, and scientific methods to create robust, maintainable embedded solutions. • Modify existing software packages to meet unique customer configurations and requirements. • Validate successive software versions to ensure proper integration with system hardware. • Bring up embedded software on new hardware platforms, including initialization and verification of microcontrollers, memory, clocks, interrupts, communication interfaces and peripheral devices. • Develop, integrate and debug low-level drivers and board support software for interfaces such as UART, SPI, I2C, ADC, USB, Ethernet, GPIO, etc. Engineering Leadership & Departmental Support • Provide technical input to project schedules, development estimates, software-related planning activities and team training needs. • Coordinate technical activities with cross-functional project teams and communicate software scope, status, risks, and technical issues clearly. • Document designs, changes, and engineering analyses thoroughly and professionally. Testing, Reliability & Verification • Determine test and analysis requirements to validate product reliability, performance, and parameter control. • Conduct or coordinate tests to evaluate failure limits, environmental susceptibility, component reliability, and overall product safety. • Participate in the design of product test equipment or production test systems when needed. • Interpret test results and translate findings into actionable engineering decisions. • Develop and execute bring-up, integration, and regression test plans for new hardware and firmware. • Diagnose issues related to startup behavior, communication failures, timing issues, memory, and interaction between firmware and hardware. Cross Functional & Customer Support • Resolve software-related user complaints and respond to suggestions for improvements or enhancements. • Assist in the development of software user manuals and technical documentation. • Collaborate with technical staff to diagnose and resolve software issues. Innovation & Product Development • Drive the electrical/software design process from concept through manufacturing release, including: o Creative concept development o Detailed design o Mathematical and scientific verification o Prototype build and evaluation o Engineering documentation o Production transition • Work closely with electrical engineering during schematic review, component selection and prototype bring-up to ensure software readiness and efficient debug. Qualifications: • Bachelor’s degree in engineering (Software, Electrical, Computer Engineering, or related discipline required). • Minimum of 4 years of relevant experience in embedded software development or related engineering roles. • Proficiency in embedded programming languages (e.g., C/C ), version control (Git/Github) and real-time operating environments (FreeRTOS, MQX). • Strong understanding of hardware/software integration and system level design. • Ability to work independently across design, coding, testing, debu

Company Info

Confidential
Growing Team
Washington, District of Columbia, US

Job ID

d9b91cb4