Software Engineer
Assertive Professionals · Hanover, MD · 1 mo ago
Engineering$145k/yrFull-time
About the role
The Software Engineer develops, maintains, and enhances complex and diverse software systems based upon documented requirements. They work individually or as part of a team, reviewing and testing software components for adherence to the design requirements and documenting test results. They resolve software problem reports and utilize appropriate software development and design methodologies.
Responsibilities
- Analyze user requirements to derive software design and performance requirements
- Design and code new software or modify existing software to add new features
- Debug existing software and correct defects
- Integrate existing software into new or modified systems or operating environments
- Develop simple data queries for existing or proposed databases or data repositories
- Make recommendations for improving documentation and software development process standards
- Develop or implement algorithms to meet or exceed system performance and functional standards
- Avoid or assist with developing and executing test procedures for software components
- Write or review software and system documentation
- Design, develop, and modify software systems, using scientific analysis and mathematical models to predict and measure outcome and consequences of design
- Design or implement complex database or data repository interfaces/queries
- Oversee one or more software development teams and ensure the work is completed in accordance with the constraints of the software development-process being used on any particular project
- Design or implement complex algorithms requiring adherence to strict timing, system resource, or interface constraints
- Perform quality control on team products
- Confer with system engineers and hardware engineers to derive software requirements and to obtain information on project limitations and capabilities, performance requirements and interfaces
- Coordinate software system installation and monitor equipment functioning to ensure operational specifications are met
- Implement recommendations for improving documentation and software development process standards
- Serve as the technical lead of multiple software development teams
- Select the software development process in coordination with the customer and system engineering
- Recommend new technologies and processes for complex software projects
- Ensure quality control of all developed and modified software
- Delegate programming and testing responsibilities to one or more teams and monitor their performance
Requirements
- TS/SCI with a Polygraph
- Bachelor's degree in Computer Science or related discipline from an accredited college or university
- Four (4) years of additional software engineering experience on projects with similar software processes may be substituted for a bachelor's degree
- Relevant JAVA programming experience to include at least two years of Java version 1.7+
- Spring and JavaScript
- JSP and servlet programming experience
- JEE and enterprise web application design and development
- Designing and writing REST-ful applications
- Ability to create and deploy applications in an Apache Tomcat web server
- JavaScript presentation libraries such as JQuery, Angular, and extJS
- Writing Interface Control Documents (ICDs)
- Microsoft office tools (Word, Excel, Powerpoint)
- Programming on Linux platforms
- Using a revision control application such as: git, Subversion (SYN), CVS, ClearCase
- Generating and documenting design specifications of system-level components in a UML-based tool (e.g. Confluence/GIiffy)
- Test-driven development
- Oracle, PL/SQL, and/or mySQL experience
- Creating hierarchical deployments using Linux "yum" including resolving dependencies and creating and managing yum repositories
Qualifications
- Experience in programs and contracts of similar scope, type, and complexity at the following levels is required:
- Level 0: No demonstrated experience is required.
- Level 1: 7 years
- Level 2: 14 years
- Level 3: 20 years
Desired Experience and Qualifications
- Knowledge of virtualization
- MongoDB, Apache Camel
- Perl experience
- Creating deployment packages using RedHat Package Manager (RPM)
- Writing software that utilizes SNMP
Pay
ESTIMATED: $145,092 per year