Defense and Intelligence Solutions: Support design and development complex and innovative software solutions across a variety customers and platform types.
Objective:
Adding a highly motivated, proactive, and detailed oriented Lead Computer Scientist to a dynamic team of Software Architects, other Computer Scientists and Engineers that are designing, developing, and documenting next generation software solutions.
Lead small teams through all aspects of the Software Life Cycle using Agile Methodologies, to include requirements creation and interpretation, leading design, trade studies, development, documentation, testing, task tracking and status, and deployment.
Support/lead design & development for technical solutions and frameworks for thin client, server side development, OOP, embedded programming and database patterns and implementation. Create and contribute to customer required requirements, design and other documentation.
Understand applied research solutions and contribute to designs that will support more robust scalability, sustainability, and availability to enable moving the solution from a research to an operational environment.
Give updates, recommend technical solutions, create technical documentation, and support client interactions.
Daily/Monthly Responsibilities:
Lead design & develop advanced software architectures utilizing object oriented and embedded programming fundamentals, distributing computing, thin clients, and data distribution systems.
Proactively communicating on task status and communicating with leadership.
Contribute/lead the project life cycle: developing technical requirements, designing and developing innovative solutions to difficult problems, testing and integration with a larger system, and installing and documenting complete solutions.
Proactively & effectively interacting with team members, working with the team and customer to understand requirements and constraints of the target environment.
Working with internal teams to support Software side of proposals, to include basis of estimates.
Assist or create work breakdown structure for software efforts to support Agile development cycles, assist and/or lead task estimations and schedule creation for software tasks assigned and for junior team members.
Assess and quantify technical debt based on constraints and requirements.
Up to 25% travel.
Requirements:
Bachelors or a Masters degree in Computer Science or Computer Engineering (emphasis on programming and software development) or related such as computational engineering.
BS require 8 years of experience; MS require 7 years of experience in a variety of programming languages such as Javascript, JAVA, C#, C++, HTML5, and Python.
Proficiency of embedding software, object oriented programming, Docker, thin client implementation, and databases such as Oracle, Postgres, SQL desired.
Analyze/translate complex technical requirements into application design, implementation, unit and integration testing; assess/communicate technical debt associated with constraints and design, create software unit testing, and integration & documentation.
Proficient in working with MS Tools, Teams, Various Software Repositories, Various Build Environments, Software Engineering practices, Various Operating systems, Distributed computing, and Computer Science principles.