Advanced Software Engineer
ALL CANDIDATES MUST HAVE AN ACTIVE TS/SCI WITH A POLYGRAPH CLEARANCE! Description: Candidate will be a Java developer who works with a small team, and collaborates with other thought leaders, to develop a rich media playback and editing service. The services will have strict performance criteria and must accommodate varied streaming media transcoding, editing, and visualization capabilities The candidate should be familiar with the latest advancements for scaling compute-heavy and I/O-heavy workloads Responsibilities include, but are not limited to: Assist in planning the phased development of a multi-tiered software solution Generate alternative system concepts Assist with the development and allocation of system and functional requirements Design and develop software solutions Configure hardware, virtual machines, and networks to support system requirements Debug software authored by self and others Conduct performance testing Provide engineering documentation Required Experience: Four (4) years demonstrated experience developing software for one of the following: Windows, UNIX, or Linux OS Experience with systems developed using with high level languages such as Java, Python, etc. At least six (6) years of experience developing software with high level languages such as Java, C, or C++. At least four (4) years of this experience must have been obtained in the last seven (7) years Firm grasp of modem computer programming with a minimum of six (6) years of experience in programming and development of application software for complex systems and software testing Desired Experience: Two (2) years experience in the SIGINT environment Knowledge and experience with internals of HDFS, HADOOP, and/or Google's BIG TABLE Experience with Hadoop clusters with 400 or more cores Familiar with the software development process described in the J-STD-016 and IEEE/EIA 12207, "Information technology-Software life cycle processes" and possesses at least two (2) years of experience developing software in accordance with these standards Able to communicate directions and provide guidance to junior programmer/analysts Extensive experience in planning and accomplishing goals and complicated tasks and providing consultation on complex projects as top-level contributor or specialist Experience in evaluating project needs, determining tasks and durations and allocating resources Knowledge and experience with developing distributed storage routing and querying algorithms Experience developing solutions integrating and extending COTS products Demonstrated technical writing skills Experience "wrapping" legacy systems or components as Web Services within a SOA framework Experience with frameworks such as Spring Boot, Node and JNA Experience with Apache Ignite Experience with containerization tools such as Docker and Kubernetes Experience with development tools such as IntelliJ, Git, and JIRA Experience with continuous integration tools such as Jankins, Cucumber, and Selenium Qualifications: Twelve (12) years experience in software development/engineering, including requirements analysis, software development, installation, integration, evaluation, enhancement, maintenance, testing, and problem diagnosis/resolution A Bachelor's degree in Computer Science or in a related technical field is highly desired which will be considered equivalent to two (2) years experience. A Master's degree in a Technical field will be considered equivalent to four (4) years experience.