Principal Software Engineer
Trident · Fairfax, VA · 3 wk ago
Engineering$120k–$222k/yrFull-time
About the role
This position will be part of a team responsible for software design and development for Predictive Maintenance & Logistics (PM&L) projects and other internal software development efforts within the ICS Business Unit.
Responsibilities
- Design, implement, and test custom software for condition-based maintenance and other internal projects.
- Develop software for data manipulation, storage, translation, sensor data capture, sensor data transmission, and export to different platforms.
- Convert and integrate data into standardized messaging formats and external software interfaces.
- Build and maintain software interfaces to databases, APIs, file-based data sources, message brokers, and external applications.
- Implement algorithms in software for data manipulation, analysis, and presentation.
- Develop software that operates in conjunction with external and embedded hardware/software across Linux, Windows, and Android environments.
- Document development efforts through design documentation, interface control documents, user manuals, and test plans.
- Support software packaging, deployment, configuration management, and troubleshooting in lab, field, and customer environments.
- Support technical test events, demonstrations, and customer-facing engineering activities as part of a fast-paced team.
Requirements
- Bachelor’s degree in Computer Science, Software Engineering, Data Science, or equivalent and a minimum of 9 years of related experience working in an agile environment OR 7 years with a graduate degree (or 13 total years in lieu of a degree).
- Experience with Python software development.
- Experience developing maintainable production-quality software, including modular design, error handling, logging, configuration management, and unit/integration testing.
- Experience with Python libraries and frameworks for data processing, automation, APIs, and/or application development.
- Experience working in Linux and Windows development environments.
- Experience with data formats and interfaces such as JSON, CSV, XML, REST APIs, sockets, message queues, or similar mechanisms.
- Experience with databases and data storage technologies such as PostgreSQL, SQLite, InfluxDB, object storage, or similar systems.
- Experience with software revision control systems such as Git, SVN, or similar tools.
- Ability to troubleshoot software issues across applications, operating systems, networks, and external system interfaces.