Job Description
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 LinuxExperience with C Linux Kernel level development and debugExperience 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 developmentEmbedded CEmbedded C++PythonShellVersion Control Systems : SVN, Git, Mercurial, etcLinux-based EnvironmentRegister-level configuration / setup softwareDevice driver software for UARTs, I2C, etc device driversTool Suite : JIRA, Confluence, BitBucket (GIT), Bamboo, JenkinsProficient model-based development with Matlab / SimulinkDemonstrated leadership ability to lead small working groups.Candidates should possess strong communication skills both written and oral.Experience with wireless protocols a plusExperience with software defined radios a plusQUALIFICATIONS
Bachelor’s Degree and minimum 4 years of prior relevant experience; or Graduate Degree and a minimum of 2 years of prior related experience2+ years of experience in C++2+ years of experience with embedded LinuxSoftware Development : 5 years (Preferred)Proficient programming skills with embedded C / C++ and PythonExcellent communication skills, written and verbalSystematic approach, attention to detail, and good problem-solving skillsExperience in creating required engineering documentation.Experience in integration and verification testing of electronic equipment via software.Understanding of Microcontrollers and related requirements, constraints, and capabilitiesA willingness to learn and desire to be challengedExperience developing software / writing code in C / C++Experience integrating and testing software subsystems into systemsShould be familiar with writing Test ScriptsExperience in scripting language such as pythonShould be familiar with Atlassian tool suite with add-ons like git and confluenceShould be familiar with Agile SW development processShould be familiar with Hardware Software Compatibility matrix processUS Person RequiredPosition does not require a clearance to start however, it does require the ability to obtain and maintain a DoD Secret level clearanceAn active DoD Interim Secret or Secret level clearance is preferredThis is not a remote position. Positions available in both Melbourne, FL and Greenville, SC.
9 / 80 Work Schedule
Every other Friday off