Job Description
Role
The Embedded Software Engineer will develop, modify, and maintain customized or standardized applications using software engineering best practices and standards. They will participate in the full life-cycle of software development, to include requirements development, modeling and design, application development, unit to CSCI testing, integration, formal system testing, release, installation, and maintenance.
Description
-
Develop and integrate software for existing embedded systems
-
Full Lifecycle design, implementation, and unit testing of software
-
Develop SW products from all phases of SW life cycle.
-
Review customer requirements and specification for developing software and hardware solutions
-
Produce and/or review technical documents, specifications, and standards.
-
Review of software requirements against specific criteria.
-
Analyzing project requirements to translate into specifications and programming deliverables.
-
Works under direction of technical leadership with some expected self-direction.
-
Utilizing internal processes and tools for the development of software.
-
Review, develop and document software level operational concepts.
-
Prepare and/or review documentation for software designs and architectures in accordance with established software development processes and procedures.
-
Perform system/product integration.
-
Verify and validate aspects of software designs to ensure conformance with functional specifications and customer requirements.
-
Conduct design and code reviews and other defect prevention activities
-
Actively participate in code reviews
-
Design and promote new components and sub-processes
-
Participate in activities related to software debugging and issue resolution
-
Execute code integration, configuration management, and release processes
-
Candidate must be able to conduct incremental component level testing and integration of product functionality.
-
Creating Test Plans and Procedures that acknowledge technical and schedule constraint. Executing Test Procedures to ensure requirements compliance.
-
Performing troubleshooting as required.
-
Resolve defects and perform Component to Component Integration
-
Develop device drivers for embedded Linux using C Language
Skills
-
Experience with embedded Linux
-
Experience with C Linux Kernel level development and debug
-
Experience with integrating software with custom processor-based circuit card assemblies.
-
Working knowledge of high-order programming languages (C, C++, Python).
-
Experience with development and management of requirements.
-
Experience with development of formal verification procedures.
-
Experience with any of the following is a plus, but not required:
-
C - Lower-level software development
-
Embedded C
-
Embedded C++
-
Python
-
Shell
-
Version Control Systems: SVN, Git, Mercurial, etc
-
Linux-based Environment
-
Register-level configuration/setup software
-
Device driver software for UARTs, I2C, etc device drivers
-
Tool Suite: JIRA, Confluence, BitBucket (GIT), Bamboo, Jenkins
-
Proficient model-based development with Matlab/Simulink
-
Demonstrated leadership ability to lead small working groups.
-
Candidates should possess strong communication skills both written and oral.
-
Experience with wireless protocols a plus
-
Experience with software defined radios a plus
Qualifications
-
Bachelor’s Degree and minimum 4 years of prior relevant experience; or Graduate Degree and a minimum of 2 years of prior related experience
-
2+ years of experience in C++
-
2+ years of experience with embedded Linux
-
Software Development: 5 years (Preferred)
-
Proficient programming skills with embedded C/C++ and Python
-
Excellent communication skills, written and verbal
-
Systematic approach, attention to detail, and good problem-solving skills
-
Experience in creating required engineering documentation.
-
Experience in integration and verification testing of electronic equipment via software.
-
Understanding of Microcontrollers and related requirements, constraints, and capabilities
-
A willingness to learn and desire to be challenged
-
Experience developing software / writing code in C/C++
-
Experience integrating and testing software subsystems into systems
-
Should be familiar with writing Test Scripts
-
Experience in scripting language such as python
-
Should be familiar with Atlassian tool suite with add-ons like git and confluence
-
Should be familiar with Agile SW development process
-
Should be familiar with Hardware Software Compatibility matrix process
-
US Person Required
-
Position does not require a clearance to start however, it does require the ability to obtain and maintain a DoD Secret level clearance
-
An active DoD Interim Secret or Secret level clearance is preferred
This is not a remote position. Positions available in both Melbourne, FL and Greenville, SC.
9/80 Work Schedule
Every other Friday off