Software Engineer- UX
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