Software Engineer III
Apply on
Availability Status
This job is expected to be in high demand and may close soon. We’ll remove this job ad once it's closed.
Job Description
Mid-Level Software Engineer to join our established and growing team. The candidate will collaborate in the analysis, design, development, and test of the application. The ideal candidate will have cross-platform experience developing for a variety of operating systems (e.g., Linux, Android), use of a variety of application development platforms (Qt and Android) and programming languages (C++, C, Python), and database (SQLite) as well as experience integrating modules and libraries developed in these programming languages.
The candidate will work within an Agile Scrum development environment and use sound software engineering, object oriented, and functional programming principles to ensure that developed code has high quality, is maintainable, efficient, reliable, understandable, secure and fault tolerant. The candidate will be knowledgeable about implementing secure software development principles and techniques and will use software tools in cooperation with continuous integration and test automation while supporting software reuse and refactoring. The candidate will support the software configuration management process and understand software components and their interface requirements with other APIs and host systems (i.e., virtualized, containerized, or hardware).
This position requires someone who is proactive and passionate about ensuring the quality of software deliverables and can communicate with the development teams (including Leidos, subcontractors, and customer representatives) what is required to achieve this effectively on diverse tasks.
Required:
- Position requires a current/active Secret DoD security clearance.
- BS Degree in Computer Science or equivalent with 4-8 years experience.
- 4 years of experience developing for Linux/Unix and Android operating systems.
- Excellent coding abilities and strong experience with C++.
- 2+ years experience using Qt and Android application platforms a plus.
- Proven experience in design and implementation of user interfaces for embedded applications / mobile devices with cross-platform development tools and modern UI design.
- The candidate will have experience developing software structured to separate areas of concern (presentation, business logic, persistence). The Ideal candidate will have experience developing mobile applications with an eye for resource limited (and therefore optimized) software engineering.
- Works well in a team environment and has excellent written and communication skills.
Preferred (some subset of the following):
- Experience in Scrum Methodology or other Agile practices.
- Experience with Mobile Application Development.
- Experience with Software CM (e.g., Subversion, Git, GitLab, GitHub).
- Experience with UI / UX Development Frameworks (e.g., Qt, Android, AngularJS, Ionic, GWT, SmartGWT, Catch2, React, Node.js).
- Experience with Agile Management Tools and Concepts (e.g., VersionOne, JIRA, Rally, etc.).
- Experience with Automated Testing Tools/Technologies/Concepts (Squish for Qt, TDD, Selenium, Cucumber, Gherkin, BDD).
- Experience with CMake and Bash scripting
- Experience with formalized API development methodologies (e.g., OpenAPI 3.0)
- Experience with C, or Python is a plus
- Experience with Java is a plus.