Bachelor's degree in Computer Science, Computer Engineering, or Electrical Engineering
5-10 years experience in Software Engineering or related
High performance solutions for resource constrained targets
Design and develop next-generation resilient, fault tolerant, real-time, highly reliable software solutions
Embedded software
Software development life cycle
Architecture conceptualization, requirements analysis, design and documentation through development, testing and release
Ability to follow and push for continuous improvement of software development best practices on complex projects
Provide mentorship to more junior software engineers
Evaluate requirements, propose solutions, explores design trades to support a design.
Designs algorithms using modern theory and proven techniques.
Develops embedded software based on prototype algorithms with supervision.
Analyze designs to demonstrate performance and functionality.
Develops and executes software tests to check compliance with requirements.
Evaluates results to establish problem causes and develop solutions for inefficient or problems.
Prepares technical data, procedures, reports, drawings, manuals, and other required documentation.
Communicates with customers and stakeholders to establish requirements and describe the design and deliverables.
Drive solutions to complex problems with limited direction – contribute to requirements development and architecture solution ideation.
Ability to take responsibility for subset of engineering scope.
Identify program/system-level technical risks and develop and execute mitigation strategies for them.
Actively mentor less experienced engineers.
Excellent development and troubleshooting skills on embedded targets.
Excellent knowledge of OS coding techniques, IP protocols, interfaces and hardware subsystems.
Expertise in software development for real-time systems.
Mastery of high level development languages (e.g. C/C++, Rust)
Excellent organizational skills and attention to detail.
Strong analytical and problem-solving skills.
Knowledge of software configuration management tools, defect tracking tools, and peer review processes.
Excellent time management skills with the proven ability to meet deadlines.
Excellent verbal and written communications skills.
Experience with UML/SysML.
Experience with in-circuit emulators, JTAG debuggers and laboratory test equipment.
Applicants selected for this position will be required to obtain and maintain a government security clearance. Active Secret clearance is preferred.