C++ Junior Software Engineer – Cooperative Driving Applications
Leidos
- Ashburn, VA
- $65,000-117,500 per year
- Permanent
- Full-time
- Conduct C++ development for components of various CDA software systems, ranging from intelligent transportation systems to robotic/autonomous vehicle platforms to everything-in-the-loop simulation.
- Develop unit tests for software packages in support of continuous integration, while also conducting integration testing both in-vehicle and in a simulation environment.
- Support system integration testing both onsite in Mclean, VA, as well as offsite as necessary to meet project deliverable timelines.
- Contribute to the maintenance and enhancement of the operation of the USDOT open source connected and automated vehicle tools, such as CARMA Streets, CARMA Platform, and V2XHub.
- Directly interact with on-site customer representatives and external stakeholders to communicate across technical disciplines as needed throughout a project’s life cycle.
- Ability to obtain and maintain a Public Trust security clearance (which includes three years immediate residency in the US).
- Interest in working with emerging technologies and shaping the future of transportation.
- A Bachelor's degree in computer science or engineering. This may be substituted with approximately 4 years of professional experience with C++ software development.
- Experience developing, testing, and troubleshooting software written in C++ in a Linux environment.
- Basic familiarity with software quality techniques and practices (automated unit testing, test-driven design/development, CI/CD pipelines with GitHub Actions, static code analysis tools, etc.).
- Basic understanding of mathematical fundamentals, including geometry, linear algebra, probability, graph theory, set theory, and statistics.
- Experience with Linux build systems and package management systems.
- Software development experience with Java and/or Python.
- Experience using CMake for building C++ packages.
- Experience developing in an Agile framework using toolsets such as JIRA and Confluence.
- Experience with Kafka or similar message broker systems.
- Experience with Robot Operating System (ROS).
- Experience with Git.
- Experience with Docker (including docker-compose).
- Experience with user interface (UI) and/or front-end development.
- Familiarity with distributed computing and cloud computing concepts.
- Familiarity with one or more robotics concepts such as localization, path planning, perception, or sensor fusion.
- Familiarity with simulation environments such as SUMO or CARLA, or other simulators built in Unreal or Unity.
- Familiarity with existing CDA infrastructure standards and/or hardware such as those from SAE or IEEE.
- Experience in a fast-paced dynamic R&D environment.