JOBSEARCHER

Software Engineer

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. Pay: $80,000.00 - $90,000.00 per year Benefits: 401(k) 401(k) matching Dental insurance Health insurance Life insurance Paid time off Vision insurance Application Question(s): Please highlight 1-2 key accomplishments from your last position. Education: Bachelor's (Required) Security clearance: Secret (Preferred) Work Location: In person