EngineerJobs.io
← Back to all jobs

Job Description

Dynamic Structures and Materials is seeking a Software Engineer to develop and test embedded software for microcontroller based systems, onsite in Franklin, Tennessee.

Responsibilities

  • Plan, write, test, and debug embedded software, primarily bare metal firmware, for microcontroller platforms using C and C++.
  • Under guidance, create and modify device drivers and low level interfaces for peripherals such as GPIO, timers, ADC/DAC, PWM, UART, SPI, and I2C.
  • Bring up firmware on prototype and production hardware, using lab instruments including digital oscilloscopes, logic analyzers, multimeters, and in-circuit debuggers.
  • Support integration of embedded software with electrical hardware, motion control, and sensor feedback; assist in troubleshooting hardware software interactions.
  • Analyze test results and document findings in spreadsheets or more advanced analysis methods.
  • Utilize the DSM version control system for all software work, following established branching and merging practices.
  • Participate in code and design reviews, providing and receiving constructive feedback.
  • With oversight, reliably document test results, design configurations, software interfaces, and related data in logs, spreadsheets, formal reports, or comparable formats.
  • Learn, support, and execute all quality objectives and deliverables described in the DSM QMS system for assigned projects.
  • Contribute to proposals and reports by delivering well written summaries as directed.
  • Assist more senior staff as directed.
  • Work on assigned tasks diligently and in a safe manner that protects yourself and others.

Requirements

  • 1 to 3 years of software or embedded software engineering experience, including internships or co-op roles.
  • Strong programming discipline in C or C++, with familiarity; knowledge of VHDL or Verilog is a plus.
  • Fundamental understanding of microcontroller basics, including memory, interrupts, timers, and peripheral registers.
  • Experience with common laboratory sensors and instrumentation such as encoders, LVDTs, multimeters, oscilloscopes, logic analyzers, and capacitive probes.
  • Ability to read schematics and component datasheets sufficiently to interface software with hardware is preferred.
  • Experience with a version control system such as Git.
  • 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

Pay

Salary range is USD 80,000 to 90,000 per year.

Application Question(s)

  • Please highlight 1 to 2 key accomplishments from your most recent role.

Security Clearance

  • Secret (Preferred)

Work Location

  • Onsite in Franklin, TN

Similar Jobs