Software Engineer

McLean, VA

JOB DESCRIPTION

The Software Engineer will work with stakeholders to design and develop web-based applications.  Additionally, they will design and develop the data workflows and processes required to support the applications.  As a member of the team, candidates will work in a multi-tasking, quick-paced, and dynamic environment.  Ideal candidates will also be familiar with the principles of large-scale database development, data modeling, data mapping, data testing, data quality, and documentation preparation.

REQUIRED KNOWLEDGE/SKILLS

  • Bachelor’s degree in Computer Science, Electrical or Computer Engineering, or other related technical discipline with 10+ years of equivalent experience.

  • Minimum 5 years of related software engineering and ETL experience

  • Demonstrated experience building single-page web applications using Java and Angular

  • Excellent organizational, coordination, interpersonal and team building skills

DESIRED KNOWLEDGE/SKILLS

  • Experience with the following technologies: Java/J2EE, JavaScript, SQL, XML, XQuery, XPath, HTML/XHTML, CSS, Python, Shell Scripting, JSON, Elasticsearch/OpenSearch

  • Knowledge of Linux and Windows operating systems

  • Familiarity with Continuous Integration/Deliver systems such as Jenkins

  • Strong problem-solving skills

  • Ability to comprehend database methodologies

  • Focus on continual process improvement with a proactive approach to problem solving

  • Ability to follow directions and finish tasks

KEY RESPONSIBILITES

  • Research, design, develop and/or modify enterprise-wide systems and/or application software

  • Develop complex data flows or make significant enhancements to existing pipelines

  • Resolve complex hardware/software compatibility and interface design considerations

  • Conduct investigations and tests of considerable complexity

  • Research emerging technologies to determine impact on application execution

  • Provide input to staff involved in writing and updating technical documentation

  • Troubleshoot complex problems and provide customer support for the ETL process

  • Advise hardware engineers on machine characteristics that affect software systems, such as storage capacity, processing speed, and input/output requirements

  • Prepare reports on analyses, findings, and project progress

  • Provide guidance and work leadership to less-experienced software engineers

  • May serve as a technical team or task leader