Software Engineer
Electrical Engineering
Arm Microcontrollers
C Language
C++ Language
DevOps
Driver Development
Embedded
Embedded Development
Embedded Linux
Embedded Software
Embedded Systems
Engineer
Engineering
Excel Spreadsheets
Firmware Development
Git
Hardware Engineering
Hardware Software Co Design
Lab Instrumentation
Microcontrollers
RTOS
Software Development
Software Engineer
Software Engineering
Systems
Vhdl Language
Job Description
Dynamic Structures and Materials is seeking a Software Engineer to develop and test embedded firmware for microcontroller based systems onsite in Franklin, TN.
Responsibilities
- Design, implement, validate, and troubleshoot embedded firmware for microcontroller based platforms using C and C++
- Under guidance, develop and adjust device drivers and low level interfaces for peripherals such as GPIO, timers, ADC/DAC, PWM, UART, SPI, and I2C
- Power up and verify firmware on prototype and production hardware using lab equipment including oscilloscopes, logic analyzers, multimeters, and in circuit debuggers
- Assist with integrating firmware with hardware, motion control, and sensor feedback; help troubleshoot hardware and software interactions
- Analyze test results using Excel or more advanced analysis techniques
- Utilize the DSM version control system for all software work, following established commit, branch, and merge practices
- Participate in code reviews and design reviews, providing and receiving constructive feedback
- Document test results, design configurations, software interfaces, and related data under supervision, in logs, spreadsheets, formal reports, or equivalent formats
- Learn, support, and execute quality objectives and deliverables per the DSM QMS system for assigned projects
- Contribute to proposals and reports by delivering clear summaries as directed
- Assist more senior staff as directed
- Complete assigned tasks diligently and safely, protecting yourself and others
Requirements
- 1-3 years of experience in software or embedded software engineering, including internships or co op roles
- Strong programming practices in C or C++, with VHDL or Verilog experience a plus
- Foundation in microcontroller concepts, including memory, interrupts, timers, and peripheral registers
- Familiarity with common laboratory sensors and instrumentation such as encoders, LVDTs, multimeters, oscilloscopes, logic analyzers, and capacitive probes
- Ability to read schematics and component datasheets well enough to interface software with hardware
- Experience with Git or similar version control systems
- Bachelor's degree is required
Technologies
- C
- C++
- VHDL
- Verilog
- Git
- RTOS
- Excel
- In circuit debuggers
Benefits
- 401(k)
- 401(k) matching
- Dental insurance
- Health insurance
- Life insurance
- Paid time off
- Vision insurance
Salary
- USD 80,000 - 90,000 per year
Application Question(s)
- Please highlight 1-2 key accomplishments from your last position.
Security Clearance
- Secret (Preferred)
Work Location
- Onsite in Franklin, TN