TITLE: Software Engineer
LOCATION: Alexandria, Virginia
DEPARTMENT: Technology Division
Less than 10%
HOURS and SCHEDULE
Monday – Friday, 9:00am to 5:30pm (37.5 hours within five (5) days per week); unless otherwise required or approved by management. Available to provide support for applications when production incidents occur.
Works under the general supervision of the SCRUM Team Lead or Software Engineering Director.
The NCMEC Technology Division is seeking a creative and self-motivated Software Engineer to work in our Agile IT department. The position is a key contributor to the design, development, integration, maintenance, and production support of applications and infrastructure designed to reduce child exploitation and survivor revictimization. The candidate will possess excellent communication skills, appropriate work experience and exemplary technical and problem-solving skills.
ESSENTIAL DUTIES AND RESPONSIBILITIES:
Participate in the full product development lifecycle of software applications as part of a high performing SCRUM team.
Support Product Owners, Project Managers and other IT and Business Managers, by functioning as a domain expert on our information systems, implementing business objectives, assisting in the review and clarification of software requirements and establishing performance baselines.
Assist with identifying process improvements and enhancements to existing business and IT processes that will increase operating efficiencies.
Partner with technology industry leaders (e.g. Facebook, Google, Palantir, Amazon, Adobe, and Intel) and law enforcement agencies to help prevent and detect child exploitation.
Assist in the evaluation of open source technologies for the Technology Division and provide detailed estimates to support the planning efforts of the Operational divisions.
Participate in code reviews to ensure applications support existing architecture and framework guidelines and adhere to coding standards.
Respond to and assist in the resolution of production issues as needed, with the rare occurrence of support required after hours.
Maintain the integrity and confidentiality of highly sensitive material and information.
Work effectively with minimal supervision in an Agile environment while mentoring junior Engineers.
REQUIREMENTS AND QUALIFICATIONS:
Bachelor’s degree in Computer Science, Information Technology, or related field or equivalent experience.
3-5 years of progressive full stack Java development and familiarity with the Spring framework.
KNOWLEDGE, SKILLS AND ABILITIES:
Experience with relational database design and development with an understanding of document databases such as Solr, MongoDB, or graph databases a plus.
Strong knowledge of design patterns.
Working knowledge of Linux and experience with application servers such as Tomcat, automation servers such as Jenkins with exposure to Docker a plus.
Experience with the design and implementation of RESTful web services using the Spring framework, including the creation of schemas.
Experience with unit testing frameworks such as JUnit.
Excellent oral, and written communication skills.