Software Engineer- UX

McLean, VA

JOB DESCRIPTION

The Software Engineer- UX will manage the design and development of complex new software products.  In addition to being a hands-on developer with experience in business intelligence, analytics, data science, and data products, the ideal candidate will have strong command of the principles of large-scale database development, data modeling, data mapping, data testing, data quality, and documentation preparation. The Software Engineer- UX will participate in design, development, testing, and release of key functionality for large scale custom software projects to meet customer requirements.

QUALIFICATIONS

  • Bachelor’s degree in Computer Science, Information Technology (IT), Computer Engineering, or related technical discipline, or the equivalent combination of education, technical training, or work/military experience

  • Minimum of five (5) years current experience leading the development of complex software products applying different methodologies

REQUIRED KNOWLEDGE/SKILLS

  • Experience managing teams to prioritize and meet tactical and/or strategic requirements.  These requirements should relate to the frameworks and systems that deliver end-user tools and capabilities.

  • Experience with the following technologies:

    • Frontend Web Development: REACT, Angular, Node.js, Vue.js, or similar JavaScript frameworks

    • Backend Development: Java including Java Spring Boot

    • Cloud Development: AWS, Azure, or similar cloud platforms

    • Relational Database:  PostgreSQL with the ability to write SQL.

    • Version Control System:  Git, Gitlab

DESIRED KNOWLEDGE/SKILLS

  • Experience working with UI/UX designer, methodology, tools; collaborative refinement and implementing to defined specifications; and previous cross browser development experience

  • Experience with Microservices, RESTful APIs, GraphQL, and JSON

  • Experience with message-based systems and event-driven architecture

  • Responsible for researching technical issues and provide a clear path to resolution with strong problem-solving and analytical skills

  • Deep understanding of modern software design patterns and coding standards

  • Experience architecting, developing, and delivering complex software systems into production

  • Working knowledge of Agile development and continuous integration/continuous delivery methodologies and tools, Jenkins, GitLab, and Docker

  • Strong, self-motivated desire to learn new programming languages, tools, frameworks, and techniques

  • Demonstrated experience engineering scalable multi-threaded web-based data applications to meet high-availability requirement

  • Subject matter expert in software engineering using current web, application, and database technologies

  • Experience delivering technical solutions using COTS and GOTS relational and non-relational database technologies, as well as big-data solutions

  • Demonstrated expertise in building solutions using web service, APIs, x.509 and LDAP controls to meet mission requirements with unique datasets an user requirements while simultaneously adhering to complex security and compliance requirements

  • Established experience building and managing the code and processes to establish common code repositories, standard for re-use, and efficiencies across teams and projects

  • Extensive familiarity with developing unit test/validation frameworks and processes especially tools like Vitest and Jest

  • Experience managing software bug mitigation and evolving software to address end-user requirements

  • Demonstrated experience transitioning legacy software solutions to modern COTS, GOTS, and open-source solutions

  • Expertise in delivering and/or integrating software solutions using Cloud technologies in the customer or IC environment

KEY RESPONSIBILITIES 

The Software Engineer- UX will:

  • Work to develop core functionality for existing systems, create and execute unit tests, and assist with deployment of new software to the user community

  • Analyze, diagnose, and resolve software bugs utilizing approved procedures following software best practices

  • Work prioritized tasks from implementation through test and deployment during each Agile Sprint period

  • Collaborate with other software developers, QA analysts, operations staff, supervisors, and clients

  • Provide technical leadership for the UI/UX team while developing features; identify technical requirements, estimate level of effort, collaborate cross-team with other technical leaders; mentor junior team members

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

  • 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

  • Resolve various tasks as prioritized by the team product owner

  • Engage in the complete software development lifecycle, operating within well-defined parameters

  • Take ownership of delivering enhancements within a system or application

  • Break down sizable tasks into manageable units for execution and provide LOE estimations

  • Collaborate with fellow software engineers to create and document optimal technical designs

  • Resolve obstacles for the development team, working collaboratively with the Product Owner, technical leadership, and other engineers

  • 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