Job Description
Position Overview
\n
We are seeking an Embedded Software Engineer to design, develop, test, and support embedded and PC-based software solutions. This role focuses on firmware and application development across microcontroller platforms and real time systems, with responsibilities spanning embedded controller development, system integration, software validation, and cross-functional collaboration.
\n
\n
Essential Job Functions
\n
- \n
- Develop embedded software for microcontroller-based systems using both bare metal and real time operating systems.
- Create board bring up code, device drivers, boot loaders, firmware update mechanisms, and software interfaces for sensors and peripherals.
- Design, implement, test, and debug embedded device controllers and related software components.
- Develop PC applications that support diagnostics, device testing, production testing, and test automation.
- Conduct unit tests, integration tests, system level debugging, and code reviews to ensure quality and reliability.
- Diagnose and resolve hardware and software issues in real time environments.
- Integrate software modules, third party libraries, and APIs into existing or new systems.
- Perform software validation, functional testing, and system compatibility checks across environments.
- Ensure compliance with applicable safety standards, industry norms, and internal policies.
- Optimize software for performance, memory utilization, and power efficiency.
- Support planning, task definition, and estimation as part of development efforts.
- Collaborate with engineering teams (electrical, mechanical, quality) to ensure seamless product integration.
- Analyze, document, and track software defects and improvements to resolution.
- Contribute to continuous improvement of development processes, tools, and procedures.
- Support software deployment, configuration, and technical requirements.
- Use version control (e.g., Git), build systems, and CI/CD workflows to streamline development.
- Assist production teams in troubleshooting and improving system performance.
- Provide engineering support where needed across departments.
- Perform additional engineering duties as assigned.
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Minimum Qualifications
\n
- \n
- Bachelor’s degree in Engineering, Computer Science, or a related technical field.
- 5+ years of hands-on experience in embedded systems development.
- Proficiency in C or C++ programming with experience in multithreaded code and hardware-software integration.
- Experience with microcontrollers (Cortex-M family preferred) in both real time operating system and bare metal environments.
- Experience with board bring up and developing low-level drivers for interfaces such as SPI, I2C, UART, ADC, DAC, USB, and display interfaces.
- Practical experience with debugging tools and test equipment (e.g., JTAG, GDB, logic analyzers, scopes).
- 2+ years of developing PC-based applications using C# and integrating with databases.
- Familiarity with setting up toolchains, build systems, and debugging environments.
- Knowledge of software engineering best practices and tools, including version control and issue tracking.
- Ability to read and interpret schematics, datasheets, and hardware documentation.
- Strong problem solving, debugging, and analytical skills.
- Excellent communication and interpersonal skills.
- A positive attitude and ability to work collaboratively in team environments.
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Salary Range: $130 - 170K
