Find Jobs
Find Jobs Near You – Available Work in Your Location
Skip to job details
DS
Dynamic Structures and Materials
Software Engineer
Career Insights for Software Developer / Engineer
See where this job fits in the broader career landscape. Knowing your career path helps you see what's possible from here.
Scorecard
Based on Tennessee data
Review key factors to help you decide if this role fits your goals. How is this calculated?
What they do
A Software Developer or Engineer designs or improves computer software. Oversees the entire software development process. Analyzes customer or user needs, designs programs, writes code or instructs computer programmers, tests design, and documents programs. May assist with upgrades or maintenance. May specialize in the design of computer applications or computer systems.
$118,709 / year median in Tennessee
+22% projected growth
Job Description
Software Engineer Dynamic Structures and Materials Franklin, TN Job Details Full-time $80,000 - $90,000 a year Benefits Health insurance Dental insurance 401(k) Paid time off Vision insurance 401(k) matching Life insurance Qualifications Computer Science Software Engineering Firmware Secret Clearance Git Bachelor's degree Engineering troubleshooting Embedded C Electrical Engineering Microcontroller programming Full Job Description Company Overview Dynamic Structures and Materials, LLC (DSM) is a leading innovator in the defense and aerospace sectors, specializing in advanced engineering solutions for mission-critical applications. We deliver high-performance systems that meet the rigorous demands of government and commercial clients. Position Summary Develops and tests embedded software under the direction of more senior engineers. Work is primarily bare-metal firmware development, but is not exclusively so, and may include RTOS-based firmware and supporting PC-side software. DSM frequently develops piezoelectric and other specialized positioning systems controlled by embedded software, but the software engineer's contribution will not be confined to these types of applications. Essential Functions Plan, write, test, and debug embedded software, primarily bare-metal firmware, in the C and C++ languages for microcontroller-based systems. With direction, implement and modify device drivers and low-level interfaces for common peripherals such as GPIO, timers, ADC/DAC, PWM, UART, SPI, and I2C. Bring up and test firmware on prototype and production hardware using laboratory instrumentation such as digital oscilloscopes, logic analyzers, multimeters, and in-circuit debuggers. Support integration of embedded software with electrical hardware, motion control, and sensor feedback, and assist in troubleshooting hardware and software interactions. Analyze test results by making Excel spreadsheets or more advanced techniques. Use the DSM version control system for all software work, following established practices for committing, branching, and merging. Participate in code reviews and design reviews, both receiving and providing constructive feedback. With oversight, reliably document test results, design configurations, software interfaces, and similar data. Documentation may be in a logbook, spreadsheet, formal report, or other method. Learn, support, and execute all quality objectives and deliverables as described in the DSM QMS system relating to assigned projects. Contribute to proposals and reports by providing 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. Experience 1-3 years experience in software or embedded software engineering, at least as an intern or co-op engineer. Understanding of good programming practices with application of them in a language such as C, C++ is required. Experience with VHDL or Verilog is a plus. Exposure to microcontroller fundamentals, including memory, interrupts, timers, and peripheral registers. Familiarity with common laboratory sensors and instrumentation such as encoders, LVDTs, multimeters, digital oscilloscopes, logic analyzers, and capacitive probes. Ability to read schematics and component datasheets sufficiently to interface software with hardware is preferred. Exposure to a version control system such as Git. Skills Internally motivated, "self starter" type personality. Reliable, can be trusted to work consistently on tasks without close supervision. Able to work on tasks individually or as part of a small team. A "life-long learner" that is willing to develop new skills and proficiencies. Methodical and patient approach to debugging and troubleshooting. Clear written communication suitable for documentation, reports, and code comments. Education Completion of an ABET accredited Electrical, Computer, or Software Engineering program, or a Computer Science program, minimum of bachelor's degree.