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