Software Engineer
- Discuss this with your agent
- Open in Claude
- Open in ChatGPT
Prepare application
- Draft this with your agent
- Open in Claude
- Open in ChatGPT
Role details
Tech stack
+10 more
Job description
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., * 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.
Requirements
- 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., * Completion of an ABET accredited Electrical, Computer, or Software Engineering program, or a Computer Science program, minimum of bachelor’s degree., * Bachelor’s (Required)
Benefits & conditions
Pulled from the full job description
- 401(k)
- Health insurance
- 401(k) matching
- Paid time off
- Vision insurance
- Dental insurance
- Life insurance, * 401(k)
- 401(k) matching
- Dental insurance
- Health insurance
- Life insurance
- Paid time off
- Vision insurance
About the company
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.
Apply for this position
This job is hosted externally. Click below to view the full posting and apply.
Prepare application
- Draft this with your agent
- Open in Claude
- Open in ChatGPT
Good distractions
Talks and stories from around this role — technically off-topic, practically not.
Moments
Explore playlistsVideos
See allRelated articles
See all
Is Software Engineering Hard?
The Ultimate Software Engineer Career Path Guide for 2023
Where to Find Entry-Level Software Engineering Jobs
What is Software Engineering?