Software Engineer

Assertive ProfessionalsHanover, MD
Onsite

About The Position

Assertive Professionals is seeking Software Engineers to support a National Security Customer near Hanover, MD. We have funded and immediate openings. The Software Engineer develops, maintains, and enhances complex and diverse software systems, including processing-intensive analytics, novel algorithm development, manipulation of extremely large data sets, real-time systems, and business management information systems, based upon documented requirements. This role can involve working individually or as part of a team. Responsibilities include reviewing and testing software components for adherence to design requirements, documenting test results, and resolving software problem reports. The engineer will utilize appropriate software development and design methodologies and provide specific input to software component system design, including hardware/software trade-offs, software reuse, use of Commercial Off-the-shelf (COTS)/Government Off-the-shelf (GOTS) in place of new development, and requirements analysis and synthesis from system level to individual software components.

Requirements

  • TS/SCI with a Polygraph
  • Bachelor's degree in Computer Science or related discipline from an accredited college or university is required.
  • 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+ and development of presentation tiers
  • 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

Nice To Haves

  • Knowledge of virtualization
  • MongoDB, Apache Camel
  • Perl experience
  • Creating deployment packages using RedHat Package Manager (RPM)
  • Writing software that utilizes SNMP

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.
  • Assist with developing and executing test procedures for software components.
  • Write or review software and system documentation.
  • Develop software solutions by analyzing system performance standards, conferring with users or system engineers; analyzing systems flow, data usage and work processes; and investigating problem areas.
  • Serve as team lead at the level appropriate to the software development process being used on any particular project.
  • Modify existing software to correct errors, to adapt to new hardware, or to improve its performance.
  • 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.
  • Oversees one or more software development teams and ensures 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.

Benefits

  • PTO
  • 401k Match at 5%
  • Profit Sharing
  • Company paid Life Insurance
  • Dental
  • Vision
  • STD/LTD
  • Two options under a national medical plan with employer contribution
© 2026 Teal Labs, Inc
Privacy PolicyTerms of Service