Software Engineer I
Role details
Job location
Tech stack
Job description
We're seeking an Entry-Level Embedded Software Engineer who is eager to build reliable, efficient software for real-world products. In this role, you'll collaborate with electrical, mechanical, systems, and test engineers to design, implement, and test software for microcontrollers and embedded systems. You'll work across the stack-board bring-up, drivers, application logic, and test automation. Self-motivation and the ability to work both independently and as part of a team are required. If you enjoy hands-on debugging in the lab, learning new hardware, and shipping features that customers use, you'll thrive here., Design, implement, and unit-test embedded software in C/C++ for microcontrollers. Contribute to board bring-up: bootloader configuration, peripheral initialization, and device driver development. Integrate sensors/actuators and integrate common communication protocols (SPI, I C, UART, CAN, USB). Work with RTOS (e.g., Free RTOS) or bare-metal systems; manage tasks, interrupts, and low-power modes. Debug and validate in the lab using oscilloscopes, logic analyzers, JTAG/SWD, GDB, and serial tooling. Write and maintain hardware abstraction layers (HAL) and middleware; contribute to API design and documentation. Develop automated tests and harnesses; support continuous integration (CI) and build pipelines. Participate in code reviews, design reviews, and requirements discussions with cross-functional teams. Create clear technical documentation: design notes, test plans, user guides, and release notes. Support manufacturing/production with firmware updates, issue triage, and root-cause analysis. Follow secure coding practices and applicable standards; contribute to quality and reliability improvements.
Requirements
A Bachelor of Science degree in Computer Science or Computer Engineering is required.
Skills and Abilities: Must be able to obtain a favorably adjudicated DOD Clearance at the Secret level. Proficiency in C/C++ for embedded systems; exposure to memory management, concurrency, and debugging. Working knowledge of microcontroller architectures and experience with STM32 and/or TI microcontrollers. Familiarity with RTOS concepts (tasks, queues, timers), interrupts, and real-time constraints. Experience with peripherals (GPIO, PWM, ADC/DAC) and buses (SPI, I C, UART, CAN, USB). Effective communication and documentation skills. Familiarity with version control systems and how they are utilized (e.g. GitLab). Experience with Python. Preferred: Familiarity with embedded standards and practices. Experience with unit-test frameworks. Experience with Dev-Ops Experience with Android Development Exposure to bootloaders, secure firmware update, and basic embedded security principles. Knowledge of wireless protocols or OTA update pipelines.
Benefits & conditions
- Lower cost of living
- Family-friendly area
- Career and economic growth
- Scenic beauty
- Outdoor enthusiast's dream
Here Are Some of the Great Benefits We Offer:
- Most locations offer a 9/80 schedule, providing every other Friday off
- Competitive compensation & 401(k) program to plan for your future
- Robust medical, dental, vision, & disability coverage with qualified wellness discounts
- Basic Life Insurance and Additional Life & AD&D Insurances are available
- Flexible Vacation & PTO
- Paid Parental Leave
- Generous Employee Referral Program
- Voluntary Benefits Available: Longer Term Care, Legal, Identity Theft, Pet Insurance, and more
- Voluntary Tricare Supplement available for military retirees