Our division specializes in developing disruptive, next-generation technologies for advanced Unmanned Air Systems (UAS / UAV), advanced radar systems, next-generation weapon systems, and other RF sensor technologies using small company agility and big company experience.
As a Software Engineer Architect you are responsible for analyzing complex requirements, overseeing and providing technical guidance and leadership in the development of new software architecture designs for software systems that could include embedded and application software.
Major Job Activities:
- Responsible for the evaluation, design, and development of software systems, including creating architectural approaches for software design and implementations to guide the development team.
- Collaborates with engineers from all disciplines to determine functional and non-functional requirements for software systems.
- Collaborates with Customers to identify business requirements.
- Employs Model Based Systems Engineering methodologies and tools to create representations of functionality and interfaces of the software system.
- Defines all aspects of development from appropriate technology and workflow to coding standards
- Contribute to the development of software requirement specifications for the software system
- Contribute to the planning, design, and implementation of the software test plans and procedures
- Lead a team of software engineers to meet program objectives through the entire software development lifecycle.
- Other duties assigned
- Must be a U.S Citizen with existing DoD clearance with current 5-year update. Must be able to obtain and maintain additional clearances
- Bachelor's degree in Computer Engineering or Computer Science or related field with required years of software experience
- A minimum of 5 years of experience designing and building complex software systems/applications
- Familiarity with system modeling and the ability to describe the system using standard artifacts (e.g. DoDAF, SysML, UML)
- Experience creating UML artifacts to fully describe software architecture and design
- Experience estimating and justifying size/cost/schedule of a software development effort
- Experience evaluating and choosing technologies that facilitate and enable implementation of the architecture
- Experience with all phases of the software development lifecycle (SDLC) process.
- Experience writing project documentation and creating development standards
- A minimum of 5 years experience developing in C++
- Broad, extensive and modern knowledge of the software development process and its technologies
- Knowledge of architectural styles and design patterns
- Understanding of various coding methods and computer languages
- Strong understanding of all aspects of the software engineering discipline
- Understanding of Agile or Evolutionary development methodologies (or similar)
- Understanding of software metrics and performance measures
- Experience developing software in/for Linux (e.g. gcc, make, cmake, llvm, valgrind, gdb)
- Comfortable scripting (e.g. python, bash)
- Fluent in C++, the STL, and C++ 11/14/17 features
- Knowledge of design patterns (e.g. MVC, Factory, Builder)
- Good communication and leadership skillsDemonstrated problem solving skills
- Excellent people skills to include collaborating in a multi-disciplinary, diverse, and dynamic team environment
- Outstanding work ethic and commitment to organizational success
- Proficient with Microsoft Office products
- Excellent communication skills (written, verbal, & presentation)
- Familiarity with systems engineering development methodologies, such as Model Based Systems Engineering
- Experience designing systems for embedded systems
- Familiarity with RF design/concepts